Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / / / / /

Criar uma chave mestra do cliente

Nesta página

  • Visão geral
  • Antes de começar
  • Procedimento
  • Próximos passos

Neste guia, você aprenderá a gerar uma Chave Mestre do Cliente em seu Sistema de Gerenciamento de Chaves de escolha. Gere uma Chave mestre do cliente antes de criar seu aplicativo habilitado para Queryable Encryption.

Dica

chave mestra do cliente

Para saber mais sobre a chave mestra do cliente, consulte Chaves de criptografia e cofres de chaves

Conclua as tarefas anteriores antes de continuar:

  1. Instale um driver e dependências compatíveis com a Queryable Encryption

  2. Instalar e configurar uma biblioteca de Queryable Encryption

Selecione a guia do seu provedor de chaves abaixo.

1
  1. Faça login no Amazon Web Services Console de gerenciamento do Amazon Web Services.

  2. Navegue até o Amazon Web Services KMS Console KMS do Amazon Web Services.

  3. Crie sua chave mestra do cliente

    Crie uma nova chave simétrica seguindo a Amazon Web Services documentação oficial do sobre Criação de KMS chaves simétricas. A chave que você cria é a chave mestre do cliente. Escolha um nome e uma descrição que o ajude a identificá-lo; esses campos não afetam a funcionalidade ou a configuração do seu CMK.

    Na etapa Usage Permissions do processo de geração de chaves, aplique a seguinte política de chave padrão que habilita políticas de gerenciamento de identidade e acesso (IAM) para conceder acesso à sua chave mestre do cliente:

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "Enable IAM User Permissions",
    "Effect": "Allow",
    "Principal": {
    "AWS": "<ARN of your AWS account principal>"
    },
    "Action": "kms:*",
    "Resource": "*"
    }
    ]
    }

    Importante

    Registre o nome do recurso da Amazon (ARN) e a região da sua chave mestra do cliente. Você os usará nas etapas posteriores deste guia.

    Dica

    Políticas de chaves

    Para saber mais sobre as principais políticas, consulte Principais políticas no AWS KMS na documentação oficial da AWS.

2
  1. Navegue até o Amazon Web Services Console do Amazon Web Services IAM.

  2. Criar um usuário IAM

    Criar um novo usuário programático do IAM no console de gerenciamento do Amazon Web Services seguindo a documentação oficial do Amazon Web Services sobre como adicionar um usuário. Você usará esse usuário do IAM como uma conta de serviço para seu aplicativo habilitado para Queryable Encryption. Seu aplicativo se autentica com o Amazon Web Services KMS usando o usuário do IAM para criptografar e descriptografar suas DEKs (chaves de criptografia de dados) com sua chave mestra do cliente (CMK).

    Importante

    Registre suas Credenciais

    Certifique-se de registrar as seguintes credenciais do IAM na etapa final da criação do seu usuário do IAM:

    • ID da chave de acesso

    • chave de acesso secreta

    Você tem uma oportunidade de registrar essas credenciais. Se você não registrar essas credenciais durante essa etapa, deverá criar outro usuário do IAM .

  3. Conceder permissões

    Conceda ao usuário do IAM permissões de kms:Encrypt e kms:Decrypt para sua chave mestra remota.

    Importante

    O novo usuário do cliente IAM não deve ter permissões administrativas para a chave mestre. Para manter seus dados seguros, siga o principal de privilégio mínimo.

    A política em linha a seguir permite que um usuário do IAM criptografe e descriptografe com a chave mestra do cliente com o mínimo de privilégios possível:

    Observação

    Chave mestra remota ARN

    A política a seguir requer o ARN da chave gerada na etapa Criar a chave mestra deste guia.

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": ["kms:Decrypt", "kms:Encrypt"],
    "Resource": "<the Amazon Resource Name (ARN) of your remote master key>"
    }
    ]
    }

    Para aplicar a política anterior ao seu usuário do IAM, siga o guia Adicionando permissões de identidade do IAM na documentação da AWS.

    Importante

    Autenticar com funções IAM em produção

    Ao implantar seu aplicativo habilitado para Queryable Encryption em um ambiente de produção, autentique seu aplicativo usando uma função do IAM em vez de um usuário do IAM .

    Para saber mais sobre roles do IAM, consulte as seguintes páginas na documentação oficial da AWS:

