Menu Docs
Página inicial do Docs
/ /
Atlas Kubernetes Operator
/

Criptografar dados usando um serviço de gerenciamento de chaves

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 .

Para configurar a criptografia em descanso usando Amazon Web Services KMS no Atlas Kubernetes Operator, você exige:

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:

Para configurar a criptografia em descanso usando um Google Cloud Platform KMS no Atlas Kubernetes Operator, você exige:

Criptografe seus dados do Atlas usando uma chave managed pelo cliente com o seguinte procedimento:

1

Crie um segredo com os valores para os seguintes parâmetros:

Parâmetro
Descrição

CustomerMasterKeyID

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 .

RoleId

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:

  1. Go para a seção Roles do Console de gerenciamento do Amazon Web Services .

  2. Clique no papel IAM que você editou ou criou para acesso do Atlas .

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
2
  1. Adicione o objeto spec.encryptionAtRest.awsKms à array spec.encryptionAtRest no AtlasProject Recurso Personalizado, incluindo os seguintes parâmetros:

    Parâmetro
    Descrição

    spec.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 como false. 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 e RoleId.

  2. 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
3

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
4

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
1

Crie um segredo com os valores para os seguintes parâmetros:

Parâmetro
Descrição

KeyIdentifier

Endereço da Web com uma chave exclusiva que identifica seu Azure Key Vault.

KeyVaultName

string exclusiva que identifica o Azure Key Vault que contém sua chave.

Secret

Dados privados associados ao locatário do Azure Key Vault que você especifica no spec.encryptionAtRest.azureKeyVault.tenantID.

SubscriptionID

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
2
  1. Adicione o objeto spec.encryptionAtRest.azureKeyVault à array spec.encryptionAtRest no AtlasProject Recurso Personalizado, incluindo os seguintes parâmetros:

    Parâmetro
    Descrição

    spec.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 e AZURE_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 como false. 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 e SubscriptionID.

  2. 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
3

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
4

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
1

Crie um segredo com os valores para os seguintes parâmetros:

Parâmetro
Descrição

KeyVersionResourceID

Caminho de recurso exclusivo que exibe a ID do recurso da versão principal para seu Google Cloud Platform KMS.

ServiceAccountKey

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
2
  1. Adicione o objeto spec.encryptionAtRest.googleCloudKms à array spec.encryptionAtRest no AtlasProject Recurso Personalizado, incluindo os seguintes parâmetros:

    Parâmetro
    Descrição

    spec.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 como false. 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 e ServiceAccountKey.

  2. 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
3

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
4

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

Voltar

X.509

Nesta página