

# Proteção de dados usando criptografia
<a name="Encryption"></a>

É possível habilitar a criptografia para recursos do banco de dados. Também é possível criptografar conexões com instâncias de banco de dados.

**Topics**
+ [Criptografar recursos do Amazon RDS](Overview.Encryption.md)
+ [AWS KMS keyGerenciamento de](Overview.Encryption.Keys.md)
+ [Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados](UsingWithRDS.SSL.md)
+ [Alternar o certificado SSL/TLS](UsingWithRDS.SSL-certificate-rotation.md)

# Criptografar recursos do Amazon RDS
<a name="Overview.Encryption"></a>

O Amazon RDS pode criptografar suas instâncias de banco de dados do Amazon RDS. Os dados criptografados em repouso incluem o armazenamento subjacente para instâncias de banco de dados e os respectivos logs, bem como backups automatizados, réplicas de leitura e snapshots.

As instâncias de banco de dados criptografadas do Amazon RDS usam o algoritmo de criptografia AES-256 padrão da indústria para criptografar os dados no servidor que hospeda as instâncias do Amazon RDS DB.

Após a criptografia dos dados, o Amazon RDS lida com a autenticação do acesso e a decodificação dos dados de forma transparente com um impacto mínimo sobre o desempenho. 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.

**Topics**
+ [Visão geral da criptografia de recursos do Amazon RDS](#Overview.Encryption.Overview)
+ [Criptografar uma instância de banco de dados](#Overview.Encryption.Enabling)
+ [Determinar se a criptografia está habilitada para uma instância de banco de dados](#Overview.Encryption.Determining)
+ [Disponibilidade da criptografia do Amazon RDS](#Overview.Encryption.Availability)
+ [Criptografia em trânsito](#Overview.Encryption.InTransit)
+ [Limitações das instâncias de banco de dados criptografados do Amazon RDS](#Overview.Encryption.Limitations)

## Visão geral da criptografia de recursos do Amazon RDS
<a name="Overview.Encryption.Overview"></a>

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. Consulte mais informações sobre a disponibilidade e as limitações da criptografia em [Disponibilidade da criptografia do Amazon RDS](#Overview.Encryption.Availability) e [Limitações das instâncias de banco de dados criptografados do Amazon RDS](#Overview.Encryption.Limitations).

O Amazon RDS usa uma chave do AWS Key Management Service para criptografar esses recursos. O AWS KMS combina hardware e software seguros e altamente disponíveis para fornecer um sistema de gerenciamento de chaves escalado para a nuvem. É possível usar uma Chave gerenciada pela AWS ou criar chaves gerenciadas pelo cliente. 

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 gerenciar as chaves gerenciadas pelo cliente usadas para criptografia e descriptografia de recursos do Amazon RDS, use o [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/). 

Com o AWS KMS, é possível criar chaves gerenciadas pelo cliente e definir as políticas que controlam o uso dessas chaves. O AWS KMS é compatível com o CloudTrail, o que permite auditar o 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](https://aws.amazon.com/kms/features/#AWS_Service_Integration). Algumas considerações sobre o uso de chaves do KMS: 
+ 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ê precisar alterar a chave de criptografia da instância de banco de dados, crie um snapshot manual da instância e habilite a criptografia ao copiar o snapshot. Consulte mais informações neste [artigo do Centro de Conhecimento do re:Post](https://repost.aws/knowledge-center/update-encryption-key-rds).
+ 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.
+ Não é possível compartilhar um snapshot que foi criptografado usando a Chave gerenciada pela AWS da conta da AWS que o compartilhou.
+ 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](Appendix.Oracle.Options.AdvSecurity.md) ou [Suporte para criptografia de dados transparente no SQL Server](Appendix.SQLServer.Options.TDE.md).

**Importante**  
O Amazon RDS perde o acesso à chave do KMS para uma instância de banco de dados quando você desabilita a chave do KMS. Se você perder o acesso a uma chave KMS, a instância de banco de dados criptografada entrará no estado `inaccessible-encryption-credentials-recoverable` duas horas após a detecção nas instâncias em que os backups estão habilitados. A instância de banco de dados permanece nesse estado por sete dias, durante os quais a instância é interrompida. As chamadas de API feitas para a instância de banco de dados durante esse período podem não ser bem-sucedidas. Para recuperar a instância de banco de dados, habilite a chave do KMS e reinicie a instância. Habilite a chave KMS no Console de gerenciamento da AWS, na AWS CLI ou na API do RDS. Reinicie a instância de banco de dados utilizando o comando [start-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/start-db-instance.html) da AWS CLI ou o Console de gerenciamento da AWS.   
O estado `inaccessible-encryption-credentials-recoverable` só se aplica a instâncias de banco de dados que podem ser interrompidas. Esse estado recuperável não se aplica a instâncias que não podem ser interrompidas, como réplicas de leitura e instâncias com réplicas de leitura. Para obter mais informações, consulte [Limitações decorrentes da interrupção de uma instância de banco de dados](USER_StopInstance.md#USER_StopInstance.Limitations).  
Se a instância de banco de dados não for recuperada em até sete dias, ela entrará no estado `inaccessible-encryption-credentials` do terminal. Nesse estado, a instância de banco de dados não pode mais ser usada e só é possível restaurá-la por 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.  
Durante a criação de uma instância de banco de dados, o Amazon RDS 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 da instância 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 uma instância de banco de dados com base no snapshot sem especificar uma chave do KMS diferente, a nova instância usará a chave do KMS da conta de origem. A revogação do acesso à chave após a criação da instância de banco de dados não afeta a instância. No entanto, a desabilitação da chave afeta todas as instâncias de banco de dados criptografadas com essa chave. Para evitar isso, especifique uma chave diferente durante a operação de cópia do snapshot.  
As instâncias de banco de dados com backups desabilitados permanecem disponíveis até que os volumes sejam desanexados do host durante uma modificação ou recuperação da instância. O RDS move as instâncias para o estado `inaccessible-encryption-credentials-recoverable` ou `inaccessible-encryption-credentials`, conforme aplicável.

Para ter mais informações sobre chaves do KMS, consulte [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) no *Guia do desenvolvedor do AWS Key Management Service* e [AWS KMS keyGerenciamento de](Overview.Encryption.Keys.md). 

## Criptografar uma instância de banco de dados
<a name="Overview.Encryption.Enabling"></a>

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](USER_CreateDBInstance.md). 

Se você usar o comando [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 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](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html), defina o parâmetro `StorageEncrypted` como true.



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.

## Determinar se a criptografia está habilitada para uma instância de banco de dados
<a name="Overview.Encryption.Determining"></a>

É possível utilizar o Console de gerenciamento da AWS, 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.

### Console
<a name="Overview.Encryption.Determining.CON"></a>

**Para verificar se a criptografia em repouso está habilitada para uma instância de banco de dados**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

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

1. Escolha no nome da instância de banco de dados que você deseja verificar para mostrar os detalhes.

1. 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\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/encryption-check-db-instance.png)

### AWS CLI
<a name="Overview.Encryption.Determining.CLI"></a>

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](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 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`.

**Example**  

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

### API do RDS
<a name="Overview.Encryption.Determining.API"></a>

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](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) com este parâmetro: 
+ `DBInstanceIdentifier`: o nome da instância de banco de dados.

## Disponibilidade da criptografia do Amazon RDS
<a name="Overview.Encryption.Availability"></a>

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

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 name="Overview.Encryption.InTransit"></a>

**Criptografia na camada física**  
Todos os dados que fluem pelas Regiões da AWS por meio da rede global da AWS são automaticamente criptografados na camada física antes de saírem das instalações seguras da AWS. Todo o tráfego entre AZs é criptografado. Camadas adicionais de criptografia, inclusive as listadas nesta seção, podem oferecer mais proteções.

**Criptografia fornecida pelo emparelhamento da Amazon VPC e do Transit Gateway entre regiões**  
Todo o tráfego entre regiões que usa o emparelhamento da Amazon VPC e do Transit Gateway é automaticamente criptografado em massa ao sair de uma região. Uma camada adicional de criptografia é fornecida automaticamente à camada física para todo tráfego antes que ele saia das instalações seguras da AWS.

**Criptografia entre instâncias**  
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 usam 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
<a name="Overview.Encryption.Limitations"></a>

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 para o Amazon RDS](USER_CopySnapshot.md).
+ Não é possível desativar a criptografia em uma instância de banco de dados criptografada.
+ Também 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](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping) 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.

# 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"
}
```

# Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados
<a name="UsingWithRDS.SSL"></a>

É possível usar o Security Socket Layer (SSL) ou o Transport Layer Security (TLS) na aplicação para criptografar uma conexão com um banco de dados que executa Db2, MariaDB, Microsoft SQL Server, MySQL, Oracle ou PostgreSQL.

As conexões SSL/TLS oferecem uma camada de segurança criptografando dados que se movem entre o cliente e a instância ou o cluster de banco de dados. Opcionalmente, sua conexão SSL/TLS pode realizar a verificação da identidade do servidor validando o certificado do servidor instalado no banco de dados. Para exigir a verificação da identidade do servidor, siga este processo geral:

1. Escolha a **Autoridade de certificação (CA)** que assina o**certificado de servidor de banco de dados** para seu banco de dados. Para ter mais informações sobre autoridades de certificação, consulte [Autoridades certificadoras](#UsingWithRDS.SSL.RegionCertificateAuthorities). 

1. Baixe um pacote de certificados para usar quando você estiver se conectando com o banco de dados. Para baixar um pacote de certificados, consulte [Pacote de certificados por Região da AWS](#UsingWithRDS.SSL.CertificatesAllRegions). 
**nota**  
Todos os certificados somente estão disponíveis para download usando conexões SSL/TLS.

1. Conecte-se ao banco de dados usando o processo do mecanismo de banco de dados para implementar conexões SSL/TLS. Cada mecanismo de banco de dados tem seu próprio processo de implementação do SSL/TLS. Para saber como implementar o SSL/TLS para o banco de dados, siga o link correspondente ao seu mecanismo de banco de dados:
   +  [Usar SSL/TLS com uma instância de banco de dados do Amazon RDS para Db2](Db2.Concepts.SSL.md) 
   +  [Suporte de SSL/TLS para instâncias de banco de dados do MariaDB no Amazon RDS](MariaDB.Concepts.SSLSupport.md) 
   +  [Uso do SSL com uma instância de banco de dados do Microsoft SQL Server](SQLServer.Concepts.General.SSL.Using.md) 
   +  [Suporte do SSL/TLS para instâncias de banco de dados do MySQL no Amazon RDS](MySQL.Concepts.SSLSupport.md) 
   +  [Usar SSL com uma instância de banco de dados Oracle](Oracle.Concepts.SSL.md) 
   +  [Usar o SSL com uma instância de banco de dados PostgreSQL](PostgreSQL.Concepts.General.SSL.md) 

## Autoridades certificadoras
<a name="UsingWithRDS.SSL.RegionCertificateAuthorities"></a>

A **autoridade de certificação (CA**) é o certificado que identifica a CA raiz no início da cadeia de certificados. A CA assina o **certificado do servidor de banco de dados**, que é instalado em cada instância de banco de dados. O certificado do servidor de banco de dados identifica a instância de banco de dados como um servidor confiável.

![\[Visão geral sobre autoridade de certificação\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/certificate-authority-overview.png)


O Amazon RDS fornece as CAs a seguir para assinar o certificado do servidor de banco de dados para um banco de dados.


****  

| Autoridade certificadora (CA) | Descrição | Nome comum (CN) | 
| --- | --- | --- | 
|  rds-ca-rsa2048-g1  |  Utiliza uma autoridade de certificação com algoritmo de chave privada RSA 2048 e algoritmo de assinatura SHA256 na maioria das Regiões da AWS. Nas AWS GovCloud (US) Regions, essa CA utiliza uma autoridade de certificação com algoritmo de chave privada RSA 2048 e algoritmo de assinatura SHA384. Essa CA é compatível com a alternância automática de certificados do servidor.  | Amazon RDS region-identifier Root CA RSA2048 G1 | 
|  rds-ca-rsa4096-g1  |  Utiliza uma autoridade de certificação com algoritmo de chave privada RSA 4096 e algoritmo de assinatura SHA384. Essa CA é compatível com a alternância automática de certificados do servidor.   | Amazon RDS region-identifier Root CA RSA4096 G1 | 
|  rds-ca-ecc384-g1  |  Utiliza uma autoridade de certificação com algoritmo de chave privada ECC 384 e algoritmo de assinatura SHA384. Essa CA é compatível com a alternância automática de certificados do servidor.   | Amazon RDS region-identifier Root CA ECC384 G1 | 

**nota**  
Se você estiver usando a AWS CLI, poderá ver as validades das autoridades de certificação listadas acima usando [describe-certificates](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-certificates.html). 

Esses certificados CA estão incluídos no pacote de certificados regionais e globais. Quando você usa a CA rds-ca-rsa2048-g1, rds-ca-rsa4096-g1 ou rds-ca-ecc384-g1 com um banco de dados, o RDS gerencia o certificado do servidor no banco de dados. O RDS alterna automaticamente o certificado do servidor de banco de dados antes que ele expire. 

### Configurar a CA do banco de dados
<a name="UsingWithRDS.SSL.RegionCertificateAuthorities.Selection"></a>

Você pode definir a CA para um banco de dados ao realizar as seguintes tarefas:
+ Crie uma instância de banco de dados ou um cluster de banco de dados multi-AZ: é possível definir a CA ao criar uma instância ou um cluster de banco de dados. Para obter instruções, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md) ou [Criar um cluster de banco de dados multi-AZ para o Amazon RDS](create-multi-az-db-cluster.md).
+ Modificar uma instância de banco de dados ou um cluster de banco de dados multi-AZ: é possível definir a CA para uma instância ou um cluster de banco de dados modificando-a. Para obter instruções, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md) ou [Modificar um cluster de banco de dados multi-AZ para o Amazon RDS](modify-multi-az-db-cluster.md).

**nota**  
 A CA padrão é definida como rds-ca-rsa2048-g1.  Você pode substituir a CA padrão para sua Conta da AWS usando o comando [modify-certificates](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-certificates.html).

As CAs disponíveis dependem do mecanismo de banco de dados e da versão do mecanismo de banco de dados. Ao usar o Console de gerenciamento da AWS, você pode selecionar a CA usando a configuração **Certificate authority** (Autoridade de certificação), conforme mostrado na imagem a seguir.

![\[Opção de autoridade certificadora\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/certificate-authority.png)


O console mostra apenas as CAs que estão disponíveis para o mecanismo de banco de dados e a versão do mecanismo de banco de dados. Se estiver usando a AWS CLI, você poderá definir a CA para uma instância de banco de dados usando o comando [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) ou [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html). É possível definir a CA para um cluster de banco de dados multi-AZ usando o comando [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) ou [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html). 

Se estiver usando a AWS CLI, você poderá ver as CAs disponíveis para sua conta usando o comando [describe-certificates](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-certificates.html). Esse comando também mostra a data de expiração de cada CA em `ValidTill` na saída. Você pode encontrar as CAs que estão disponíveis para uma versão específica do mecanismo de banco de dados e do mecanismo de banco de dados usando o comando [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html).

O exemplo a seguir mostra as CAs disponíveis para a versão padrão do mecanismo de banco de dados do RDS para PostgreSQL.

```
aws rds describe-db-engine-versions --default-only --engine postgres
```

A saída é semelhante à seguinte. As CAs disponíveis estão listadas em `SupportedCACertificateIdentifiers`. A saída também mostra se a versão do mecanismo de banco de dados é compatível com a alternância do certificado sem reiniciar em `SupportsCertificateRotationWithoutRestart`. 

```
{
    "DBEngineVersions": [
        {
            "Engine": "postgres",
            "MajorEngineVersion": "13",
            "EngineVersion": "13.4",
            "DBParameterGroupFamily": "postgres13",
            "DBEngineDescription": "PostgreSQL",
            "DBEngineVersionDescription": "PostgreSQL 13.4-R1",
            "ValidUpgradeTarget": [],
            "SupportsLogExportsToCloudwatchLogs": false,
            "SupportsReadReplica": true,
            "SupportedFeatureNames": [
                "Lambda"
            ],
            "Status": "available",
            "SupportsParallelQuery": false,
            "SupportsGlobalDatabases": false,
            "SupportsBabelfish": false,
            "SupportsCertificateRotationWithoutRestart": true,
            "SupportedCACertificateIdentifiers": [
                "rds-ca-rsa2048-g1",
                "rds-ca-ecc384-g1",
                "rds-ca-rsa4096-g1"
            ]
        }
    ]
}
```

### Validades do certificado do servidor de banco de dados
<a name="UsingWithRDS.SSL.RegionCertificateAuthorities.DBServerCert"></a>

A validade do certificado do servidor de banco de dados depende do mecanismo de banco de dados e da versão do respectivo mecanismo. Se a versão do mecanismo comportar a alternância de certificado sem reinicialização, a validade do certificado do mecanismo será de um ano. Caso contrário, será de três anos.

Para obter mais informações sobre alternância de certificados de servidor de banco de dados, consulte [Alternância automática de certificados do servidor](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-server-cert-rotation). 

### Visualizar a CA da instância de banco de dados
<a name="UsingWithRDS.SSL.RegionCertificateAuthorities.Viewing"></a>

É possível visualizar os detalhes sobre a CA para um banco de dados na guia **Conectividade e segurança** no console, como na imagem a seguir.

![\[Detalhes da autoridade certificadora\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/certificate-authority-details.png)


Se estiver usando a AWS CLI, você poderá visualizar os detalhes da CA de uma instância de banco de dados usando o comando [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html). É possível visualizar os detalhes sobre a CA para um cluster de banco de dados multi-AZ usando o comando [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html). 

## Baixar pacotes de certificados para o Amazon RDS
<a name="UsingWithRDS.SSL.CertificatesDownload"></a>

Quando você se conecta ao banco de dados com SSL ou TLS, a instância do banco de dados exige um certificado de confiança do Amazon RDS. Selecione o link apropriado na tabela a seguir para baixar o pacote que corresponde à Região da AWS onde você hospeda o banco de dados.

### Pacote de certificados por Região da AWS
<a name="UsingWithRDS.SSL.CertificatesAllRegions"></a>

Os pacotes de certificados para todas as Regiões da AWS e as regiões GovCloud (EUA) contêm os seguintes certificados de CA raiz:
+  `rds-ca-rsa2048-g1` 
+  `rds-ca-rsa4096-g1` 
+  `rds-ca-ecc384-g1` 

Os certificados `rds-ca-rsa4096-g1` e `rds-ca-ecc384-g1` não estão disponíveis nas seguintes regiões:
+ Ásia-Pacífico (Mumbai)
+ Ásia-Pacífico (Melbourne)
+ Oeste do Canadá (Calgary)
+ Europa (Zurique)
+ Europa (Espanha)
+ Israel (Tel Aviv)

O armazenamento confiável da aplicação só precisa registrar o certificado CA raiz. Não registre os certificados CA intermediários em seu armazenamento confiável, pois isso poderá causar problemas de conexão quando o RDS alternar automaticamente o certificado do servidor de banco de dados.

**nota**  
O Amazon RDS Proxy usa certificados do AWS Certificate Manager (ACM). Se você estiver usando o RDS Proxy, não será necessário baixar os certificados do Amazon RDS nem atualizar as aplicações que usam conexões do RDS Proxy. Para ter mais informações, consulte [Usar TLS/SSL com o RDS Proxy](rds-proxy.howitworks.md#rds-proxy-security.tls) .

Para baixar um pacote de certificados para uma Região da AWS, selecione o link da Região da AWS que hospeda o banco de dados na tabela a seguir.


|  **AWS Região da**  |  **Pacote de certificados (PEM)**  |  **Pacote de certificados (PKCS7)**  | 
| --- | --- | --- | 
| Qualquer Região da AWS comercial. |  [global-bundle.pem](https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem)  |  [global-bundle.p7b](https://truststore.pki.rds.amazonaws.com/global/global-bundle.p7b)  | 
| Leste dos EUA (Norte da Virgínia) |  [us-east-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/us-east-1/us-east-1-bundle.pem)  |  [us-east-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/us-east-1/us-east-1-bundle.p7b)  | 
| Leste dos EUA (Ohio) |  [us-east-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/us-east-2/us-east-2-bundle.pem)  |  [us-east-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/us-east-2/us-east-2-bundle.p7b)  | 
| Oeste dos EUA (N. da Califórnia) |  [us-west-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/us-west-1/us-west-1-bundle.pem)  |  [us-west-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/us-west-1/us-west-1-bundle.p7b)  | 
| Oeste dos EUA (Oregon) |  [us-west-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/us-west-2/us-west-2-bundle.pem)  |  [us-west-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/us-west-2/us-west-2-bundle.p7b)  | 
| África (Cidade do Cabo) |  [af-south-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/af-south-1/af-south-1-bundle.pem)  |  [af-south-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/af-south-1/af-south-1-bundle.p7b)  | 
| Ásia-Pacífico (Hong Kong) |  [ap-east-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-east-1/ap-east-1-bundle.pem)  |  [ap-east-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-east-1/ap-east-1-bundle.p7b)  | 
| Ásia-Pacífico (Hyderabad) |  [ap-south-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-south-2/ap-south-2-bundle.pem)  |  [ap-south-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-south-2/ap-south-2-bundle.p7b)  | 
| Ásia-Pacífico (Jacarta) |  [ap-southeast-3-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-southeast-3/ap-southeast-3-bundle.pem)  |  [ap-southeast-3-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-southeast-3/ap-southeast-3-bundle.p7b)  | 
| Ásia-Pacífico (Malásia) |  [ap-southeast-5-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-southeast-5/ap-southeast-5-bundle.pem)  |  [ap-southeast-5-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-southeast-5/ap-southeast-5-bundle.p7b)  | 
| Ásia-Pacífico (Melbourne) |  [ap-southeast-4-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-southeast-4/ap-southeast-4-bundle.pem)  |  [ap-southeast-4-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-southeast-4/ap-southeast-4-bundle.p7b)  | 
| Ásia-Pacífico (Mumbai) |  [ap-south-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-south-1/ap-south-1-bundle.pem)  |  [ap-south-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-south-1/ap-south-1-bundle.p7b)  | 
| Asia Pacific (Osaka) |  [ap-northeast-3-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-northeast-3/ap-northeast-3-bundle.pem)  |  [ap-northeast-3-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-northeast-3/ap-northeast-3-bundle.p7b)  | 
| Ásia-Pacífico (Tailândia) |  [ap-southeast-7-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-southeast-7/ap-southeast-7-bundle.pem)  |  [ap-southeast-7-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-southeast-7/ap-southeast-7-bundle.p7b)  | 
| Ásia-Pacífico (Tóquio) |  [ap-northeast-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-northeast-1/ap-northeast-1-bundle.pem)  |  [ap-northeast-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-northeast-1/ap-northeast-1-bundle.p7b)  | 
| Ásia-Pacífico (Seul) |  [ap-northeast-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-northeast-2/ap-northeast-2-bundle.pem)  |  [ap-northeast-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-northeast-2/ap-northeast-2-bundle.p7b)  | 
| Ásia-Pacífico (Singapura) |  [ap-southeast-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-southeast-1/ap-southeast-1-bundle.pem)  |  [ap-southeast-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-southeast-1/ap-southeast-1-bundle.p7b)  | 
| Ásia-Pacífico (Sydney) |  [ap-southeast-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/ap-southeast-2/ap-southeast-2-bundle.pem)  |  [ap-southeast-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ap-southeast-2/ap-southeast-2-bundle.p7b)  | 
| Canadá (Central) |  [ca-central-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/ca-central-1/ca-central-1-bundle.pem)  |  [ca-central-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ca-central-1/ca-central-1-bundle.p7b)  | 
| Oeste do Canadá (Calgary) |  [ca-west-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/ca-west-1/ca-west-1-bundle.pem)  |  [ca-west-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/ca-west-1/ca-west-1-bundle.p7b)  | 
| Europa (Frankfurt) |  [eu-central-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-central-1/eu-central-1-bundle.pem)  |  [eu-central-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-central-1/eu-central-1-bundle.p7b)  | 
| Europa (Irlanda) |  [eu-west-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-west-1/eu-west-1-bundle.pem)  |  [eu-west-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-west-1/eu-west-1-bundle.p7b)  | 
| Europa (Londres) |  [eu-west-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-west-2/eu-west-2-bundle.pem)  |  [eu-west-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-west-2/eu-west-2-bundle.p7b)  | 
| Europa (Milão) |  [eu-south-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-south-1/eu-south-1-bundle.pem)  |  [eu-south-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-south-1/eu-south-1-bundle.p7b)  | 
| Europa (Paris) |  [eu-west-3-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-west-3/eu-west-3-bundle.pem)  |  [eu-west-3-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-west-3/eu-west-3-bundle.p7b)  | 
| Europa (Espanha) |  [eu-south-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-south-2/eu-south-2-bundle.pem)  |  [eu-south-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-south-2/eu-south-2-bundle.p7b)  | 
| Europa (Estocolmo) |  [eu-north-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-north-1/eu-north-1-bundle.pem)  |  [eu-north-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-north-1/eu-north-1-bundle.p7b)  | 
| Europa (Zurique) |  [eu-central-2-bundle.pem](https://truststore.pki.rds.amazonaws.com/eu-central-2/eu-central-2-bundle.pem)  |  [eu-central-2-bundle.p7b](https://truststore.pki.rds.amazonaws.com/eu-central-2/eu-central-2-bundle.p7b)  | 
| Israel (Tel Aviv) |  [il-central-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/il-central-1/il-central-1-bundle.pem)  |  [il-central-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/il-central-1/il-central-1-bundle.p7b)  | 
| México (Centro) |  [mx-central-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/mx-central-1/mx-central-1-bundle.pem)  |  [mx-central-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/mx-central-1/mx-central-1-bundle.p7b)  | 
| Oriente Médio (Bahrein) |  [me-south-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/me-south-1/me-south-1-bundle.pem)  |  [me-south-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/me-south-1/me-south-1-bundle.p7b)  | 
| Oriente Médio (Emirados Árabes Unidos) |  [me-central-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/me-central-1/me-central-1-bundle.pem)  |  [me-central-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/me-central-1/me-central-1-bundle.p7b)  | 
| América do Sul (São Paulo) |  [sa-east-1-bundle.pem](https://truststore.pki.rds.amazonaws.com/sa-east-1/sa-east-1-bundle.pem)  |  [sa-east-1-bundle.p7b](https://truststore.pki.rds.amazonaws.com/sa-east-1/sa-east-1-bundle.p7b)  | 
| Quaisquer AWS GovCloud (US) Regions. |  [global-bundle.pem](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/global/global-bundle.pem)  |  [global-bundle.p7b](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/global/global-bundle.p7b)  | 
| AWS GovCloud (Leste dos EUA) |  [us-gov-east-1-bundle.pem](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-east-1/us-gov-east-1-bundle.pem)  |  [us-gov-east-1-bundle.p7b](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-east-1/us-gov-east-1-bundle.p7b)  | 
| AWS GovCloud (Oeste dos EUA) |  [us-gov-west-1-bundle.pem](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-west-1/us-gov-west-1-bundle.pem)  |  [us-gov-west-1-bundle.p7b](https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-west-1/us-gov-west-1-bundle.p7b)  | 

### Visualizar o conteúdo do certificado CA
<a name="UsingWithRDS.SSL.CertificatesDownload.viewing"></a>

Para verificar o conteúdo do pacote de certificados da CA, use o seguinte comando: 

```
keytool -printcert -v -file global-bundle.pem
```

# Alternar o certificado SSL/TLS
<a name="UsingWithRDS.SSL-certificate-rotation"></a>

Os certificados rds-ca-2019 da autoridade de certificação do Amazon RDS expiraram em agosto de 2024. Se você usa ou planeja usar Secure Sockets Layer (SSL) ou Transport Layer Security (TLS) com verificação de certificado para se conectar às instâncias de banco de dados do RDS ou clusters de banco de dados multi-AZ,considere usar um dos novos certificados CA rds-ca-rsa2048-g1, rds-ca-rsa4096-g1 ou rds-ca-ecc384-g1. Se você não usa SSL/TLS com verificação de certificado no momento, é possível que ainda tenha algum certificado de CA expirado e precise atualizá-lo para um novo certificado de CA se planeja usar SSL/TLS com verificação de certificado para se conectar aos bancos de dados do RDS.

‎‎O Amazon RDS fornece novos certificados CA como uma prática recomendada de segurança da AWS. Para ter informações sobre os novos certificados e as regiões da AWS compatíveis, consulte [Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados](UsingWithRDS.SSL.md).

Para atualizar o certificado CA do seu banco de dados, use os seguintes métodos: 
+  [Atualizar o certificado CA modificando a instância ou o cluster de banco de dados](#UsingWithRDS.SSL-certificate-rotation-updating) 
+  [Atualizar seu certificado CA aplicando manutenção](#UsingWithRDS.SSL-certificate-rotation-maintenance-update) 

Antes de atualizar as instâncias de banco de dados ou clusters de banco de dados multi-AZ para usar o novo certificado CA, atualize os clientes ou as aplicações que se conectam aos bancos de dados do RDS.

## Considerações sobre a troca de certificados
<a name="UsingWithRDS.SSL-certificate-rotation-considerations"></a>

Pense nas seguintes situações antes de trocar seu certificado:
+ O Amazon RDS Proxy usa certificados do AWS Certificate Manager (ACM). Se estiver usando o RDS Proxy, ao trocar o certificado SSL/TLS, não será necessário atualizar as aplicações que usam conexões do RDS Proxy. Para ter mais informações, consulte [Usar TLS/SSL com o RDS Proxy](rds-proxy.howitworks.md#rds-proxy-security.tls) .
+ Se estiver usando uma aplicação Go versão 1.15 com uma instância de banco de dados ou um cluster de banco de dados multi-AZ criada ou atualizada para o certificado rds-ca-2019 antes de 28 de julho de 2020, você deverá atualizar o certificado novamente. Atualize o certificado para rds-ca-rsa2048-g1, rds-ca-rsa4096-g1 ou rds-ca-ecc384-g1, dependendo do seu mecanismo . 

  Use o comando `modify-db-instance` para uma instância de banco de dados, ou o comando `modify-db-cluster` para um cluster de banco de dados multi-AZ usando o novo identificador de certificado CA. Você pode encontrar as CAs que estão disponíveis para uma versão específica do mecanismo de banco de dados e do mecanismo de banco de dados usando o comando `describe-db-engine-versions`. 

  Caso você tenha criado a instância de banco de dados ou atualizado o certificado dela após 28 de julho de 2020, nenhuma ação será necessária. Para obter mais informações, consulte [Go GitHub issue \$139568](https://github.com/golang/go/issues/39568). 

## Atualizar o certificado CA modificando a instância ou o cluster de banco de dados
<a name="UsingWithRDS.SSL-certificate-rotation-updating"></a>

O exemplo a seguir atualiza o certificado de CA de *rds-ca-2019* para *rds-ca-rsa2048-g1*. Você pode escolher um certificado diferente. Para ter mais informações, consulte [Autoridades certificadoras](UsingWithRDS.SSL.md#UsingWithRDS.SSL.RegionCertificateAuthorities).. 

Atualize seu repositório confiável de aplicações para reduzir o tempo de inatividade associado à atualização do certificado de CA. Consulte mais informações sobre reinicializações associadas à alternância de certificados de CA em [Alternância automática de certificados do servidor](#UsingWithRDS.SSL-certificate-rotation-server-cert-rotation).

**Como atualizar o certificado CA modificando a instância ou o cluster de banco de dados**

1. Baixe o novo certificado SSL/TLS conforme descrito em [Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados](UsingWithRDS.SSL.md).

1. Atualize as aplicações para usarem o novo certificado SSL/TLS.

   Os métodos para atualizar aplicações para novos certificados SSL/TLS dependem de suas aplicações específicas. Trabalhe com os desenvolvedores de aplicações para atualizar os certificados SSL/TLS para suas aplicações.

   Para obter informações sobre como verificar conexões SSL/TLS e atualizar aplicações para cada mecanismo de banco de dados, consulte os seguintes tópicos:
   +  [Atualizar aplicações para conexão com instâncias do MariaDB usando novos certificados SSL/TLS](ssl-certificate-rotation-mariadb.md) 
   +  [Atualizar aplicações para conexão com instâncias de banco de dados Microsoft SQL Server usando novos certificados SSL/TLS](ssl-certificate-rotation-sqlserver.md) 
   +  [Atualizar aplicações para conexão com instâncias de banco de dados MySQL usando novos certificados SSL/TLS](ssl-certificate-rotation-mysql.md) 
   +  [Atualizar aplicações para conexão com instâncias de banco de dados Oracle usando novos certificados SSL/TLS](ssl-certificate-rotation-oracle.md) 
   +  [Atualizar aplicações para conexão com instâncias de banco de dados PostgreSQL usando novos certificados SSL/TLS](ssl-certificate-rotation-postgresql.md) 

   Para conhecer um script de exemplo que atualiza um armazenamento confiável para um sistema operacional Linux, consulte [Script de exemplo para importar certificados para o seu armazenamento confiável](#UsingWithRDS.SSL-certificate-rotation-sample-script).
**nota**  
O pacote de certificados contém certificados tanto para a CA antiga como para a nova, portanto, é possível atualizar a aplicação de maneira segura e manter a conectividade durante o período de transição. Se você estiver usando o AWS Database Migration Service a fim de migrar um banco de dados para uma instância ou um cluster de banco de dados, recomendamos o uso do pacote de certificados para garantir a conectividade durante a migração.

1. Modifique a instância de banco de dados ou cluster de banco de dados multi-AZ para alterar a CA de **rds-ca-2019** para **rds-ca-rsa2048-g1**. Para verificar se o banco de dados requer reinicialização para atualizar os certificados de CA, use o comando [descrebe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) e verifique o sinalizador `SupportsCertificateRotationWithoutRestart`. 
**Importante**  
Se você estiver enfrentando problemas de conectividade após a expiração do certificado, especifique a opção **Apply immediately (Aplicar imediatamente)** no console ou a opção `--apply-immediately` usando a AWS CLI. Por padrão, essa operação é programada para ser executada durante a próxima janela de manutenção.  
Para instâncias de banco de dados do RDS para Oracle, recomendamos que você reinicie o banco de dados do Oracle para evitar erros de conexão.  
Para instâncias multi-AZ do RDS para SQL Server com a opção “Sempre ativa” ou “Espelhamento” habilitada, é esperado um failover quando a instância é reiniciada após a alternância do certificado.  
Para definir uma substituição de CA da instância que é diferente da CA padrão do RDS, use o comando [modify-certificates](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-certificates.html) da CLI.

É possível usa o Console de gerenciamento da AWS ou a AWS CLI para alterar o certificado CA de **rds-ca-2019** para **rds-ca-rsa2048-g1** para uma instância de banco de dados ou cluster de banco de dados multi-AZ. 

------
#### [ Console ]

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Bancos de dados** e selecione a instância de banco de dados ou o cluster de banco de dados multi-AZ que você deseja modificar. 

1. Escolha **Modificar**.   
![\[Modificar instância de banco de dados ou cluster de banco de dados multi-AZ\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/ssl-rotate-cert-modify.png)

1. Na seção **Conectividade**, escolha **rds-ca-rsa2048-g1**.   
![\[Escolher certificado CA\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/ssl-rotate-cert-ca-rsa2048-g1.png)

1. Escolha **Continue (Continuar)** e verifique o resumo de modificações. 

1. Para aplicar as alterações imediatamente, escolha **Apply immediately**. 

1. Na página de confirmação, revise suas alterações. Se estiverem corretas, escolha **Modificar instância de banco de dados** ou **Modificar cluster** para salvar as alterações. 
**Importante**  
Ao programar essa operação, certifique-se de ter atualizado o armazenamento de confiança do lado do cliente com antecedência.

   Ou escolha **Back (Voltar)** para editar as alterações ou **Cancel (Cancelar)** para cancelar as alterações. 

------
#### [ AWS CLI ]

Para usar a AWS CLI a fim de alterar a CA de **rds-ca-2019** para **rds-ca-rsa2048-g1** para uma instância de banco de dados ou cluster de banco de dados multi-AZ, chame o comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) ou [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html). Especifique o identificador da instância ou do cluster de banco de dados e a opção `--ca-certificate-identifier`.

Use o parâmetro `--apply-immediately` para aplicar a atualização imediatamente. Por padrão, essa operação é programada para ser executada durante a próxima janela de manutenção.

**Importante**  
Ao programar essa operação, certifique-se de ter atualizado o armazenamento de confiança do lado do cliente com antecedência.

**Example**  
 **DB instance (Instância de banco de dados**   
O exemplo a seguir modifica `mydbinstance` definindo o certificado CA como `rds-ca-rsa2048-g1`.   
Para Linux, macOS ou Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --ca-certificate-identifier rds-ca-rsa2048-g1
```
Para Windows:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --ca-certificate-identifier rds-ca-rsa2048-g1
```
Se a instância exigir reinicialização, você poderá usar o comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) da CLI e especificar a opção `--no-certificate-rotation-restart`.

**Example**  
 **Cluster de banco de dados multi-AZ**   
O exemplo a seguir modifica `mydbcluster` definindo o certificado CA como `rds-ca-rsa2048-g1`.   
Para Linux, macOS ou Unix:  

```
aws rds modify-db-cluster \
    --db-cluster-identifier mydbcluster \
    --ca-certificate-identifier rds-ca-rsa2048-g1
```
Para Windows:  

```
aws rds modify-db-cluster ^
    --db-cluster-identifier mydbcluster ^
    --ca-certificate-identifier rds-ca-rsa2048-g1
```

------

## Atualizar seu certificado CA aplicando manutenção
<a name="UsingWithRDS.SSL-certificate-rotation-maintenance-update"></a>

Siga as etapas a seguir para atualizar o certificado CA aplicando a manutenção.

------
#### [ Console ]

**Como atualizar o certificado CA aplicando a manutenção**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, selecione **Atualização de certificado**.   
![\[Opção do painel de navegação de rotação do certificado\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/ssl-rotate-cert-certupdate.png)

   A página **Bancos de dados que precisam de atualização de certificado** é exibida.  
![\[Atualizar certificado CA do banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/ssl-rotate-cert-update-multiple.png)
**nota**  
Essa página mostra apenas as instâncias e os clusters de banco de dados na Região da AWS atual. Se você tiver bancos de dados em mais de uma Região da AWS, confira essa página em cada Região da AWS para ver todas as instâncias de banco de dados com certificados SSL/TLS antigos.

1. Escolha a instância de banco de dados ou o cluster de banco de dados multi-AZ que você deseja atualizar.

   Você pode programar a alternância de certificado para sua próxima janela de manutenção escolhendo **Programar**. Aplique a mudança imediatamente escolhendo **Aplicar agora**. 
**Importante**  
Se você tiver problemas de conectividade após a expiração do certificado, use a opção **Aplicar agora**.

1. 

   1. Se você escolher **Programar**, precisará confirmar a alternância do certificado de CA. Essa solicitação de confirmação também indica a janela agendada para sua atualização.   
![\[Confirmar rotação de certificado\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/ssl-rotate-cert-confirm-schedule.png)

   1. Se você escolher **Aplicar agora**, precisará confirmar a alternância do certificado de CA.  
![\[Confirmar rotação de certificado\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/ssl-rotate-cert-confirm-now.png)
**Importante**  
Antes de programar a rotação do certificado CA no banco de dados, atualize todas as aplicações cliente que usam SSL/TLS e o certificado do servidor para se conectar. Essas atualizações são específicas ao seu mecanismo de banco de dados. Depois de atualizar essas aplicações cliente, você pode confirmar a rotação do certificado CA. 

   Para continuar, escolha a caixa de seleção e escolha **Confirm (Confirmar)**. 

1. Repita as etapas 3 e 4 para cada instância e cluster de banco de dados instância que você deseja atualizar.

------

## Alternância automática de certificados do servidor
<a name="UsingWithRDS.SSL-certificate-rotation-server-cert-rotation"></a>

Se a CA raiz comportar a troca automática de certificados de servidor, o RDS gerenciará automaticamente a troca do certificado do servidor de banco de dados. Como o RDS usa a mesma CA raiz para essa alternância automática, então você não precisa baixar um novo pacote de CA. Consulte [Autoridades certificadoras](UsingWithRDS.SSL.md#UsingWithRDS.SSL.RegionCertificateAuthorities).

A alternância e a validade do certificado do servidor de banco de dados dependem do mecanismo de banco de dados:
+ Se o mecanismo de banco de dados comportar a alternância sem reinicialização, o RDS alternará automaticamente o certificado do servidor de banco de dados sem exigir nenhuma ação de sua parte. O RDS tenta alternar o certificado do servidor de banco de dados em sua janela de manutenção preferida na meia-vida do respectivo certificado. O novo certificado do servidor de banco de dados é válido por 12 meses.
+ Se seu mecanismo de banco de dados não aceitar alternância sem reinicialização, o Amazon RDS tornará visível uma ação de manutenção pendente `server-certificate-rotation` por meio da API Describe-pending-maintenance-actions, na meia-vida do certificado ou pelo menos 3 meses antes da expiração. É possível aplicar a alternância usando a API apply-pending-maintenance-action. O novo certificado do servidor de banco de dados é válido por 12 meses.

Use o comando [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) e inspecione o sinalizador `SupportsCertificateRotationWithoutRestart` para identificar se a versão do mecanismo de banco de dados é compatível com a alternância de certificado sem reinicialização. Para ter mais informações, consulte [Configurar a CA do banco de dados](UsingWithRDS.SSL.md#UsingWithRDS.SSL.RegionCertificateAuthorities.Selection) . 

## Script de exemplo para importar certificados para o seu armazenamento confiável
<a name="UsingWithRDS.SSL-certificate-rotation-sample-script"></a>

Veja os exemplos de scripts do shell que importam o pacote de certificados para um armazenamento de confiança.

Cada script de shell de amostra usa o keytool, que faz parte do Java Development Kit (JDK). Para obter mais informações sobre como instalar o JDK, consulte o [Guia de instalação do JDK](https://docs.oracle.com/en/java/javase/17/install/overview-jdk-installation.html). 

------
#### [ Linux ]

Veja a seguir um exemplo de script shell que importa o pacote de certificados para um armazenamento confiável em um sistema operacional Linux.

```
mydir=tmp/certs
if [ ! -e "${mydir}" ]
then
mkdir -p "${mydir}"
fi truststore=${mydir}/rds-truststore.jks storepassword=changeit

curl -sS "https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem"> ${mydir}/global-bundle.pem
awk 'split_after == 1 {n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1}{print > "rds-ca-" n+1 ".pem"}' < ${mydir}/global-bundle.pem

for CERT in rds-ca-*; do alias=$(openssl x509 -noout -text -in $CERT | perl -ne 'next unless /Subject:/; s/.*(CN=|CN = )//; print')
  echo "Importing $alias"
  keytool -import -file ${CERT} -alias "${alias}" -storepass ${storepassword} -keystore ${truststore} -noprompt
  rm $CERT
done

rm ${mydir}/global-bundle.pem

echo "Trust store content is: "

keytool -list -v -keystore "$truststore" -storepass ${storepassword} | grep Alias | cut -d " " -f3- | while read alias 
do expiry=`keytool -list -v -keystore "$truststore" -storepass ${storepassword} -alias "${alias}" | grep Valid | perl -ne 'if(/until: (.*?)\n/) { print "$1\n"; }'`
   echo " Certificate ${alias} expires in '$expiry'" 
done
```

------
#### [ macOS ]

Veja a seguir um exemplo de script do shell que importa o pacote de certificados em um armazenamento de confiança no macOS.

```
mydir=tmp/certs
if [ ! -e "${mydir}" ]
then
mkdir -p "${mydir}"
fi truststore=${mydir}/rds-truststore.jks storepassword=changeit

curl -sS "https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem"> ${mydir}/global-bundle.pem
split -p "-----BEGIN CERTIFICATE-----" ${mydir}/global-bundle.pem rds-ca-

for CERT in rds-ca-*; do alias=$(openssl x509 -noout -text -in $CERT | perl -ne 'next unless /Subject:/; s/.*(CN=|CN = )//; print')
  echo "Importing $alias"
  keytool -import -file ${CERT} -alias "${alias}" -storepass ${storepassword} -keystore ${truststore} -noprompt
  rm $CERT
done

rm ${mydir}/global-bundle.pem

echo "Trust store content is: "

keytool -list -v -keystore "$truststore" -storepass ${storepassword} | grep Alias | cut -d " " -f3- | while read alias 
do expiry=`keytool -list -v -keystore "$truststore" -storepass ${storepassword} -alias "${alias}" | grep Valid | perl -ne 'if(/until: (.*?)\n/) { print "$1\n"; }'`
   echo " Certificate ${alias} expires in '$expiry'" 
done
```

------