1
  1. Inicie sessão no Azure.

  2. Registre seu aplicativo com o Azure Active Directory

    Para registrar um aplicativo no Azure Active Directory, siga o guia oficial da Microsoft. Registre um aplicativo na plataforma de identidade da Microsoft Início rápido.

    Importante

    Registre suas Credenciais

    Certifique-se de registrar as seguintes credenciais:

    • ID do Inquilino

    • ID do cliente

    • Segredo do cliente

    Você precisará deles para construir seu objeto kmsProviders mais tarde neste tutorial.

    Importante

    Registre suas Credenciais

    Certifique-se de registrar as seguintes credenciais:

    • ID do Inquilino

    • ID do cliente

    • Segredo do cliente

    Você precisará deles para construir seu objeto kmsProviders mais tarde neste tutorial.

    Importante

    Registre suas Credenciais

    Certifique-se de registrar as seguintes credenciais:

    • ID do Inquilino

    • ID do cliente

    • Segredo do cliente

    Você precisará deles para construir seu objeto kmsProviders mais tarde neste tutorial.

    Importante

    Registre suas Credenciais

    Certifique-se de registrar as seguintes credenciais:

    • ID do Inquilino

    • ID do cliente

    • segredo do cliente

    A menos que esteja executando seu cliente em uma Máquina Virtual Azure, você precisará dessas credenciais para construir seu objeto kmsProviders mais tarde neste tutorial.

    Importante

    Registre suas Credenciais

    Certifique-se de registrar as seguintes credenciais:

    • ID do Inquilino

    • ID do cliente

    • Segredo do cliente

    Você precisará deles para construir seu objeto kmsProviders mais tarde neste tutorial.

    Importante

    Registre suas Credenciais

    Certifique-se de registrar as seguintes credenciais:

    • ID do Inquilino

    • ID do cliente

    • Segredo do cliente

    Você precisará deles para construir seu objeto kmsProviders mais tarde neste tutorial.

2
  1. Crie seu Azure Key Vault e a chave mestra do cliente

    Para criar uma nova instância do Azure Key Vault e uma chave mestra do cliente, siga o conjunto oficial da Microsoft e recupere uma chave do Azure Key Vault usando o portal do Azure Início rápido.

    Importante

    Registre suas Credenciais

    Certifique-se de registrar as seguintes credenciais:

    • Nome da chave

    • Identificador de chave (referido como keyVaultEndpoint mais adiante neste guia)

    • keyVersion

    Você precisará deles para construir seu objeto dataKeyOpts mais tarde neste tutorial.

  2. Conceder permissões

    Conceda ao seu aplicativo cliente permissões wrap e unwrap para a chave.

1
  1. Registre-se ou faça login em sua conta existente no Google Cloud Google Cloud Platform Platform.

  2. Crie uma conta de serviço para seu projeto

    Para criar uma conta de serviço no GCP, siga a seção Criar uma conta de serviço guia na documentação oficial do Google.

  3. Adicionar uma chave de conta de serviço

    Para adicionar uma chave de conta de serviço no GCP, siga o Gerenciamento de chaves de conta de serviço guia na documentação oficial do Google.

    Importante

    Ao criar sua chave de conta de serviço, você recebe um download único das informações da chave privada. Certifique-se de baixar este arquivo no formato PKCS12 ou JSON para uso posterior neste tutorial.

    Importante

    Ao criar sua chave de conta de serviço, você recebe um download único das informações da chave privada. Certifique-se de baixar este arquivo no formato PKCS12 ou JSON para uso posterior neste tutorial.

    Importante

    Ao criar sua chave de conta de serviço, você recebe um download único das informações da chave privada. Certifique-se de baixar este arquivo no formato PKCS12 ou JSON para uso posterior neste tutorial.

    Importante

    Ao criar sua chave de conta de serviço, você recebe um download único das informações da chave privada. A menos que você esteja usando uma conta de serviço anexada, baixe esse arquivo no formato PKCS12 ou JSON para uso posterior neste tutorial.

    Importante

    Ao criar sua chave de conta de serviço, você recebe um download único das informações da chave privada. Certifique-se de baixar este arquivo no formato PKCS12 ou JSON para uso posterior neste tutorial.

    Importante

    Ao criar sua chave de conta de serviço, você recebe um download único das informações da chave privada. Certifique-se de baixar este arquivo no formato PKCS12 ou JSON para uso posterior neste tutorial.

