Criptografar recursos do Amazon Aurora - Amazon Aurora

Criptografar recursos do Amazon Aurora

O Amazon Aurora pode criptografar clustersde banco de dados do Amazon Aurora. Os dados que são criptografados em repouso incluem o armazenamento subjacente para clusters de banco de dados, seus backups automatizados, réplicas de leitura e snapshots.

Os de instâncias de banco de dados Amazon Aurora usam o algoritmo de criptografia AES-256 padrão do setor para criptografar seus dados no servidor que hospeda os de instâncias de banco de dados Amazon Aurora. Após a criptografia dos seus dados, o Amazon Aurora lida com a autenticação do acesso e a decodificação dos seus dados de forma transparente com um mínimo impacto sobre a performance. Você não precisa modificar suas aplicações cliente de banco de dados para usar a criptografia.

nota

Para clusters, os dados em trânsito entre a origem e as réplicas de leitura são criptografados, até mesmo quando a replicação ocorre entre regiões da AWS.

Visão geral da criptografia de recursos do Amazon Aurora

Os clusters de banco de dados criptografados do Amazon Aurora fornecem uma camada adicional de proteção de dados, protegendo seus dados contra o acesso não autorizado ao armazenamento subjacente. Use a criptografia do Amazon Aurora para aumentar a proteção de dados nas aplicações implantadas na nuvem e cumprir os requisitos de conformidade para criptografia em repouso.

Em um cluster de banco de dados criptografado do Amazon Aurora, todas as instâncias de banco de dados, logs, backups e snapshots são criptografados. Também é possível criptografar uma réplica de leitura de um cluster criptografado do Amazon Aurora. O Amazon Aurora usa uma chave do AWS Key Management Service para criptografar esses recursos. Para ter mais informações sobre as chaves do KMS, consulte AWS KMS keys no Guia do desenvolvedor do AWS Key Management Service. Cada instância de banco de dados no cluster de banco de dados é criptografada com a mesma chave do KMS que o cluster de banco de dados. Se você copiar um snapshot criptografado, poderá usar uma chave do KMS para criptografar o snapshot de destino diferente da usada para criptografar o snapshot de origem.

É possível usar uma Chave gerenciada pela AWS ou criar chaves gerenciadas pelo cliente. Para gerenciar as chaves gerenciadas pelo cliente usadas para criptografar e descriptografar seus recursos do Amazon Aurora, use o AWS Key Management Service (AWS KMS). O AWS KMS combina hardware e software seguros e altamente disponíveis para oferecer um sistema de gerenciamento de chaves escalado para a nuvem. Usando o AWS KMS, é possível criar chaves gerenciadas pelo cliente e definir as políticas que controlam como elas podem ser usadas. O AWS KMS é compatível com o CloudTrail, o que possibilita a auditoria do uso da chave do KMS para verificar se as chaves gerenciadas pelo cliente estão sendo usadas adequadamente. Você pode usar as chaves gerenciadas com o Amazon Aurora e serviços compatíveis da AWS, como o Amazon S3, Amazon EBS e Amazon Redshift. Para obter uma lista de serviços integrados ao AWS KMS, consulte Integração de serviços da AWS.

Criptografar um cluster de banco de dados do Amazon Aurora

Para criptografar um novo cluster de banco de dados, escolha Enable encryption (Habilitar criptografia) no console. Para obter informações sobre como criar com um cluster de banco de dados, consulte Criar um cluster de bancos de dados do Amazon Aurora.

Se você usar o comando create-db-cluster da AWS CLI para criar um cluster de banco de dados criptografado, defina o parâmetro --storage-encrypted. Se você usar a operação da API CreateDBCluster, defina o parâmetro StorageEncrypted como true.

