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 encriptação 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
2
3

Criar uma nova chave simétrica seguindo a documentação oficial da AWS em Criar chaves KMS 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
2

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

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
2

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

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

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

1
1
2

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

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

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 no12 formato pcks . 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 aplicativo 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 aplicativo 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