

# AWS KMS keyGerenciamento de
<a name="Overview.Encryption.Keys"></a>

 O Amazon RDS integra-se automaticamente ao [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/) para gerenciar chaves. O Amazon RDS usa criptografia envelopada. Para ter mais informações sobre a criptografia de envelope, consulte [Criptografia de envelope](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping) no *Guia do desenvolvedor do AWS Key Management Service*. 

Você pode usar dois tipos de chave do AWS KMS para criptografar instâncias de banco de dados. 
+ Se você quiser o controle total de uma chave do KMS, precisará criar uma *chave gerenciada pelo cliente*. Para obter mais informações sobre chaves gerenciadas pelo cliente, consulte [Chaves gerenciadas pelo cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) no *Guia do desenvolvedor do AWS Key Management Service*. 
+  *Chaves gerenciadas pela AWS* são chaves do KMS em sua conta que são criadas, gerenciadas e usadas em seu nome por um produto da AWS integrado ao AWS KMS. Por padrão, a Chave gerenciada pela AWS do RDS (`aws/rds`) é usada para criptografia. Você não pode gerenciar, nem rotacionar, nem excluir a Chave gerenciada pela AWS do RDS. Para obter mais informações sobre as Chaves gerenciadas pela AWS, consulte [Chaves gerenciadas pela AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) no *Guia do desenvolvedor do AWS Key Management Service*. 

Para gerenciar as chaves do KMS usadas para instâncias de banco de dados criptografadas do Amazon RDS, use o [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/) no console do [AWS KMS](https://console.aws.amazon.com/kms), a AWS CLI ou a API do AWS KMS. Para visualizar logs de auditoria de cada ação realizada com uma chave gerenciada pela AWS ou pelo cliente, use o [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). Para obter mais informações sobre a alternância de chaves, consulte [Alternância de chaves do AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html). 

## Como autorizar o uso de uma chave gerenciada pelo cliente
<a name="Overview.Encryption.Keys.Authorizing"></a>

Quando o RDS utiliza uma chave gerenciada pelo cliente em operações criptográficas, ele atua em nome do usuário que está criando ou alterando o recurso do RDS.

Para criar um recurso do RDS usando uma chave gerenciada pelo cliente, um usuário deve ter permissões para acionar as seguintes operações na chave gerenciada pelo cliente:
+  `kms:CreateGrant` 
+  `kms:DescribeKey` 

Você pode especificar essas permissões em uma política de chaves ou em uma política do IAM, se a política de chaves permitir.

**Importante**  
Ao usar instruções de negação explícitas para todos os recursos (\$1) nas políticas de chave do AWS KMS com serviços gerenciados como o Amazon RDS, você deve especificar uma condição para dar permissão à conta proprietária do recurso. As operações podem falhar sem essa condição, mesmo que a regra de negação inclua exceções para seu usuário do IAM.

**dica**  
Para seguir o princípio de menor privilégio, não permita acesso total a `kms:CreateGrant`. Em vez disso, use a [chave de condição kms:ViaService](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service) para permitir que o usuário crie concessões na chave do KMS somente quando a concessão for criada em nome do usuário por um serviço da AWS.

É possível tornar a política do IAM mais rígida de várias maneiras. Por exemplo, se você quiser permitir que a chave gerenciada pelo cliente seja usada somente para solicitações provenientes do RDS, poderá utilizar a chave de condição kms:ViaService com o valor `rds.<region>.amazonaws.com`. Também é possível usar as chaves ou valores em [Contexto de criptografia do Amazon RDS](#Overview.Encryption.Keys.encryptioncontext) como uma condição para usar a chave gerenciada pelo cliente para criptografia.

Para obter mais informações, consulte [Permitir que usuários de outras contas usem uma chave do KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) no *Guia do desenvolvedor do AWS Key Management Service* e em [Políticas de chave no AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies). 

## Contexto de criptografia do Amazon RDS
<a name="Overview.Encryption.Keys.encryptioncontext"></a>

Quando o RDS usa sua chave do KMS ou quando o Amazon EBS usa a chave do KMS em nome do RDS, o serviço especifica um [contexto de criptografia](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context). O contexto de criptografia é [dados autenticados adicionados](https://docs.aws.amazon.com/crypto/latest/userguide/cryptography-concepts.html#term-aad) (AAD) que o AWS KMS usa para garantir a integridade dos dados. Quando um contexto de criptografia é especificado para uma operação de criptografia, o serviço deve especificar esse mesmo contexto para a operação de descriptografia. Caso contrário, ocorrerá uma falha na descriptografia. O contexto de criptografia é também gravado nos logs do [AWS CloudTrail](https://aws.amazon.com/cloudtrail/) para ajudar você a compreender por que uma determinada chave do KMS foi usada. Os logs do CloudTrail podem conter muitas entradas que descrevem o uso de uma chave do KMS, mas o contexto de criptografia em cada entrada de log pode ajudar a determinar o motivo desse uso específico.

No mínimo, o Amazon RDS sempre usa o ID da instância de banco de dados para o contexto de criptografia, como no seguinte exemplo em formato JSON:

```
{ "aws:rds:db-id": "db-CQYSMDPBRZ7BPMH7Y3RTDG5QY" }
```

Esse contexto de criptografia pode ajudar a identificar para qual instância de banco de dados a chave do KMS foi usada.

Quando a chave do KMS é usada em determinada instância de banco de dados e em um volume do Amazon EBS específico, o ID da instância de banco de dados e o ID do volume do Amazon EBS são usados no contexto de criptografia, como no seguinte exemplo em formato JSON:

```
{
  "aws:rds:db-id": "db-BRG7VYS3SVIFQW7234EJQOM5RQ",
  "aws:ebs:id": "vol-ad8c6542"
}
```