

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criptografe uma instância de banco de dados Amazon RDS para PostgreSQL existente
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance"></a>

*Piyush Goyal, Shobana Raghu e Yaser Raja, Amazon Web Services*

## Resumo
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-summary"></a>

Este padrão explica como criptografar uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS) para PostgreSQL existente na Nuvem AWS com tempo de inatividade mínimo. Esse processo também funciona para instâncias de banco de dados do Amazon RDS para MySQL.

Você só pode habilitar a criptografia para uma instância de banco de dados do Amazon RDS ao criá-la, e não após a sua criação. No entanto, você pode adicionar criptografia a uma instância de banco de dados não criptografada criando um snapshot da instância de banco de dados e depois criando uma cópia criptografada desse snapshot. Em seguida, você pode restaurar uma instância de banco de dados a partir do snapshot criptografado, você terá uma cópia criptografada da sua instância de banco de dados original. Se seu projeto permitir tempo de inatividade (pelo menos para transações de gravação) durante essa atividade, isso é tudo o que você precisa fazer. Quando a nova cópia criptografada da instância de banco de dados estiver disponível, você poderá direcionar seus aplicativos para o novo banco de dados. No entanto, se seu projeto não permitir um tempo de inatividade significativo para essa atividade, você precisará de uma abordagem alternativa que ajude a minimizar o tempo de inatividade. Esse padrão usa o AWS Database Migration Service (AWS DMS) para migrar e replicar continuamente os dados para que a substituição para o novo banco de dados criptografado possa ser feita com o mínimo de tempo de inatividade. 

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 seus dados, o Amazon RDS lida com a autenticação do acesso e a decodificação dos seus dados de forma transparente com um mínimo impacto sobre o desempenho. Você não precisa modificar suas aplicações cliente de banco de dados para usar a criptografia.

## Pré-requisitos e limitações
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma instância de banco de dados do Amazon RDS para PostgreSQL
+ Experiência em trabalhar com (criar, modificar ou interromper) tarefas do AWS DMS (consulte [Trabalho com tarefas do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html) na documentação do AWS DMS)
+ Familiaridade com o AWS Key Management Service (AWS KMS) para criptografar bancos de dados (consulte a documentação do AWS [KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html))

