Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de marcação de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL .
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Gerenciar chaves de cliente com AWS em uma rede pública

Criptografe seus dados em repouso no Atlas com as chaves gerenciadas pelo cliente (CMK) que você cria, possui e gerencia no Amazon Web Services KMS.

Esta página descreve como configurar o gerenciamento de chaves do cliente usando o Amazon Web Services KMS em seu projeto Atlas e nos clusters desse projeto.

Para habilitar chaves gerenciadas pelo cliente com o AWS KMS para um projeto do MongoDB, você deve:

  • Use um cluster M10 ou superior.
  • Tenha um role AWS IAM com privilégios suficientes. O Atlas deve ter permissão para realizar as seguintes ações com sua chave:

    Observação

    Se desejar usar a chave KMS da AWS com uma função IAM da AWS de uma conta da AWS diferente, em vez da função IAM que criou a chave KMS da AWS, verifique se você tem privilégios suficientes:

    • Adicione uma declaração de política de chave na chave AWS KMS para permitir o acesso de uma conta AWS externa.

    • Adicione uma política interna do IAM para o role do IAM na conta externa do AWS.

    Para acessar uma discussão abrangente sobre roles do IAM e chaves mestras do cliente, consulte a documentação da AWS.

    Após confirmar os privilégios acima, você pode seguir as etapas usuais para definir as configurações de KMS no Atlas, com a seguinte exceção:

    • Você deve fornecer o ARN completo para a chave KMS da AWS (por exemplo, arn:aws:kms:eu-west-2:111122223333:key/12345678-1234-1234-1234-12345678) em vez da ID da chave mestra (por exemplo 12345678-1234-1234-1234-12345678) no campo de ID da chave KMS da AWS.

    Para saber como criar um role IAM, consulte Funções IAM na documentação AWS.

    O Atlas usa a mesma função do IAM e as mesmas configurações de chave KMS da AWS para todos os clusters em um projeto para o qual a encryption at rest está habilitada.

  • Se a configuração do AWS KMS exigir, permita o acesso dos endereços IP do Atlas e dos endereços IP públicos ou nomes de host DNS dos nós do cluster para que o Atlas possa se comunicar com o KMS. Você deve incluir os endereços IP em sua política de função gerenciada do IAM configurando operadores de condição de endereço IP em seu documento de política. Se os endereços IP do nó forem alterados, você deverá atualizar sua configuração para evitar interrupções de conectividade.

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Database & Network Access sob o título Security.

  4. Na barra lateral, clique em Advanced.

    A página Avançado é exibida.

2
3

Para criar um novo role IAM do AWS para acessar suas chaves KMS do AWS para encryption at rest, siga o procedimento Criar novo role com o AWS CLI. Se você tiver um role AWS IAM existente que deseja autorizar, siga o procedimento Adicionar relacionamentos de confiança sa um role existente.

4

Observação

Esta declaração de política permite que o Amazon Web Services Principal do MongoDB use a chave KMS do cliente para operações de criptografia e descriptografia. O Atlas Principal não é secreto e é usado em todos os clientes da Atlas . Esta é uma conta Amazon Web Services altamente restrita e limitada, sem recursos além do usuário do IAM. O ExternalId na declaração de política é exclusivo para cada projeto Atlas , mas não é secreto. O ExternalId é usado para mitigar a possibilidade de vulnerabilidades entre contextos (deputação confusa). O uso pelo Atlas de um principal comum para acessar as chaves de todos os clientes é um padrão de acesso recomendado pela Amazon, conforme descrito aqui.

A política de acesso para encryption at rest é similar ao exemplo a seguir:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:DescribeKey"
],
"Resource": [
"arn:aws:kms:us-east-1:123456789012:key/12x345y6-7z89-0a12-3456-xyz123456789"
]
}
]
}
5
6
  1. Selecione a role a ser atribuída na lista suspensa AWS IAM role.

  2. Especifique sua chave de encriptação no campo Customer Master Key ID.

  3. Selecione a região da AWS para sua chave de criptografia.

1

Use o endpoint da API para criar um novo papel IAM do AWS. O Atlas usará esse papel para autenticação com sua conta do AWS.

Mantenha os valores de campo retornados atlasAWSAccountArn e atlasAssumedRoleExternalId perto para uso na próxima etapa.

2
  1. Faça login no Console de gerenciamento da AWS .

  2. Navegue até o serviço de Identity and Access Management (IAM).

  3. Selecione Roles na navegação do lado esquerdo.

  4. Clique no papel IAM existente que você deseja utilizar para acesso do Atlas a partir da lista de papéis.

  5. Selecione a guia Trust Relationships.

  6. Clique no botão Edit trust relationship.

  7. Edite o Policy Document. Adicione um novo objeto Statement com o seguinte conteúdo.

    Observação

    Esta declaração de política permite que o Amazon Web Services Principal do MongoDB use a chave KMS do cliente para operações de criptografia e descriptografia. O Atlas Principal não é secreto e é usado em todos os clientes da Atlas . Esta é uma conta Amazon Web Services altamente restrita e limitada, sem recursos além do usuário do IAM. O ExternalId na declaração de política é exclusivo para cada projeto Atlas , mas não é secreto. O ExternalId é usado para mitigar a possibilidade de vulnerabilidades entre contextos (deputação confusa). O uso pelo Atlas de um principal comum para acessar as chaves de todos os clientes é um padrão de acesso recomendado pela Amazon, conforme descrito aqui.

    Observação

    Substitua as linhas destacadas pelos valores retornados da chamada de API na etapa 1.

    {
    "Version": "2020-03-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Principal": {
    "AWS": "<atlasAWSAccountArn>"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
    "StringEquals": {
    "sts:ExternalId": "<atlasAssumedRoleExternalId>"
    }
    }
    }
    ]
    }
  8. Clique no botão Update Trust Policy.