Ao criar um cluster de banco de dados criptografado, é possível escolher uma chave gerenciada pelo cliente ou a Chave gerenciada pela AWS para que o Amazon Aurora criptografe o seu cluster de banco de dados. Se você não especificar o identificador de chave para uma chave gerenciada pelo cliente, o Amazon Aurora usará a Chave gerenciada pela AWS para o seu novo cluster de banco de dados. O Amazon Aurora cria uma Chave gerenciada pela AWS para o Amazon Aurora para a sua conta da AWS. A sua conta da AWS tem uma Chave gerenciada pela AWS diferente para o Amazon Aurora para cada região da AWS.

Para ter mais informações sobre as chaves do KMS, consulte AWS KMS keys no Guia do desenvolvedor do AWS Key Management Service.

Depois de criar um cluster de banco de dados criptografado, não será possível alterar a chave do KMS usada por esse cluster de banco de dados. Portanto, certifique-se de determinar os requisitos da chave do KMS antes de criar o seu cluster de banco de dados criptografado.

Se você usar o comando AWS CLI da create-db-cluster para criar um cluster de banco de dados criptografado com uma chave gerenciada pelo cliente, defina o parâmetro --kms-key-id para qualquer identificador da chave do KMS. Se você usar a operação CreateDBInstance da API do Amazon RDS, defina o parâmetro KmsKeyId para qualquer identificador de chave do KMS. Para usar uma chave gerenciada pelo cliente em outra conta da AWS, especifique o ARN da chave ou o ARN do alias.

Importante

O Amazon Aurora pode perder o acesso à chave do KMS para um cluster de banco de dados quando você desabilita a chave do KMS. Nesses casos, o cluster de banco de dados criptografado entra brevemente no estado inaccessible-encryption-credentials-recoverable. O cluster de banco de dados permanece nesse estado por sete dias, durante os quais a instância é interrompida. As chamadas de API feitas ao cluster de banco de dados durante esse período podem não ser bem-sucedidas. Para recuperar o cluster de banco de dados, habilite a chave do KMS e reinicie esse cluster. Habilite a chave KMS no AWS Management Console. Reinicie o cluster de banco de dados utilizando o comando start-db-cluster da AWS CLI ou o AWS Management Console.

Se o cluster de banco de dados não for recuperado em até sete dias, ele entrará no estado inaccessible-encryption-credentials do terminal. Nesse estado, o cluster de banco de dados não pode mais ser usado e só é possível restaurá-lo por um backup. É altamente recomendável que você sempre habilite backups para clusters de banco de dados criptografados a fim de evitar a perda de dados criptografados nos bancos de dados.

Durante a criação de um cluster de banco de dados, o Aurora verifica se a entidade principal da chamada tem acesso à chave do KMS e gera uma concessão da chave do KMS, que é usada durante toda a vida útil do cluster de banco de dados. A revogação do acesso da entidade principal da chamada à chave do KMS não afeta um banco de dados em execução. Ao usar chaves do KMS em cenários entre contas, como copiar um snapshot para outra conta, a chave do KMS precisa ser compartilhada com a outra conta. Se você criar um cluster de banco de dados com base no snapshot sem especificar uma chave do KMS diferente, o novo cluster usará a chave do KMS da conta de origem. A revogação do acesso à chave após a criação do cluster de banco de dados não afeta o cluster. No entanto, a desabilitação da chave afeta todos os clusters de banco de dados criptografados com essa chave. Para evitar isso, especifique uma chave diferente durante a operação de cópia do snapshot.

Verificar se a criptografia está habilitada para um cluster de banco de dados

É possível utilizar o AWS Management Console, a AWS CLI ou a API do RDS para verificar se a criptografia em repouso está habilitada para um cluster de banco de dados.

Para verificar se a criptografia em repouso está habilitada para um cluster de banco de dados
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Bancos de dados.

  3. Escolha no nome do cluster de banco de dados que você deseja verificar para mostrar os detalhes.

  4. Escolha a guia Configuration (Configuração) e verifique o valor Encryption (Criptografia).

    Ele mostra Enabled (Habilitado) ou Not enabled (Não habilitado).

    Verificar a criptografia em repouso de um cluster de banco de dados

