Atlas encrypts all cluster storage and snapshot volumes at rest by default. You can add another layer of security by using your cloud provider's KMS together with the MongoDB encrypted 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 spec.encryptionAtRest parâmetro 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 o Amazon Web Services KMS no Atlas Kubernetes Operator, você exige:
Um cluster Kubernetes em execução com o Atlas Kubernetes Operator distribuído.
The
Project OwnerorOrganization Ownerrole in Atlas.Credenciais de gerenciamento de chaves válidas e uma chave de criptografia para o AWS KMS. Para saber mais, consulte Pré-requisitos para habilitar chaves gerenciadas pelo cliente com a AWS.
An assumed IAM role for your Atlas account. To set up an assumed IAM role with the Atlas Kubernetes Operator, see Set Up Unified Cloud Provider Integrations. To learn more about role-based access for an AWS encryption key, see Manage Customer Keys with AWS 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.
The
Project OwnerorOrganization Ownerrole in Atlas.Credenciais de gerenciamento de chaves válidas e uma chave de criptografia para 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.
The
Project OwnerorOrganization Ownerrole in Atlas.Credenciais de gerenciamento de chaves válidas e uma chave de criptografia para o Google Cloud Platform KMS. Para saber mais, consulte Pré-requisitos para habilitar chaves gerenciadas pelo cliente com o 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 da AWS.
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 do Amazon Web Services IAM com permissão para managed sua chave mestra do cliente Amazon Web Services . Para encontrar esse valor:
AWS 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 o parâmetro spec.encryptionAtRest.awsKms.
Adicione o objeto spec.encryptionAtRest.awsKms ao spec.encryptionAtRest array no
AtlasProjectRecurso Personalizado, incluindo os seguintes parâmetros:ParâmetroDescriçãospec.encryptionAtRest.awsKms.enabledSinalizador que indica se este projeto usa AWS KMS para criptografar dados em repouso. Para habilitar a criptografia em descanso usando Amazon Web Services KMS, defina este parâmetro como
true. Para desabilitar a criptografia em descanso usando o AWS KMS, defina este parâmetro comofalse. Se você desativar a criptografia em descanso usando o AWS KMS, o Atlas Kubernetes Operator remove os detalhes de configuração.spec.encryptionAtRest.awsKms.regionLabel that indicates the AWS region where the customer master key exists.
spec.encryptionAtRest.awsKms.secretRef.nameNome do segredo que contém suas credenciais do Amazon Web Services .
spec.encryptionAtRest.awsKms.secretRef.namespaceNamespace que contém suas credenciais do Amazon Web Services. Se não especificado, este parâmetro assume o valor padrão do namespace do recurso personalizado
AtlasProject.Você deve usar um segredo que contenha os valores para
AccessKeyID,SecretAccessKey,CustomerMasterKeyIDeRoleID.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 seguinte comando para verificar se o Atlas Kubernetes Operator detecta a configuração do Amazon Web Services KMS para seu projeto.
kubectl get atlasprojects my-project -n mongodbatlas-system -o=jsonpath='{.status.conditions[?(@.type=="EncryptionAtRestReady")].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 AWS 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 em |
| 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 o parâmetro spec.encryptionAtRest.azureKeyVault.
Adicione o spec.encryptionAtRest.azureKeyVault objeto ao spec.encryptionAtRest array no
AtlasProjectRecurso Personalizado, incluindo os seguintes parâmetros:ParâmetroDescriçãospec.encryptionAtRest.azureKeyVault.azureEnvironmentLocalização de implantação do Azure onde residem as credenciais da conta Azure. Os valores válidos incluem
AZURE,AZURE_CHINAeAZURE_GERMANY.spec.encryptionAtRest.azureKeyVault.clientIDstring exclusiva de caracteres 36-hexadecimal que identifica seu aplicativo Azure.
spec.encryptionAtRest.azureKeyVault.enabledSinalizador que indica se este projeto usa Azure cofre de chaves para criptografar dados em repouso. Para habilitar a criptografia em descanso usando o Azure Key Vault, defina este parâmetro como
true. Para desabilitar a criptografia em descanso usando o Azure Key Vault, defina este parâmetro comofalse. Se você desabilitar a criptografia em descanso usando o Azure Key Vault, o Atlas Kubernetes Operator remove os detalhes de configuração.spec.encryptionAtRest.azureKeyVault.resourceGroupNameEtiqueta 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.nameNome do segredo que contém suas credenciais do Azure .
spec.encryptionAtRest.azureKeyVault.secretRef.namespaceNamespace que contém suas credenciais do Azure. Se não especificado, este parâmetro assume o valor padrão do namespace do recurso personalizado
AtlasProject.spec.encryptionAtRest.azureKeyVault.tenantIDstring exclusiva de caracteres 36-hexadecimal que identifica o locatário do Azure Active Directory dentro de 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 contenha os valores para
KeyVaultName,KeyIdentifier,SecreteSubscriptionID.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 credenciais do Google Cloud.
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 o parâmetro spec.encryptionAtRest.googleCloudKms.
Adicione o spec.encryptionAtRest.googleCloudKms objeto ao spec.encryptionAtRest array no
AtlasProjectRecurso Personalizado, incluindo os seguintes parâmetros:ParâmetroDescriçãospec.encryptionAtRest.googleCloudKms.enabledSinalizador que indica se este projeto usa o Google Cloud Platform KMS para criptografar dados em repouso. Para habilitar a criptografia em descanso usando o Google Cloud Platform KMS, defina este parâmetro como
true. Para desativar a criptografia em descanso usando o Google Cloud Platform KMS, defina este parâmetro comofalse. Se você desativar a criptografia em descanso usando o Google Cloud Platform KMS, o Atlas Kubernetes Operator remove os detalhes da configuração.spec.encryptionAtRest.googleCloudKms.secretRef.nameNome do segredo que contém suas credenciais do Google Cloud Platform .
spec.encryptionAtRest.googleCloudKms.secretRef.namespacenamespace 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 contenha os valores para
KeyVersionResourceIDeServiceAccountKey.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 seguinte comando para adicionar o spec.deploymentSpec.encryptionAtRestProvider ao seu AtlasDeployment Recurso Personalizado, que habilita a criptografia em descanso usando sua chave do Google Cloud 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