3

Use o endpoint da API para autorizar e configurar o novo IAM Assumed Role ARN. Se a chamada da API for bem-sucedida, você pode usar o valor roleId ao configurar serviços do Atlas que utilizam o AWS.

4

Envie uma solicitação PATCH ao ponto de extremidade da API encryptionAtRest para atualizar o campo awsKms.roleId com seu ID de função do AWS IAM autorizado.

Observação

Este comando curl usa um token de acesso à conta de serviço (OAuth 2.0) para autenticar em vez de chaves API. Para saber mais, consulte Introdução à Atlas Administration API.

Exemplo

curl --header "Authorization: Bearer {ACCESS-TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--include \
--request PATCH \
"https://cloud.mongodb.com/api/atlas/v1.0/groups/{groupId}/encryptionAtRest?pretty=true&envelope=true" \
--data '
{
"awsKms": {
"enabled": true,
"roleId": "<roleId>",
"customerMasterKeyID": "<master-key-id>",
"region": "<aws-region>"
}
}'

Depois de habilitar o acesso baseado em role para sua chave de criptografia para seu projeto, habilite chaves gerenciadas pelo cliente para cada cluster do Atlas em seu projeto seguindo Habilitar gerenciamento de chaves do cliente para um cluster do Atlas.

A partir de de janeiro 26 2021de, oAmazon Web Services exige o uso de funções do IAM em vez de usuários do IAM para gerenciar o acesso às chaves de criptografia do Amazon Web Services KMS no Atlas. Se você configurou inicialmente seu projeto para utilizar credenciais de usuário IAM para acessar chaves Amazon Web Services KMS, alterne para acesso baseado em função para cumprir este novo requisito utilizando o seguinte procedimento.

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.

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione seu projeto no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Database & Network Access sob o título Security.

  4. Na barra lateral, clique em Advanced.

    A página Avançado é exibida.

2
3
4

Para criar um novo role IAM do AWS para acessar suas chaves KMS do AWS para encryption at rest, siga o procedimento Criar novo role com o AWS CLI. Se você tiver um role AWS IAM existente que deseja autorizar, siga o procedimento Adicionar relacionamentos de confiança sa um role existente.

Para atualizar seu gerenciamento de chave de criptografia com a API de Administração do Atlas, use as mesmas etapas descritas no procedimento acima.

Depois de ativar o acesso baseado em role para sua chave de encriptação para um projeto, você deve ativar o gerenciamento de chaves do cliente para cada Atlas cluster que contém dados que você deseja criptografar.

Observação

Você deve ter a role Project Owner para habilitar o gerenciamento de chaves do cliente para clusters nesse projeto.

Para novos clusters, alterne a configuração Gerenciar suas próprias chaves de encriptação para Yes quando você criar o cluster.

Para clusters existentes:

1
  1. Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.

  2. Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.

  3. Na barra lateral, clique em Clusters sob o título Database.

A página Clusters é exibida.

2

Para o cluster que contém os dados que você deseja criptografar, clique no botão e selecione Edit Configuration.

3
  1. Expanda o painel Additional Settings.

  2. Alterne a configuração Manage your own encryption keys para Yes.

  3. Verifique o status da configuração Require Private Networking para seu cluster.

    Se você configurou a criptografia em repouso usando CMK (Over Private Networking) para Atlas no nível do projeto, o status é Active. Se você não configurou nenhuma conexão de endpoint privado para seu projeto, o status será Inactive.

4
  1. Clique em Review Changes.

  2. Revise suas alterações e clique em Apply Changes para atualizar seu cluster.

Por padrão, o MongoDB e os processos de pesquisa são executados nos mesmos nós. Com essa arquitetura, a criptografia gerenciada pelo cliente se aplica aos dados do seu banco de dados , mas não se aplica aos índices de pesquisa.

Quando você habilita nós de pesquisa dedicados, os processos de pesquisa são executados em nós separados. Isso permite que você ative a criptografia de dados do nó de pesquisa, para que possa criptografar os dados do banco de dados e os índices de pesquisa com as mesmas chaves gerenciadas pelo cliente para uma cobertura abrangente de criptografia.

Observação

Os nós de banco de dados e os nós de pesquisa usam métodos de criptografia diferentes com as mesmas chaves gerenciadas pelo cliente. Os nós de banco de dados usam o WiredTiger Mecanismo de armazenamento criptografado, enquanto os nós de pesquisa usam criptografia no nível do disco.