Importante
Recurso Indisponível em Instâncias sem Servidor
Neste momento, as instâncias sem servidor não permitem essa funcionalidade. Para saber mais, consulte Limitações de instância sem servidor.
O Atlas criptografa todo o armazenamento em cluster e volumes de snapshots em repouso por padrão. Você pode adicionar outra camada de segurança usando o do seu fornecedor de nuvem KMS junto com o MongoDB criptografado do storage engine.
Você pode usar um ou mais dos seguintes provedores de KMS do cliente para criptografia em descanso no Atlas:
Observação
O fornecedor de gerenciamento de chaves não precisa corresponder ao fornecedor de serviços de cloud do cluster.
Para saber mais sobre como usar seu KMS com o Atlas, consulte:
Para gerenciar sua criptografia KMS com Atlas Kubernetes Operator, você pode especificar e atualizar o parâmetro spec.encryptionAtRest
para o AtlasProject
Recurso Personalizado. Cada vez que você altera o campo spec
em qualquer um dos recursos personalizados suportados, o Atlas Kubernetes Operator cria ou atualiza a configuração correspondente do Atlas .
Pré-requisitos
Para configurar a criptografia em descanso usando Amazon Web Services KMS no Atlas Kubernetes Operator, você exige:
Um cluster Kubernetes em execução com o Atlas Kubernetes Operator distribuído.
O papel
Project Owner
ouOrganization Owner
no Atlas.Credenciais de gerenciamento de chaves válidas e uma chave de criptografia para Amazon Web Services KMS. Para saber mais, consulte Pré-requisitos para habilitar chaves gerenciadas pelo cliente com Amazon Web Services.
Uma função presumida do IAM para sua conta Atlas . Para configurar uma função presumida do IAM com o Atlas Kubernetes Operator, consulte Configurar integrações do provedor de nuvem unificado. Para saber mais sobre o acesso baseado em roles para uma chave de criptografia Amazon Web Services , consulte Gerenciar chaves de cliente com Amazon Web Services KMS.
Importante
Se você alternar suas chaves de encriptação para acesso baseado em role, não poderá desfazer a configuração de acesso baseado em role e reverter para acesso baseado em credenciais para chaves de encriptação nesse projeto.
Para configurar a criptografia em descanso usando o Azure Key Vault no Atlas Kubernetes Operator, você exige:
Um cluster Kubernetes em execução com o Atlas Kubernetes Operator distribuído.
O papel
Project Owner
ouOrganization Owner
no Atlas.Credenciais de gerenciamento de chaves válidas e uma chave de criptografia para o Azure Key Vault. Para saber mais, consulte Pré-requisitos para habilitar chaves gerenciadas pelo cliente com o Azure.
Para configurar a criptografia em descanso usando um Google Cloud Platform KMS no Atlas Kubernetes Operator, você exige:
Um cluster Kubernetes em execução com o Atlas Kubernetes Operator distribuído.
O papel
Project Owner
ouOrganization Owner
no Atlas.Credenciais de gerenciamento de chaves válidas e uma chave de criptografia para Google Cloud Platform KMS. Para saber mais, consulte Pré-requisitos para habilitar chaves gerenciadas pelo cliente com a Google Cloud Platform.
Procedimento
Criptografe seus dados do Atlas usando uma chave managed pelo cliente com o seguinte procedimento:
Crie um segredo com suas credenciais do Amazon Amazon Web Services Web Services.
Crie um segredo com os valores para os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
| string alfanumérica exclusiva que identifica a chave mestra do cliente da Amazon Web Services que você usa para criptografar e descriptografar as chaves mestras do MongoDB . |
| Amazon Web Services ARN exclusivo que identifica a função Amazon Web Services IAM do com permissão para gerenciar sua chave mestra do cliente do Amazon Web Services . Para encontrar esse valor:
Amazon Web Services exibe o ARN na seção Summary. |
Para criar e rotular um segredo, execute os seguintes comandos com suas credenciais do Amazon Web Services :
kubectl create secret generic aws-ear-creds \ --from-literal="CustomerMasterKeyID=<customer-master-key>" \ --from-literal="RoleId=<aws-arn>" \ -n mongodb-atlas-system
kubectl label secret aws-ear-creds atlas.mongodb.com/type=credentials -n mongodb-atlas-system
Especifique spec.encryptionAtRest.awsKms
o parâmetro.
Adicione o objeto
spec.encryptionAtRest.awsKms
à arrayspec.encryptionAtRest
noAtlasProject
Recurso Personalizado, incluindo os seguintes parâmetros:ParâmetroDescriçãospec.encryptionAtRest.awsKms.enabled
Sinalizador que indica se esse projeto usa o Amazon Web Services KMS para criptografar dados em repouso. Para habilitar a criptografia em descanso usando o Amazon Web Services KMS, defina este parâmetro como
true
. Para desabilitar a criptografia em descanso usando o Amazon Web Services KMS, defina este parâmetro comofalse
. Se você desabilitar a encryption at rest usando o AWS KMS, o Atlas Kubernetes Operator removerá os detalhes de configuração.spec.encryptionAtRest.awsKms.region
Etiqueta que indica a região do Amazon Web Services onde está a chave mestra do cliente.
spec.encryptionAtRest.awsKms.secretRef.name
Nome do segredo que contém suas credenciais do Amazon Web Services .
spec.encryptionAtRest.awsKms.secretRef.namespace
namespace que contém suas credenciais Amazon Web Services . Se não for especificado, esse parâmetro assumirá como padrão o namespace do recurso personalizado
AtlasProject
.Você deve usar um segredo que contém os valores para
AccessKeyID
,SecretAccessKey
,CustomerMasterKeyID
eRoleId
.Execute o seguinte comando:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project encryptionAtRest: awsKms: enabled: true region: us-east-1 secretRef: name: aws-ear-creds namespace: mongodb-atlas-system EOF
Verifique a ativação bem-sucedida da criptografia em descanso em seu projeto.
Execute o comando a seguir para verificar se Atlas Kubernetes Operator detecta a configuração do Amazon Web Services KMS para seu projeto.
kubectl get atlasprojects my-project -o=jsonpath='{.status.conditions[?(@.type=="EncryptionAtRestReadyType")].status}
true
Habilite a criptografia em descanso usando chaves managed pelo cliente para seu cluster.
Depois de habilitar a criptografia em descanso usando chaves managed pelo cliente para seu projeto, você deve habilitá-la no nível do cluster para criptografar dados.
Execute o seguinte comando para adicionar o spec.deploymentSpec.encryptionAtRestProvider
ao seu AtlasDeployment
Recurso Personalizado, que habilita a criptografia em descanso usando sua chave do Amazon Web Services para este cluster:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-cluster spec: name: Test Atlas Operator Cluster DeploymentSpec: encryptionAtRestProvider: "AWS" EOF
Crie um segredo com suas credenciais do Azure.
Crie um segredo com os valores para os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
| Endereço da Web com uma chave exclusiva que identifica seu Azure Key Vault. |
| string exclusiva que identifica o Azure Key Vault que contém sua chave. |
| Dados privados associados ao locatário do Azure Key Vault que você especifica no |
| 36-string exclusiva de caracteres hexadecimais que identifica sua assinatura do Azure . O Azure exibe a ID da assinatura na página de detalhes da assinatura. |
Para criar e rotular um segredo, execute os seguintes comandos com suas credenciais do Azure :
kubectl create secret generic azure-ear-creds \ --from-literal="KeyIdentifier=<web-address>" \ --from-literal="KeyVaultName=<key-vault>" \ --from-literal="Secret=<secret>" \ --from-literal="SubscriptionID=<subscription>" \ -n mongodb-atlas-system
kubectl label secret azure-ear-creds atlas.mongodb.com/type=credentials -n mongodb-atlas-system
Especifique spec.encryptionAtRest.azureKeyVault
o parâmetro.
Adicione o objeto
spec.encryptionAtRest.azureKeyVault
à arrayspec.encryptionAtRest
noAtlasProject
Recurso Personalizado, incluindo os seguintes parâmetros:ParâmetroDescriçãospec.encryptionAtRest.azureKeyVault.azureEnvironment
Local de implantação do Azure onde residem as credenciais da conta do Azure . Os valores válidos incluem
AZURE
,AZURE_CHINA
eAZURE_GERMANY
.spec.encryptionAtRest.azureKeyVault.clientID
Sequência exclusiva de 36 caracteres hexadecimais que identifica seu aplicativo Azure .
spec.encryptionAtRest.azureKeyVault.
enabled
Sinalizador que indica se este projeto utiliza o Azure Key Vault para criptografar dados em repouso. Para habilitar a criptografia em descanso usando o Azure Key Vault, defina esse parâmetro como
true
. Para desabilitar a criptografia em descanso usando o Azure Key Vault, defina esse parâmetro comofalse
. Se você desabilitar a criptografia em descanso usando o Azure key vault, o Atlas Kubernetes Operator removerá os detalhes de configuração.spec.encryptionAtRest.azureKeyVault.resourceGroupName
Etiqueta que identifica o grupo de recursos do Azure que contém seu Azure Key Vault. O Azure exibe o nome do grupo de recursos na página de detalhes do grupo de recursos.
spec.encryptionAtRest.azureKeyVault.secretRef.name
Nome do segredo que contém suas credenciais do Azure .
spec.encryptionAtRest.azureKeyVault.secretRef.namespace
namespace que contém suas credenciais do Azure . Se não for especificado, esse parâmetro assumirá como padrão o namespace do recurso personalizado
AtlasProject
.spec.encryptionAtRest.azureKeyVault.
tenantID
Sequência exclusiva de caracteres hexadecimais de 36 caracteres que identifica o locatário do Azure Active Directory dentro da sua assinatura do Azure . O Azure exibe a ID do locatário na página de propriedades do locatário.
Você deve usar um segredo que contém os valores para
KeyVaultName
,KeyIdentifier
,Secret
eSubscriptionID
.Execute o seguinte comando:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project encryptionAtRest: azureKeyVault: azureEnvironment: AZURE clientID: "12345678-90ab-cdef-1234-567890abcdef" enabled: true resourceGroupName: "myResourceGroup" tenantID: "e8e4b6ba-ff32-4c88-a9af-EXAMPLEID" secretRef: name: azure-ear-creds namespace: mongodb-atlas-system EOF
Verifique a ativação bem-sucedida da criptografia em descanso em seu projeto.
Execute o seguinte comando para verificar se o Atlas Kubernetes Operator detecta a configuração do Azure Key Vault para seu projeto.
kubectl get atlasprojects my-project -o=jsonpath='{.status.conditions[?(@.type=="EncryptionAtRestReadyType")].status}
true
Habilite a criptografia em descanso usando chaves managed pelo cliente para seu cluster.
Depois de habilitar a criptografia em descanso usando chaves managed pelo cliente para seu projeto, você deve habilitá-la no nível do cluster para criptografar dados.
Execute o seguinte comando para adicionar o spec.deploymentSpec.encryptionAtRestProvider
ao seu AtlasDeployment
Recurso Personalizado, que habilita a criptografia em descanso usando sua chave Azure para este cluster:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-cluster spec: name: Test Atlas Operator Cluster DeploymentSpec: encryptionAtRestProvider: "AZURE" EOF
Crie um segredo com suas Google Cloud Platform credenciais da Google Cloud Platform.
Crie um segredo com os valores para os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
| Caminho de recurso exclusivo que exibe a ID do recurso da versão principal para seu Google Cloud Platform KMS. |
| Arquivo JSON que contém as credenciais do Google Cloud Platform KMS da sua conta do Google Cloud Platform . IMPORTANTE: você deve formatar o objeto JSON corretamente. Certifique-se de indentar corretamente os campos de credenciais no arquivo. |
O exemplo a seguir mostra o conteúdo de um arquivo JSON do ServiceAccountKey
:
{ "type": "service_account", "project_id": "my-project-common-0", "private_key_id": "e120598ea4f88249469fcdd75a9a785c1bb3\", "private_key": "-----BEGIN PRIVATE KEY-----\\nMIIEuwIBA(truncated)SfecnS0mT94D9\\n-----END PRIVATE KEY-----\\n\", "client_email": "my-email-kms-0@my-project-common-0.iam.gserviceaccount.com\", "client_id": "10180967717292066", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/my-email-kms-0%40my-project-common-0.iam.gserviceaccount.com" "universe_domain": "googleapis.com" }
Para criar e rotular um segredo, execute os seguintes comandos com suas credenciais do Google Cloud Platform :
kubectl create secret generic azure-ear-creds \ --from-literal="KeyVersionResourceID=<resource-id>" \ --from-file="ServiceAccountKey=<your-service-account-key-files.json>" \ -n mongodb-atlas-system
kubectl label secret gcp-ear-creds atlas.mongodb.com/type=credentials -n mongodb-atlas-system
Especifique spec.encryptionAtRest.googleCloudKms
o parâmetro.
Adicione o objeto
spec.encryptionAtRest.googleCloudKms
à arrayspec.encryptionAtRest
noAtlasProject
Recurso Personalizado, incluindo os seguintes parâmetros:ParâmetroDescriçãospec.encryptionAtRest.googleCloudKms.enabled
Sinalizador que indica se esse projeto usa o GCP KMS para criptografar dados em repouso. Para habilitar a criptografia em descanso usando o GCP KMS, defina este parâmetro como
true
. Para desativar a criptografia em descanso usando o GCP KMS, defina este parâmetro comofalse
. Se você desabilitar a criptografia em descanso usando o GCP KMS, o Atlas Kubernetes Operator removerá os detalhes de configuração.spec.encryptionAtRest.googleCloudKms.secretRef.name
Nome do segredo que contém suas credenciais do Google Cloud Platform .
spec.encryptionAtRest.googleCloudKms.secretRef.namespace
namespace que contém suas credenciais do GCP. Se não for especificado, esse parâmetro assumirá como padrão o namespace do recurso personalizado
AtlasProject
.Você deve usar um segredo que contém os valores para
KeyVersionResourceID
eServiceAccountKey
.Execute o seguinte comando:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project encryptionAtRest: googleCloudKms: enabled: true secretRef: name: gcp-ear-creds namespace: mongodb-atlas-system EOF
Verifique a ativação bem-sucedida da criptografia em descanso em seu projeto.
Execute o comando a seguir para verificar se Atlas Kubernetes Operator detecta a configuração do Google Cloud Platform KMS para seu projeto.
kubectl get atlasprojects my-project -o=jsonpath='{.status.conditions[?(@.type=="EncryptionAtRestReadyType")].status}
true
Habilite a criptografia em descanso usando chaves managed pelo cliente para seu cluster.
Depois de habilitar a criptografia em descanso usando chaves managed pelo cliente para seu projeto, você deve habilitá-la no nível do cluster para criptografar dados.
Execute o comando a seguir para adicionar o spec.deploymentSpec.encryptionAtRestProvider
ao seu AtlasDeployment
Recurso Personalizado, que habilita a criptografia em descanso usando sua chave do Google Cloud Platform para este cluster:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-cluster spec: name: Test Atlas Operator Cluster DeploymentSpec: encryptionAtRestProvider: "GCP" EOF