**Limitações**
+ Você só pode habilitar a criptografia para uma instância de banco de dados do Amazon RDS ao criá-la, e não após a sua criação.
+ Os dados em [tabelas não registradas](https://www.postgresql.org/docs/current/sql-createtable.html) não serão restaurados usando instantâneos. Para obter mais informações, consulte [Melhores práticas para trabalhar com PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_BestPractices.html#CHAP_BestPractices.PostgreSQL).
+ 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.
+ Não é possível restaurar um backup ou um snapshot não criptografado em uma instância de banco de dados criptografada.
+ O AWS DMS não transfere automaticamente as sequências, portanto, etapas adicionais são necessárias para lidar com isso.

Para obter mais informações, consulte [Limitações das instâncias de banco de dados criptografadas do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html#Overview.Encryption.Limitations) na documentação do Amazon RDS.

## Arquitetura
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-architecture"></a>

**Arquitetura de origem**
+ Instância de banco de dados do RDS não criptografada

**Arquitetura de destino**
+ Instância de banco de dados do RDS criptografada
  + A instância de banco de dados RDS de destino é criada restaurando a cópia do DB snapshot da instância de banco de dados RDS de origem.
  + Uma chave do AWS KMS é usada para criptografia durante a restauração do snapshot.
  + Uma tarefa de replicação do AWS DMS é usada para migrar os dados. 

![O processo usa o AWS DMS para criptografar uma instância existente do Amazon RDS para PostgreSQL em um novo banco de dados.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/820d17c0-0eed-4ed9-9f43-cbada081d924/images/44dd8420-d89d-466e-b7fb-1bdafab8f7f9.png)


## Ferramentas
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-tools"></a>

**Ferramentas usadas para habilitar a criptografia:**
+ Chave do AWS KMS para criptografia: 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 CMK gerenciada para o Amazon RDS para sua conta da . Sua conta da AWS tem uma chave gerenciada pela AWS diferente para Amazon RDS para cada região da AWS. Para obter mais informações sobre o uso de chaves KMS para criptografia do Amazon RDS, consulte [Criptografando recursos do Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html) RDS.

**Ferramentas usadas para replicação contínua:**
+ AWS DMS: você pode usar o AWS Database Migration Service (AWS DMS) para replicar as alterações do banco de dados de origem para o banco de dados de destino. É importante manter o banco de dados de origem e de destino sincronizados para reduzir ao mínimo o tempo de inatividade. Para obter informações sobre como configurar o AWS DMS e criar tarefas, consulte a documentação do [AWS DMS.](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)

## Épicos
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-epics"></a>

### Crie um snapshot da instância de banco de dados de origem e criptografe-a
<a name="create-a-snapshot-of-the-source-db-instance-and-encrypt-it"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Verificar os detalhes da instância de banco de dados PostgreSQL de origem. | No console do Amazon RDS, escolha a instância de banco de dados PostgreSQL de origem. Na guia **Configuração**, verifique se a criptografia não está habilitada para a instância. Para ver uma ilustração de tela, consulte a seção [Informações adicionais](#encrypt-an-existing-amazon-rds-for-postgresql-db-instance-additional). | DBA | 
| Crie um snapshot de banco de dados. | Crie um snapshot do banco de dados da instância que deseja criptografar. O tempo necessário para criar um snapshot depende do tamanho do seu banco de dados. Para obter instruções, consulte [Criação de um DB snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html) na documentação do Amazon RDS. | DBA | 
| Criptografe o instantâneo. | No painel de navegação do console Amazon RDS, escolha **Snapshots** e selecione o DB snapshot que você criou. Para **Actions (Ações)**, escolha **Copy Snapshot (Copiar snapshot)**. Forneça a região da AWS de destino e o nome da cópia do DB snapshot nos campos correspondentes. Marque a caixa de seleção **Ativar criptografia**. Em **Master Key (Chave mestre)**, especifique o identificador de chave do KMS a ser usado para criptografar a cópia do snapshot de banco de dados. Escolha **Copy Snapshot (Copiar snapshot)**. Para obter informações, consulte [Cópia de um snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html) na documentação do Amazon RDS. | DBA | 

### Prepare a instância de banco de dados de destino
<a name="prepare-the-target-db-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Restaure o snapshot de banco de dados. | No console do Amazon RDS, selecione a guia **Snapshots**. Escolha o instantâneo criptografado que você criou. Em **Actions (Ações)**, escolha **Restore Snapshot (Restaurar snapshot)**. Em **Identificador da instância de banco de dados**, insira um nome exclusivo de sua instância de banco de dados. Revise os detalhes da instância e escolha **Restaurar instância de banco de dados**. Uma nova instância de banco de dados criptografada será criada a partir do seu snapshot. Para obter mais informações, consulte [Restaurar um snapshot de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html) na documentação do Amazon RDS. | DBA | 
| Migrar dados usando o AWS DMS | No console do AWS DMS, crie uma tarefa do AWS DMS. Para **Migration type** escolha **Migrate existing data and replication ongoing changes (Migrar dados existentes e replicar alterações contínuas)**. Em **Configurações da tarefa**, no **modo de preparação da tabela de destino**, escolha **Truncar**. Para obter mais informações consulte [Criação de uma tarefa](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html), consulte a documentação do DMS. | DBA | 
| Ativar a validação de dados | Em **Configurações da tarefa**, escolha **Habilitar validação**. Isso permite comparar os dados de origem com os dados de destino para verificar se os dados foram migrados com precisão.  | DBA | 
| Desabilite as restrições na instância de banco de dados de destino. | [Desative quaisquer gatilhos e restrições de chave estrangeira](https://www.postgresql.org/docs/current/sql-altertable.html) na instância de banco de dados de destino e, em seguida, inicie a tarefa do AWS DMS. [Para obter mais informações sobre a desativação de acionadores e restrições de chave estrangeira, consulte a documentação do AWS DMS.](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) | DBA | 
| Verificar os dados.  | Depois que o carregamento completo estiver concluído, verifique os dados na instância de banco de dados de destino para ver se eles correspondem aos dados de origem. Para obter mais informações, consulte [Validação de dados](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) na documentação do AWS DMS. | DBA | 

### Vá para a instância de banco de dados de destino
<a name="cut-over-to-the-target-db-instance"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Interrompa as operações de gravação na instância de banco de dados de origem. | Pare as operações de gravação na instância de banco de dados de origem para que o tempo de inatividade do aplicativo possa começar. Verifique se o AWS DMS concluiu a replicação dos dados no pipeline. Habilite gatilhos e chaves estrangeiras na instância de banco de dados de destino. | DBA | 
| Atualizar sequências do banco de dados | Se o banco de dados de origem contiver números de sequência, verifique e atualize as sequências no banco de dados de destino. | DBA | 
| Configure o endpoint da aplicação. | Configure as conexões do aplicativo para usar os novos endpoints de instância de banco de dados do Amazon RDS. A instância de banco de dados já está criptografada. | DBA, proprietário do aplicativo | 

## Recursos relacionados
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-resources"></a>
+ [Criar uma tarefa do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) 
+ [Monitorando tarefas de replicação usando a Amazon CloudWatch](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html#CHAP_Monitoring.CloudWatch)
+ [Monitoramento de tarefas do AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html)
+ [Atualização da chave de criptografia do Amazon RDS](https://aws.amazon.com/premiumsupport/knowledge-center/update-encryption-key-rds/)

## Mais informações
<a name="encrypt-an-existing-amazon-rds-for-postgresql-db-instance-additional"></a>

Verificar a criptografia da instância de banco de dados PostgreSQL de origem:

![A página Resumo da instância do banco de dados de origem do PostgreSQL mostra que a criptografia não está habilitada para o armazenamento.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/820d17c0-0eed-4ed9-9f43-cbada081d924/images/d53d1dab-b5c2-452d-b823-ba3d6508ad15.png)


Notas adicionais para esse padrão:
+ Ative a replicação no PostgreSQL `rds.logical_replication` definindo o parâmetro como 1.

**Observação importante:** os slots de replicação retêm os arquivos de registro antecipado de gravação (WAL) até que os arquivos sejam consumidos externamente — por exemplo, por`pg_recvlogical`; por trabalhos de extração, transformação e carregamento (ETL); ou pelo AWS DMS. Quando você define o valor do `rds.logical_replication` parâmetro como 1, o AWS DMS define os parâmetros `wal_level`, `max_wal_senders`, `max_replication_slots`, e `max_connections`. Se houver slots de replicação lógica, mas não houver consumidor para os arquivos WAL retidos pelo slot de replicação, você poderá observar um aumento no uso do disco do log de transações e uma diminuição constante no espaço livre de armazenamento. Para obter mais informações e etapas para resolver esse problema, consulte o artigo [Como posso identificar o que está causando o erro “Não há espaço restante no dispositivo” ou "DiskFull" no Amazon RDS for](https://aws.amazon.com/premiumsupport/knowledge-center/diskfull-error-rds-postgresql/) PostgreSQL? no Centro de conhecimento do AWS Support.
+ Qualquer alteração de esquema que você fizer na instância de banco de dados de origem depois de criar o DB snapshot não estará presente na instância de banco de dados de destino.
+ Após 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. Certifique-se de determinar os requisitos da chave do KMS antes de criar a instância de banco de dados criptografada.
+ Você deve desativar os gatilhos e as chaves estrangeiras na instância de banco de dados de destino antes de executar a tarefa do AWS DMS. É possível reabilitá-los quando a tarefa for concluída.