Criptografia de dados para o Amazon Aurora DSQL
O Amazon Aurora DSQL criptografa todos os dados do usuário em repouso. Para maior segurança, essa criptografia usa o AWS Key Management Service (AWS KMS). Essa funcionalidade ajuda a reduzir a carga e complexidade operacionais necessárias para proteger dados confidenciais. A criptografia em repouso ajuda você a:
-
Reduzir a carga operacional necessária para proteger dados sensíveis.
-
Criar aplicações com exigências de segurança que atendam a rigorosos requisitos regulatórios e de conformidade de criptografia.
-
Sempre proteger seus dados em um cluster criptografado para adicionar uma camada extra de proteção de dados.
-
Cumprir políticas organizacionais, regulamentos do setor ou governamentais e requisitos de conformidade.
Com o Aurora DSQL, é possível criar aplicações com exigências de segurança que atendam a rigorosos requisitos regulatórios e de conformidade de criptografia. As seções a seguir explicam como configurar a criptografia para bancos de dados Aurora DSQL novos e existentes e gerenciar suas chaves de criptografia.
Tipos de chave do KMS para o Aurora DSQL
O Aurora DSQL se integra ao AWS KMS para gerenciar as chaves de criptografia dos seus clusters. Para saber mais sobre tipos e estados de chave, consulte AWS Key Management Service concepts no Guia do desenvolvedor do AWS Key Management Service. Ao criar um cluster, você pode escolher entre os seguintes tipos de chave do KMS para criptografá-lo:
- Chave pertencente à AWS
-
Tipo de criptografia padrão. A chave pertence ao Aurora DSQL e não há custo adicional para você. O Amazon Aurora DSQL descriptografa de forma transparente os dados do cluster quando você acessa um cluster criptografado. Não é necessário alterar o código ou as aplicações para usar ou gerenciar clusters criptografados, e todas as consultas do Aurora DSQL funcionam com seus dados criptografados.
- Chave gerenciada pelo cliente
-
Você pode criar, deter e gerenciar a chave em sua Conta da AWS. Você tem controle total sobre a chave do KMS. Há cobranças do AWS KMS para isso.
A criptografia em repouso usando a Chave pertencente à AWS é disponibilizada sem custo adicional. No entanto, as cobranças do AWS KMS se aplicam a chaves gerenciadas pelo cliente. Para obter mais informações, consulte a página de Definição de preço doAWS KMS
É possível alternar entre esses tipos de chave a qualquer momento. Para ter mais informações sobre tipos de chave, consulte Customer managed keys e Chaves pertencentes à AWS no Guia do desenvolvedor do AWS Key Management Service.
nota
A criptografia em repouso do Aurora DSQL está disponível em todas as regiões da AWS em que o Aurora DSQL está disponível.
Criptografia em repouso no Aurora DSQL
O Amazon Aurora DSQL usa o Advanced Encryption Standard de 256 bits (AES-256) para criptografar seus dados em repouso. Essa criptografia ajuda a proteger seus dados contra acesso não autorizado ao armazenamento subjacente. O AWS KMS gerencia as chaves de criptografia dos clusters. Você pode usar Chaves pertencentes à AWS padrão ou optar por usar Chaves gerenciadas pelo cliente do AWS KMS. Para saber mais sobre como especificar e gerenciar chaves para clusters do Aurora DSQL, consulte Criar um cluster criptografado do Aurora DSQL e Remover ou atualizar uma chave para um cluster do Aurora DSQL.
Chaves pertencentes à AWS
O Aurora DSQL criptografa todos os clusters por padrão com Chaves pertencentes à AWS. Essas chaves são de uso gratuito e são alternadas anualmente para proteger os recursos da sua conta. Você não precisa visualizar, gerenciar, usar ou auditar essas chaves; portanto, nenhuma ação é necessária proteger os dados. Para obter mais informações sobre as Chaves pertencentes à AWS, consulte Chaves pertencentes à AWS no Guia do desenvolvedor do AWS Key Management Service.
Chaves gerenciadas pelo cliente
É possível criar, deter e gerenciar as chaves gerenciadas pelo cliente em sua Conta da AWS. Você tem controle total sobre essas chaves do KMS, inclusive sobre as respectivas políticas, o material de criptografia, as tags e os aliases. Para ter mais informações sobre como gerenciar permissões, consulte Customer managed keys no Guia do desenvolvedor do AWS Key Management Service.
Quando você especifica uma chave gerenciada pelo cliente para criptografia em nível de cluster, o Aurora DSQL criptografa o cluster e todos os respectivos dados regionais com essa chave. Para evitar a perda de dados e manter o acesso ao cluster, o Aurora DSQL precisa acessar sua chave de criptografia. Se você desabilitar a chave gerenciada pelo cliente, programar a chave para exclusão ou tiver uma política que restrinja seu acesso ao serviço, o status de criptografia do cluster será alterado para KMS_KEY_INACCESSIBLE
. Quando o Aurora DSQL não consegue acessar a chave, os usuários não conseguem se conectar ao cluster, o status da criptografia do cluster muda para KMS_KEY_INACCESSIBLE
e o serviço perde acesso aos dados do cluster.
Com relação a clusters multirregionais, os clientes podem configurar a chave de criptografia do AWS KMS de cada região separadamente, e cada cluster regional usa sua própria chave de criptografia em nível de cluster. Se o Aurora DSQL não conseguir acessar a chave de criptografia de um cluster emparelhado multirregional, o status desse cluster se tornará KMS_KEY_INACCESSIBLE
e ele ficará indisponível para operações de leitura e gravação. Outros clusters emparelhados prosseguem com suas operações normais.
nota
Se o Aurora DSQL não conseguir acessar a chave gerenciada pelo cliente, o status de criptografia do cluster mudará para KMS_KEY_INACCESSIBLE
. Após a restauração do acesso à chave, o serviço detectará automaticamente a restauração em 15 minutos. Para ter mais informações, consulte “Cluster idling”.
Para clusters multirregionais, se não houver acesso à chave por um longo período, o tempo de restauração do cluster dependerá da quantidade de dados gravados enquanto a chave estava inacessível.
Usar chaves do AWS KMS e de dados com o Aurora DSQL
O recurso de criptografia em repouso do Aurora DSQL usa uma AWS KMS key e uma hierarquia de chaves de dados para proteger os dados do cluster.
Recomendamos que você planeje uma estratégia de criptografia antes de implementar seu cluster no Aurora DSQL. Se você armazenar dados sensíveis ou confidenciais no Aurora DSQL, considere incluir a criptografia do lado do cliente em seu plano. Dessa forma, você poderá criptografar os dados o mais próximo possível de sua origem e garantir sua proteção durante todo o ciclo de vida.
Tópicos
Usar uma AWS KMS key com o Aurora DSQL
A criptografia em repouso protege o cluster do Aurora DSQL usando uma AWS KMS key. Por padrão, o Aurora DSQL usa uma Chave pertencente à AWS, uma chave de criptografia multilocatário que é criada e gerenciada em uma conta de serviço do Aurora DSQL. Mas você pode criptografar os clusters do Aurora DSQL com uma chave gerenciada pelo cliente em sua Conta da AWS. Você pode selecionar uma chave do KMS diferente para cada cluster, mesmo que ele participe de uma configuração multirregional.
Você seleciona a chave do KMS para um cluster ao criar ou atualizar esse cluster. É possível alterar a chave do KMS de um cluster a qualquer momento, seja no console do Aurora DSQL ou usando a operação UpdateCluster
. O processo de alternar chaves não exige tempo de inatividade nem degradação.
Importante
O Aurora DSQL aceita apenas chaves simétricas do KMS. Não é possível usar uma chave assimétrica do KMS para criptografar clusters do Aurora DSQL.
Uma chave gerenciada pelo cliente oferece os benefícios a seguir.
-
Você cria e gerencia a chave do KMS, incluindo a configuração de políticas de chave e políticas do IAM para controlar o acesso a ela. Você pode habilitar e desabilitar a chave do KMS, habilitar e desabilitar a alternância automática de chaves e excluir a chave do KMS quando ela não estiver mais em uso.
-
Você pode usar uma chave gerenciada pelo cliente com material de chave importado ou uma chave gerenciada pelo cliente em um armazenamento de chaves personalizado que você possui e gerencia.
-
Você pode auditar a criptografia e a descriptografia do cluster do Aurora DSQL examinando as chamadas de API do Aurora DSQL para o AWS KMS nos logs do AWS CloudTrail.
No entanto, a Chave pertencente à AWS é gratuita e seu uso não é computado nas cotas de solicitações ou de recursos do AWS KMS. As chaves gerenciadas pelo cliente geram cobrança para cada chamada de API, e as cotas do AWS KMS são aplicáveis a essas chaves.
Usar chaves de cluster com o Aurora DSQL
O Aurora DSQL usa o AWS KMS key para o cluster gerar e criptografar uma chave de dados exclusiva para o próprio cluster, conhecida como chave de cluster.
A chave de cluster é usada como uma chave de criptografia de chaves. O Aurora DSQL usa essa chave de cluster para proteger as chaves de criptografia de dados usadas para criptografar os dados do cluster. O Autora DSQL gera uma chave de criptografia de dados exclusiva para cada estrutura subjacente em um cluster, mas vários itens de cluster podem ser protegidos com a mesma chave de criptografia de dados.
Para descriptografar a chave do cluster, o Aurora DSQL envia uma solicitação ao AWS KMS quando você acessa um cluster criptografado pela primeira vez. Para manter o cluster disponível, o Aurora DSQL verifica periodicamente o acesso de descriptografia à chave do KMS, mesmo quando você não esteja acessando ativamente o cluster.
O Aurora DSQL armazena e usa a chave do cluster e as chaves de criptografia de dados fora do AWS KMS. Ele protege todas as chaves com a criptografia Advanced Encryption Standard (AES) e chaves de criptografia de 256 bits. Em seguida, armazena as chaves criptografadas com os dados criptografados para que estejam disponíveis para descriptografar os dados do cluster sob demanda.
Se você alterar a chave do KMS do cluster, o Aurora DSQL criptografará novamente a chave do cluster existente com a nova chave do KMS.
Armazenamento de chaves de cluster em cache
Para evitar chamar o AWS KMS para cada operação do Aurora DSQL, o Aurora DSQL armazena as chaves de cluster em texto simples para cada chamador na memória. Se o Aurora DSQL receber uma solicitação para a chave de cluster armazenada em cache após 15 minutos de inatividade, ele enviará uma nova solicitação ao AWS KMS para descriptografar a chave de cluster. Essa chamada capturará todas as alterações feitas nas políticas de acesso da AWS KMS key no AWS KMS ou no AWS Identity and Access Management (IAM) desde a última solicitação para descriptografar a chave de cluster.
Autorizar o uso da AWS KMS key para o Aurora DSQL
Se você usar uma chave gerenciada pelo cliente em sua conta para proteger o cluster do Aurora DSQL, as políticas nessa chave deverão conceder ao Aurora DSQL permissão para usá-la em seu nome.
Você tem controle total sobre as políticas em uma chave gerenciada pelo cliente. O Aurora DSQL não precisa de autorização adicional para usar a Chave pertencente à AWS padrão para proteger os clusters do Aurora DSQL na sua Conta da AWS.
Política de chaves para uma chave gerenciada pelo cliente
Quando uma chave gerenciada pelo cliente é selecionada para proteger um cluster do Aurora DSQL, o Aurora DSQL precisa de permissão para usar a AWS KMS key em nome da entidade principal que faz a seleção. Essa entidade principal, que pode ser um usuário ou um perfil, deve ter as permissões na AWS KMS key que o Aurora DSQL exige. É possível fornecer essas permissões em uma política de chave ou em uma política do IAM.
O Aurora DSQL exige, no mínimo, as seguintes permissões em uma chave gerenciada pelo cliente:
-
kms:Encrypt
-
kms:Decrypt
-
kms:ReEncrypt*
(para kms:ReEncryptFrom and kms:ReEncryptTo) -
kms:GenerateDataKey
-
kms:DescribeKey
Por exemplo, a política de chaves de exemplo a seguir fornece somente as permissões necessárias. A política tem os seguintes efeitos:
-
Permite que o Aurora DSQL use a AWS KMS key em operações criptográficas, mas somente quando está atuando em nome de entidades principais na conta que tem permissão para usar o Aurora DSQL. Se as entidades principais especificadas na declaração de política não tiverem permissão para usar o Aurora DSQL, a chamada falhará, mesmo se vier do serviço do Aurora DSQL.
-
A chave de condição
kms:ViaService
concede as permissões somente quando a solicitação vem do Aurora DSQL em nome das entidades principais listadas na declaração de política. Essas entidades principais não podem chamar essas operações diretamente. -
Concede aos administradores da AWS KMS key (usuários que podem assumir o perfil
db-team
) acesso somente leitura à AWS KMS key.
Antes de usar uma política de chaves de exemplo, substitua o exemplo de entidades principais por entidades principais reais da sua conta da Conta da AWS.
{ "Sid": "Enable dsql IAM User Permissions", "Effect": "Allow", "Principal": { "Service": "dsql.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:dsql:ClusterId": "w4abucpbwuxx", "aws:SourceArn": "arn:aws:dsql:us-east-2:111122223333:cluster/w4abucpbwuxx" } } }, { "Sid": "Enable dsql IAM User Describe Permissions", "Effect": "Allow", "Principal": { "Service": "dsql.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:dsql:us-east-2:111122223333:cluster/w4abucpbwuxx" } } }
Contexto de criptografia do Aurora DSQL
Um contexto de criptografia é um conjunto de pares de chave-valor que contêm dados arbitrários não secretos. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados, o AWS KMS vincula de forma criptográfica o contexto de criptografia aos dados criptografados. Para descriptografar os dados, você deve passar o mesmo contexto de criptografia.
O Aurora DSQL usa o mesmo contexto de criptografia em todas as operações de criptografia do AWS KMS. Se você usar uma chave gerenciada pelo cliente para proteger seu cluster do Aurora DSQL, poderá usar o contexto de criptografia para identificar o uso da AWS KMS key em registros e logs de auditoria. Ele também é exibido em texto simples em logs, como no AWS CloudTrail.
O contexto de criptografia também pode ser usado como uma condição para autorização em políticas.
Nas solicitações ao AWS KMS, o Aurora DSQL usa um contexto de criptografia com dois pares de chave-valor.
"encryptionContext": { "aws:dsql:ClusterId": "w4abucpbwuxx" },
O par de chave-valor identifica o cluster que o Aurora DSQL está criptografando. A chave é aws:dsql:ClusterId
. O valor é o identificador do cluster.
Monitorar a interação do Aurora DSQL com o AWS KMS
Se você usa uma chave gerenciada pelo cliente para proteger clusters do Aurora DSQL, é possível usar logs do AWS CloudTrail para rastrear as solicitações que o Aurora DSQL envia ao AWS KMS em seu nome.
Expanda as seções a seguir para saber como o Aurora DSQL usa as operações GenerateDataKey
e Decrypt
do AWS KMS.
Quando você habilita a criptografia em repouso em um cluster, o Aurora DSQL cria uma chave de cluster exclusiva. Ele envia uma solicitação GenerateDataKey
ao AWS KMS que especifica a AWS KMS key para o cluster.
O evento que registra a operação GenerateDataKey
é semelhante ao evento de exemplo a seguir. O usuário é a conta de serviço do Aurora DSQL. Os parâmetros incluem o nome do recurso da Amazon (ARN) da AWS KMS key, um especificador de chave que requer uma chave de 256 bits e o contexto de criptografia que identifica o cluster.
{ "eventVersion": "1.11", "userIdentity": { "type": "AWSService", "invokedBy": "dsql.amazonaws.com" }, "eventTime": "2025-05-16T18:41:24Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "dsql.amazonaws.com", "userAgent": "dsql.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dsql:ClusterId": "w4abucpbwuxx" }, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-east-1:982127530226:key/8b60dd9f-2ff8-4b1f-8a9c-bf570cbfdb5e" }, "responseElements": null, "requestID": "2da2dc32-d3f4-4d6c-8a41-aff27cd9a733", "eventID": "426df0a6-ba56-3244-9337-438411f826f4", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:982127530226:key/8b60dd9f-2ff8-4b1f-8a9c-bf570cbfdb5e" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "sharedEventID": "f88e0dd8-6057-4ce0-b77d-800448426d4e", "vpcEndpointId": "AWS Internal", "vpcEndpointAccountId": "vpce-1a2b3c4d5e6f1a2b3", "eventCategory": "Management" }
Quando você acessa um cluster criptografado do Aurora DSQL, o Aurora DSQL precisa descriptografar a chave de cluster para que possa descriptografar as chaves abaixo dela na hierarquia. Em seguida, ele descriptografa os dados no cluster. Para descriptografar a chave do cluster, o Aurora DSQL envia uma solicitação Decrypt
ao AWS KMS que especifica a AWS KMS key para o cluster.
O evento que registra a operação Decrypt
é semelhante ao evento de exemplo a seguir. O usuário é a entidade principal na sua Conta da AWS que está acessando o cluster. Os parâmetros incluem a chave de cluster criptografada (como um blob de texto cifrado) e o contexto de criptografia que identifica cluster. O AWS KMS extrai o ID da AWS KMS key do texto cifrado.
{ "eventVersion": "1.05", "userIdentity": { "type": "AWSService", "invokedBy": "dsql.amazonaws.com" }, "eventTime": "2018-02-14T16:42:39Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "dsql.amazonaws.com", "userAgent": "dsql.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionContext": { "aws:dsql:ClusterId": "w4abucpbwuxx" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "11cab293-11a6-11e8-8386-13160d3e5db5", "eventID": "b7d16574-e887-4b5b-a064-bf92f8ec9ad3", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "AWS Internal", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "sharedEventID": "d99f2dc5-b576-45b6-aa1d-3a3822edbeeb", "vpcEndpointId": "AWS Internal", "vpcEndpointAccountId": "vpce-1a2b3c4d5e6f1a2b3", "eventCategory": "Management" }
Criar um cluster criptografado do Aurora DSQL
Todos os clusters do Aurora DSQL são criptografados em repouso. Por padrão, eles usam uma Chave pertencente à AWS sem custo, ou você pode especificar uma chave personalizada do AWS KMS. Siga estas etapas para criar o cluster criptografado por meio do AWS Management Console ou da AWS CLI.
Remover ou atualizar uma chave para um cluster do Aurora DSQL
Você pode usar o AWS Management Console ou a AWS CLI para atualizar ou remover as chaves de criptografia nos clusters existentes no Amazon Aurora DSQL. Se você remover uma chave sem a substituir, o Aurora DSQL usará a Chave pertencente à AWS padrão. Siga estas etapas para atualizar as chaves de criptografia de um cluster existente por meio do console do Aurora DSQL ou da AWS CLI.
nota
Se você optar por deter e gerenciar uma chave própria, defina apropriadamente a política de chave do KMS. Para obter mais informações e exemplos, consulte Política de chaves para uma chave gerenciada pelo cliente.
Considerações sobre criptografia com o Aurora DSQL
-
O Aurora DSQL criptografa todos os dados do cluster em repouso. Não é possível desabilitar essa criptografia ou criptografar somente alguns itens em um cluster.
-
O AWS Backup criptografa backups e quaisquer clusters restaurados por meio desses backups. É possível criptografar seus dados de backup no AWS Backup usando a chave de propriedade da AWS ou uma chave gerenciada pelo cliente.
-
Os seguintes estados de proteção de dados estão habilitados para o Aurora DSQL:
-
Dados em repouso: o Aurora DSQL criptografa todos os dados estáticos na mídia de armazenamento persistente.
-
Dados em trânsito: o Aurora DSQL criptografa todas as comunicações usando Transport Layer Security (TLS) por padrão.
-
-
Ao fazer a transição para uma chave diferente, recomendamos que você mantenha a chave original habilitada até que a transição seja concluída. A AWS precisa da chave original para descriptografar os dados antes de criptografar seus dados com a nova chave. O processo estará concluído quando o
encryptionStatus
do cluster forENABLED
e você vir okmsKeyArn
da nova chave gerenciada pelo cliente. -
Ao desabilitar a chave gerenciada pelo cliente ou revogar o acesso do Aurora DSQL para usá-la, o cluster entra no estado
IDLE
. -
O AWS Management Console e a API do Amazon Aurora DSQL usam termos diferentes para tipos de criptografia:
-
Console da AWS: no console, você verá
KMS
ao usar uma chave gerenciada pelo cliente eDEFAULT
ao usar uma Chave pertencente à AWS. -
API: a API do Amazon Aurora DSQL usa
CUSTOMER_MANAGED_KMS_KEY
para chaves gerenciadas pelo cliente eAWS_OWNED_KMS_KEY
para Chaves pertencentes à AWS.
-
-
Se você não especificar uma chave de criptografia durante a criação do cluster, o Aurora DSQL criptografará automaticamente seus dados usando a Chave pertencente à AWS.
-
É possível alternar entre uma Chave pertencente à AWS e uma chave gerenciada pelo cliente a qualquer momento. Faça essa alteração usando o AWS Management Console, a AWS CLI ou a API do Amazon Aurora DSQL.