2
  1. Criar uma nova chave mestre do cliente

    Crie um chaveiro e uma chave simétrica seguindo o Criar uma chave guia da documentação oficial do Google.

    Essa chave é a chave mestre do cliente (CMK).

    Registre os seguintes detalhes da sua chave mestra do cliente para uso em uma etapa futura deste tutorial.

    Campo
    Obrigatório
    Descrição
    key_name
    Sim
    Identificador para a chave mestra do cliente.
    key_ring
    Sim
    Identificador do grupo de chaves ao qual sua chave pertence.
    key_version
    No
    A versão da chave nomeada.
    localização
    Sim
    Região especificada para sua chave.
    endpoint
    No
    O host e a porta opcional do GCP KMS. O valor padrão é cloudkms.googleapis.com.
1

Para conectar um cliente de driver MongoDB ao seu fornecedor de chaves compatível com KMIP , você deve configurar seu provedor de chaves compatível com KMIPpara que ele aceite o certificado TLS do seu cliente.

Consulte a documentação do seu provedor de chaves compatível com KMIPpara obter informações sobre como aceitar seu certificado de cliente.

2

Seu cliente deve se conectar ao seu provedor de chaves compatível com KMIPpor meio de TLS e apresentar um certificado de cliente que seu provedor de chaves compatível com KMIPaceite:

const tlsOptions = {
kmip: {
tlsCAFile: process.env["KMIP_TLS_CA_FILE"], // Path to your TLS CA file
tlsCertificateKeyFile: process.env["KMIP_TLS_CERT_FILE"], // Path to your TLS certificate key file
},
};
var tlsOptions = new Dictionary<string, SslSettings>();
var sslSettings = new SslSettings();
var clientCertificate = new X509Certificate2(_appSettings["Kmip:TlsCertP12"]!); // Full path to your client certificate p12 file
sslSettings.ClientCertificates = new[] { clientCertificate };
tlsOptions.Add("kmip", sslSettings);

Importante

Seu certificado de cliente deve estar no formato pcks12 . Você pode converter seu certificado usando OpenSSL com o seguinte comando:

openssl pcks12 -export -out "<new pcks12 certificate>" -in "<certificate to convert>" \
-name "<new certificate name>" -password "<new certificate password>"
tlsOpts := map[string]interface{}{
"tlsCertificateKeyFile": os.Getenv("KMIP_TLS_CERT_ECDSA_FILE"), // Path to your client certificate file
"tlsCAFile": os.Getenv("KMIP_TLS_CA_ECDSA_FILE"), // Path to your KMIP certificate authority file
}
kmipConfig, err := options.BuildTLSConfig(tlsOpts)
if err != nil {
panic(fmt.Sprintf("Unable to retrieve certificates from your environment: %s\n", err))
}
tlsConfig := map[string]*tls.Config{
"kmip": kmipConfig,
}

Importante

Você deve usar certificados com chaves ECDSA ao usar o driver Go com PyKMIP.

Configure as seguintes opções de máquina virtual para especificar o keystore e o armazenamento confiável que contêm seus certificados KMIP TLS e adicioná-los ao comando que você usa para iniciar seu aplicação Java :

-Djavax.net.ssl.enabled=true
-Djavax.net.ssl.keyStoreType=pkcs12
-Djavax.net.ssl.keyStore=REPLACE-WITH-PATH-TO-PKC-KEYSTORE
-Djavax.net.ssl.keyStorePassword=REPLACE-WITH-KEYSTORE-PASSWORD
-Djavax.net.ssl.trustStoreType=jks
-Djavax.net.ssl.trustStore=REPLACE-WITH-PATH-TO-TRUSTSTORE
-Djavax.net.ssl.trustStorePassword=REPLACE-WITH-TRUSTSTORE-PASSWORD

Observação

Configurar cliente com SSLContext

Se você preferir configurar seu aplicação cliente usando um contexto SSL, use o comando kmsProviderSslContextMap método.

const tlsOptions = {
kmip: {
tlsCAFile: process.env.KMIP_TLS_CA_FILE, // Path to your TLS CA file
tlsCertificateKeyFile: process.env.KMIP_TLS_CERT_FILE, // Path to your TLS certificate key file
},
};
tls_options = {
"kmip": {
"tlsCAFile": os.environ['KMIP_TLS_CA_FILE'], # Path to your TLS CA file
"tlsCertificateKeyFile": os.environ['KMIP_TLS_CERT_FILE'] # Path to your TLS certificate key file
}
}

Depois de instalar drivers e dependências e criar uma chave mestra do cliente, você pode criar seu aplicativo habilitado para Queryable Encryption.

Voltar

Instalar uma biblioteca