Criptografar recursos do Amazon RDS - Amazon Relational Database Service

Criptografar recursos do Amazon RDS

O Amazon RDS pode criptografar instânciasde banco de dados do Amazon RDS. Os dados que são criptografados em repouso incluem o armazenamento subjacente para instâncias de banco de dados, seus backups automatizados, réplicas de leitura e snapshots.

Os clusters de de banco de dados Amazon RDS usam o algoritmo de criptografia AES-256 padrão do setor para criptografar seus dados no servidor que hospeda os clusters de de banco de dados Amazon RDS. Após a criptografia dos seus dados, o Amazon RDS 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 instâncias, 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 RDS

As instâncias de banco de dados criptografadas do Amazon RDS 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 RDS para aumentar a proteção de dados nas aplicações implantadas na nuvem e cumprir os requisitos de conformidade para criptografia em repouso.

Em uma instância de banco de dados criptografada do Amazon RDS, todos os logs, backups e snapshots são criptografados. O Amazon RDS usa uma AWS KMS key 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. 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.

Uma réplica de leitura de uma instância criptografada do Amazon RDS deve ser criptografada usando a mesma chave do KMS que a instância do banco de dados primário quando ambas estiverem na mesma região da AWS. Se a instância do banco de dados primário e a réplica de leitura estiverem em regiões da AWS distintas, criptografe a réplica de leitura usando a chave do KMS daquela região da AWS.

É 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 os seus recursos do Amazon RDS, 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.

O Amazon RDS também oferece suporte para criptografar uma instância de banco de dados Oracle ou SQL Server com o Transparent Data Encryption (TDE). O TDE pode ser usado com a criptografia do RDS em repouso, embora o uso do TDE e da criptografia do RDS em repouso simultaneamente possa afetar ligeiramente a performance de seu banco de dados. Você deve gerenciar diferentes chaves para cada método de criptografia. Para ter mais informações sobre o TDE, consulte Oracle Transparent Data Encryption ou Suporte para criptografia de dados transparente no SQL Server.

Criptografar uma instância de banco de dados

Para criptografar uma nova instância de banco de dados, escolha Enable encryption (Habilitar criptografia) no console do Amazon RDS. Para obter informações sobre como criar uma instância de banco de dados, consulte Criar uma instância de banco de dados do Amazon RDS.

Se você usar o comando create-db-instance da AWS CLI para criar uma instância de banco de dados criptografada, defina o parâmetro --storage-encrypted. Se você usar a operação da API CreateDBInstance, defina o parâmetro StorageEncrypted como true.

Ao criar uma instância de banco de dados criptografada, você pode escolher uma chave gerenciada pelo cliente ou a Chave gerenciada pela AWS para que o Amazon RDS criptografe a sua instância de banco de dados. Se você não especificar o identificador de chave para uma chave gerenciada pelo cliente, o Amazon RDS usará a Chave gerenciada pela AWS para a sua nova instância de banco de dados. O Amazon RDS cria uma Chave gerenciada pela AWS para o Amazon RDS para sua conta da AWS. A sua conta da AWS tem uma Chave gerenciada pela AWS diferente para o Amazon RDS 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 uma instância de banco de dados criptografada, não será possível alterar a chave do KMS usada por essa instância de banco de dados. Portanto, determine os requisitos da chave do KMS antes de criar a instância de banco de dados criptografada.

Se você usar o comando AWS CLI da create-db-instance para criar uma instância de banco de dados criptografada com uma chave gerenciada pelo cliente, defina o parâmetro --kms-key-id para qualquer identificador de 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 RDS pode perder o acesso à chave do KMS para uma instância de banco de dados. Por exemplo, o RDS perde o acesso quando a chave do KMS não está habilitada ou quando o acesso do RDS a uma chave do KMS é revogado. Nesses casos, a instância de banco de dados criptografada entra no estado inaccessible-encryption-credentials-recoverable. A instância de banco de dados permanece nesse estado por sete dias. Quando você inicia a instância de banco de dados durante esse período, ela verifica se a chave do KMS está ativa e, se estiver, recupera a instância de banco de dados. Reinicie a instância de banco de dados utilizando o comando start-db-instance da AWS CLI ou o AWS Management Console.

Se a instância de banco de dados não for recuperada, ela entrará no estado inaccessible-encryption-credentials do terminal. Nesse caso, você pode restaurar somente a instância de banco de dados de um backup. Recomendamos que você sempre habilite backups para instâncias de banco de dados criptografadas a fim de se proteger contra a perda de dados criptografados nos bancos de dados.

Determinar se a criptografia está habilitada para uma instância 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 uma instância de banco de dados.

Para verificar se a criptografia em repouso está habilitada para uma instância 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 da instância 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) abaixo de Storage (Armazenamento).

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

    
                                    Verificar a criptografia em repouso de uma instância de banco de dados

Para verificar se a criptografia em repouso está habilitada para uma instância de banco de dados usando a AWS CLI, chame o comando describe-db-instances comando com a seguinte opção:

  • --db-instance-identifier: o nome da instância de banco de dados.

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

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

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

  • DBInstanceIdentifier: o nome da instância de banco de dados.

Disponibilidade da criptografia do Amazon RDS

No momento, a criptografia do Amazon RDS está disponível para todos os mecanismos de banco de dados e tipos de armazenamento, exceto o SQL Server Express Edition.

A criptografia do Amazon RDS está disponível para a maioria das classes de instância de banco de dados. A tabela a seguir lista as classes de instância de bancos de dados que não são compatíveis com a criptografia do Amazon RDS:

Tipo de instância Classe de instância

Uso geral (M1)

db.m1.small

db.m1.medium

db.m1.large

db.m1.xlarge

Otimizado para memória (M2)

db.m2.xlarge

db.m2.2xlarge

db.m2.4xlarge

Expansível (T2)

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.

Limitações das instâncias de banco de dados criptografados do Amazon RDS

As seguintes limitações existem para instâncias criptografadas de banco de dados do Amazon RDS:

  • Você só pode criptografar uma instância de banco de dados do Amazon RDS ao criá-la, e não após a criação.

    Entretanto, como é possível criptografar uma cópia de um snapshot não criptografado, é possível efetivamente adicionar criptografia a uma instância de banco de dados não criptografada. Ou seja, é possível criar um snapshot da sua instância de banco de dados e depois criar uma cópia criptografada desse snapshot. Em seguida, você pode restaurar uma instância de banco de dados a partir do snapshot criptografado, logo, você terá uma cópia criptografada da sua instância de banco de dados original. Para ter mais informações, consulte Copiar um snapshot de banco de dados.

  • Não é possível desativar a criptografia em uma instância de banco de dados criptografada.

  • Não é possível criar um snapshot criptografado de uma instância de banco de dados não criptografada.

  • Um snapshot de um cluster de banco de dados criptografo deve ser criptografado usando a mesma chave do KMS que o cluster de banco de dados.

  • Não é possível ter uma réplica de leitura criptografada de uma instância de banco de dados não criptografada nem uma réplica de leitura não criptografada de uma instância de banco de dados criptografada.

  • As réplicas de leitura criptografadas deverão ser criptografadas com a mesma chave do KMS que a instância de banco de dados de origem quando as duas estiverem na mesma região da AWS.

  • Não é possível restaurar um backup ou um snapshot não criptografado em uma instância de banco de dados criptografada.

  • 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 RDS 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 uma instância de banco de dados criptografada. No entanto, é possível exportar dados de uma instância de banco de dados criptografada e importar os dados para uma instância de banco de dados não criptografada.