Para verificar se a criptografia em repouso está habilitada para um cluster de banco de dados usando a AWS CLI, chame o comando describe-db-clusters comando com a seguinte opção:

  • --db-cluster-identifier: o nome do cluster de banco de dados.

O exemplo a seguir utiliza uma consulta para retornar TRUE ou FALSE referente à criptografia em repouso para o cluster de banco de dados mydb.

exemplo
aws rds describe-db-clusters --db-cluster-identifier mydb --query "*[].{StorageEncrypted:StorageEncrypted}" --output text

Para verificar se a criptografia em repouso está habilitada para um cluster de banco de dados usando a API do Amazon RDS, chame a operação DescribeDBClusters com este parâmetro:

  • DBClusterIdentifier: o nome do cluster de banco de dados.

Disponibilidade da criptografia do Amazon Aurora

No momento, a criptografia do Amazon Aurora está disponível para todos os mecanismos de banco de dados e tipos de armazenamento.

nota

A criptografia do Amazon Aurora não está disponível para a classe de instância de banco de dados db.t2.micro.

Criptografia em trânsito

A AWS fornece conectividade privada e segura entre instâncias de banco de dados de todos os tipos. Além disso, alguns tipos de instância usam os recursos de descarregamento do hardware subjacente Nitro System para criptografar automaticamente o tráfego em trânsito entre instâncias. Essa criptografia usa algoritmos de criptografia autenticada com dados associados (AEAD) com criptografia de 256 bits. Não há impacto na performance da rede. Para oferecer suporte a essa criptografia adicional de tráfego em trânsito entre instâncias, os seguintes requisitos devem ser atendidos:

  • As instâncias utilizam os seguintes tipos de instância:

    • Uso geral: M6i, M6id, M6in, M6idn, M7g

    • Otimizadas para memória: R6i, R6id, R6in, R6idn, R7g, X2idn, X2iedn, X2iezn

  • As instâncias estão na mesma Região da AWS.

  • As instâncias estão na mesma VPC ou VPCs emparelhadas, e o tráfego não passa por um dispositivo ou serviço de rede virtual, como um balanceador de carga ou um gateway de trânsito.

Para ter mais informações sobre as instâncias do EC2 subjacentes e a criptografia associada, consulte Encryption in transit no Guia do usuário do Amazon EC2.

Limitações dos clusters de banco de dados criptografados do Amazon Aurora

As seguintes limitações existem para clusters criptografados de banco de dados do Amazon Aurora:

  • Não é possível desativar a criptografia em um cluster de banco de dados criptografado.

  • Não é possível criar um snapshot criptografado de um cluster de banco de dados não criptografado.

  • Um snapshot de uma instância de banco de dados criptografo deve ser criptografado usando a mesma chave do KMS que a instância de banco de dados.

  • Não é possível converter um cluster de banco de dados não criptografado em um criptografado. Entretanto, é possível restaurar um snapshot não criptografado em um cluster de banco de dados criptografado do Aurora. Para fazê-lo, especifique uma chave do KMS ao fazer uma restauração no snapshot não criptografado.

  • Não é possível criar uma réplica criptografada do Aurora para um cluster de banco de dados não criptografado do Aurora. Não é possível criar uma réplica do Aurora não criptografada a partir de um cluster de banco de dados do criptografado do Aurora.

  • Para copiar um snapshot criptografado de uma região da AWS para outra, é necessário especificar a chave do KMS na região da AWS de destino. Isso ocorre porque as chaves do KMS são específicas da região da AWS em que são criadas.

    O snapshot de origem permanece criptografado ao longo do processo de cópia. O Amazon Aurora usa criptografia de envelope para proteger os dados durante o processo de cópia. Para ter mais informações sobre a criptografia de envelope, consulte Criptografia de envelope no Guia do desenvolvedor do AWS Key Management Service.

  • Não é possível descriptografar um cluster de banco de dados criptografado. No entanto, é possível exportar dados de um cluster de banco de dados criptografado e importar os dados para um cluster de banco de dados não criptografado.