Criar uma chave mestra do cliente
Visão geral
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
Antes de começar
Conclua as tarefas anteriores antes de continuar:
Procedimento
Selecione a guia do seu provedor de chaves abaixo.
Criar a Chave Mestre do Cliente
Faça login no Amazon Web Services Console de gerenciamento do Amazon Web Services.
Navegue até o Amazon Web Services KMS Console KMS do Amazon Web Services.
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.
Criar um usuário AWS IAM
Navegue até o Amazon Web Services Console do Amazon Web Services IAM.
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 .
Conceder permissões
Conceda ao usuário do IAM permissões de
kms:Encrypt
ekms: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:
Registre seu aplicativo com o Azure
Inicie sessão no Azure.
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.
Criar a Chave Mestre do Cliente
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.Conceder permissões
Conceda ao seu aplicativo cliente permissões
wrap
eunwrap
para a chave.
Registrar uma conta de serviço GCP
Registre-se ou faça login em sua conta existente no Google Cloud Google Cloud Platform Platform.
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.
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.
Criar uma Chave Mestre do Cliente GCP
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.
CampoObrigatórioDescriçãokey_nameSimIdentificador para a chave mestra do cliente.key_ringSimIdentificador do grupo de chaves ao qual sua chave pertence.key_versionNoA versão da chave nomeada.localizaçãoSimRegião especificada para sua chave.endpointNoO host e a porta opcional do GCP KMS. O valor padrão écloudkms.googleapis.com
.
Configure seu provedor de chaves compatível com KMIP
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.
Especifique seus certificados
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, }
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 } }
Próximos passos
Depois de instalar drivers e dependências e criar uma chave mestra do cliente, você pode criar seu aplicativo habilitado para Queryable Encryption.