

# Compartilhar um snapshot de banco de dados para o Amazon RDS
<a name="USER_ShareSnapshot"></a>

Com o Amazon RDS, é possível compartilhar um snapshot de banco de dados manual das seguintes formas:
+ Compartilhar um snapshot de banco de dados manual, seja criptografado ou não, permite que as Contas da AWS autorizadas copiem o snapshot.
+ Compartilhar um snapshot de banco de dados manual não criptografado permite que as Contas da AWS autorizadas restaurem diretamente uma instância de bancos de dados do snapshot em vez de fazer uma cópia dela e restaurar por meio dela. No entanto, não é possível restaurar uma instância de banco de dados a partir de um snapshot de banco de dados que seja compartilhado e criptografado. Em vez disso, você pode fazer uma cópia do snapshot de banco de dados e restaurar a instância de banco de dados a partir da cópia.

**nota**  
Para compartilhar um snapshot de banco de dados automatizado, crie um snapshot de banco de dados manual copiando o snapshot automatizado e compartilhe essa cópia. Esse processo também se aplica aos recursos gerados pelo AWS Backup.

Para obter mais informações sobre a cópia de um snapshot, consulte [Copiar um snapshot de banco de dados para o Amazon RDS](USER_CopySnapshot.md). Para obter mais informações sobre como restaurar uma instância de banco de dados de um snapshot de banco de dados, consulte [Restaurar uma instância de banco de dados](USER_RestoreFromSnapshot.md).

É possível compartilhar um snapshot manual com até 20 outras Contas da AWS.

As seguintes limitações se aplicam quando você compartilha snapshots manuais com outras Contas da AWS:
+ Ao restaurar uma instância de banco de dados de um snapshot compartilhado usando a AWS Command Line Interface (AWS CLI) ou a API do Amazon RDS, especifique o nome do recurso da Amazon (ARN) do snapshot compartilhado como o identificador do snapshot.
+ Não é possível compartilhar um snapshot de banco de dados que usa um grupo de opções com opções permanentes ou persistentes, exceto para instâncias de banco de dados Oracle que têm a opção `Timezone`, `OLS` ou ambas.

  Não é possível remover a *opção permanente* de um grupo de opções. Não é possível remover os grupos de opções contendo opções persistentes de uma instância de banco de dados depois que o grupo de opções já tiver sido atribuído à instância de banco de dados.

  A tabela a seguir enumera as opções permanentes e persistentes e os mecanismos de banco de dados relacionados a elas.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html)

  Para instâncias de banco de dados Oracle, é possível copiar snapshots de banco de dados compartilhados que tenham a opção `Timezone` ou `OLS` (ou ambas). Para fazer isso, especifique um grupo de opções de destino que inclua essas opções ao copiar o snapshot de banco de dados. A opção OLS é permanente e persistente apenas para instâncias de banco de dados Oracle executando o Oracle versão 12.2 ou superior. Para obter mais informações sobre essas opções, consulte [Fuso horário da Oracle](Appendix.Oracle.Options.Timezone.md) e [Oracle Label Security](Oracle.Options.OLS.md).
+ Não é possível compartilhar um snapshot de um cluster de banco de dados multi-AZ.
+ Você não pode compartilhar um snapshot quando ele contém um volume de armazenamento adicional.

Consulte nos tópicos a seguir informações sobre como compartilhar os snapshots públicos e os criptografados e sobre como interromper o compartilhamento de snapshots.

**Tópicos**
+ [Compartilhar snapshots públicos para o Amazon RDS](USER_ShareSnapshot.Public.md)
+ [Compartilhar snapshots criptografados para o Amazon RDS](share-encrypted-snapshot.md)
+ [Interromper o compartilhamento de snapshots no Amazon RDS](share-snapshot-stop.md)

## Compartilhar um snapshot
<a name="USER_ShareSnapshot.Sharing"></a>

Você pode compartilhar um snapshot de banco de dados usando o Console de gerenciamento da AWS, a ou a API do RDS.

### Console
<a name="USER_ShareSnapshot.Console"></a>

Usando o console do Amazon RDS, é possível compartilhar um snapshot de banco de dados manual com até vinte Contas da AWS. Você também pode usar o console para interromper o compartilhamento de um snapshot manual com uma ou mais contas.

**Para compartilhar um snapshot manual do de banco de dados usando o console do Amazon RDS**

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 **Snapshots**.

1. Selecione o snapshot manual que você deseja compartilhar.

1. Em **Actions** (Ações), selecione **Share Snapshot **(Compartilhar snapshot).

1. Escolha uma das seguintes opções para **DB snapshot visibility** (Visibilidade do snapshot de banco de dados).
   + Se a origem não estiver criptografada, escolha **Público** para permitir que todas as contas da AWS restaurem uma instância de banco de dados do snapshot de banco de dados manual, ou escolha **Privado** para permitir que apenas as Contas da AWS que você especificar restaurem uma instância de banco de dados do seu snapshot de banco de dados manual.
**Atenção**  
Se você definir **Visibilidade de snapshot de banco de dados** como **Público**, todas as Contas da AWS poderão restaurar uma instância de banco de dados do snapshot de banco de dados manual, além de terem acesso aos dados. Não compartilhe nenhum DB snapshot manual que contenha informações privadas, como **Public**.  
Para obter mais informações, consulte [Compartilhar snapshots públicos para o Amazon RDS](USER_ShareSnapshot.Public.md).
   + Se a origem estiver criptografada, **DB snapshot visibility** (Visibilidade do snapshot de banco de dados) será definida como **Private** (Privada) porque os snapshots criptografados não podem ser compartilhados como públicos.
**nota**  
Snapshots criptografados com a AWS KMS key padrão não podem ser compartilhados. Para ter informações sobre como contornar esse problema, consulte [Compartilhar snapshots criptografados para o Amazon RDS](share-encrypted-snapshot.md).

1. Em **ID da conta da AWS**, digite o identificador da Conta da AWS à qual você deseja conceder a permissão para restaurar uma instância de banco de dados do snapshot manual e selecione **Adicionar**. Repita a operação para incluir outros identificadores da Conta da AWS, até vinte Contas da AWS.

   Se você errar ao adicionar o identificador da Conta da AWS à lista de contas permitidas, saiba que é possível excluí-lo da lista escolhendo **Excluir** à direita do identificador incorreto da Conta da AWS.  
![\[Permitir que Contas da AWS restaurem um snapshot de banco de dados manual\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/ShareSnapshot_add.png)

1. Depois de adicionar os identificadores de todas as Contas da AWS às quais você deseja conceder a permissão para restaurar o snapshot manual, selecione **Salvar** para salvar as alterações.

### AWS CLI
<a name="USER_ShareSnapshot.CLI"></a>

Para compartilhar um snapshot de banco de dados, use o comando `aws rds modify-db-snapshot-attribute`. Use o parâmetro `--values-to-add` para adicionar uma lista dos IDs das Contas da AWS autorizadas a restaurar o snapshot manual.

**Example compartilhamento de um snapshot com uma única conta**  
O exemplo a seguir permite que o identificador Conta da AWS, `123456789012`, restaure o snapshot do banco de dados chamado `db7-snapshot`.  
Para Linux, macOS ou Unix:  

```
aws rds modify-db-snapshot-attribute \
--db-snapshot-identifier db7-snapshot \
--attribute-name restore \
--values-to-add 123456789012
```
Para Windows:  

```
aws rds modify-db-snapshot-attribute ^
--db-snapshot-identifier db7-snapshot ^
--attribute-name restore ^
--values-to-add 123456789012
```

**Example compartilhamento de um snapshot com múltiplas contas**  
O exemplo a seguir permite que dois identificadores Conta da AWS, `111122223333` e `444455556666`, restaurem o snapshot do banco de dados chamado `manual-snapshot1`.  
Para Linux, macOS ou Unix:  

```
aws rds modify-db-snapshot-attribute \
--db-snapshot-identifier manual-snapshot1 \
--attribute-name restore \
--values-to-add {"111122223333","444455556666"}
```
Para Windows:  

```
aws rds modify-db-snapshot-attribute ^
--db-snapshot-identifier manual-snapshot1 ^
--attribute-name restore ^
--values-to-add "[\"111122223333\",\"444455556666\"]"
```
Ao usar o prompt de comando do Windows, você deve fazer o escape das aspas duplas (") no código JSON, prefixando-as com uma barra invertida (\$1).

Para listar as Contas da AWS habilitadas para restaurar um snapshot, utilize o comando [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshot-attributes.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshot-attributes.html) da AWS CLI.

### API do RDS
<a name="USER_ShareSnapshot.API"></a>

Também é possível compartilhar um snapshot de banco de dados manual com outras Contas da AWS usando a API do Amazon RDS. Para fazer isso, chame a operação [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBSnapshotAttribute.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBSnapshotAttribute.html). Especifique `restore` para `AttributeName` e use o parâmetro `ValuesToAdd` para adicionar uma lista dos IDs das Contas da AWS que têm autorização para restaurar o snapshot manual. 

Para tornar um snapshot manual público e restaurável por todas as Contas da AWS, use o valor `all`. No entanto, tome cuidado para não adicionar o valor `all` a nenhum snapshot manual com informações privadas que não deseja disponibilizar para todas as Contas da AWS. Além disso, não especifique `all` para snapshots criptografados, pois não é possível torná-los públicos.

Para listar todas as Contas da AWS que têm permissão para restaurar um snapshot, utilize a operação [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshotAttributes.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshotAttributes.html) da API.

# Compartilhar snapshots públicos para o Amazon RDS
<a name="USER_ShareSnapshot.Public"></a>

É possível compartilhar um snapshot manual não criptografado como público, disponibilizando-o para todas as Contas da AWS. Ao compartilhar um snapshot como público, verifique se suas informações privadas não estão incluídas nos snapshots públicos.

Quando um snapshot é compartilhado publicamente, ele fornece a todas as Contas da AWS permissão para copiar o snapshot e para criar instâncias de banco de dados dele.

Você não é cobrado pelo armazenamento de backup de snapshots públicos pertencentes a outras contas. Você é cobrado apenas pelos snapshots pertencentes a você.

Se você copiar um snapshot público, será o proprietário da cópia. Você será cobrado pelo armazenamento de backup da sua cópia do snapshot. Se criar uma instância de banco de dados de um snapshot público, você será cobrado por essa instância de banco de dados. Para obter informações sobre a definição de preço do Amazon RDS, consulte a [página de produto do Amazon RDS](https://aws.amazon.com/rds/pricing).

Você pode excluir somente os snapshots públicos pertencentes a você. Para excluir um snapshot compartilhado ou público, você deve fazer login na Conta da AWS à qual pertence esse snapshot.

## Visualizar snapshots públicos pertencentes a outras Contas da AWS
<a name="USER_ShareSnapshot.Public.View.Console"></a>

Você pode visualizar snapshots públicos pertencentes a outras contas em uma região da AWS específica na guia **Public** (Público) na página **Snapshots** do console do Amazon RDS. Seus snapshots (aqueles pertencentes à sua conta) não aparecem nesta guia.

**Para visualizar snapshots públicos**

1. 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 **Snapshots**.

1. Selecione a guia **Public** (Público).

   Os snapshots públicos são exibidos. Você pode ver qual conta possui um snapshot público na coluna **Owner** (Proprietário).
**nota**  
Talvez seja necessário modificar as preferências da página selecionando o ícone de engrenagem no canto superior direito da lista **Public snapshots** (Instantâneos públicos) para ver esta coluna.

## Visualização dos seus próprios snapshots públicos
<a name="USER_ShareSnapshot.Public.View.CLI"></a>

É possível usar o seguinte comando da AWS CLI (somente Unix) para visualizar os snapshots públicos pertencentes à Conta da AWS em uma determinada região da AWS.

```
aws rds describe-db-snapshots --snapshot-type public --include-public | grep account_number
```

A saída retornada será semelhante ao exemplo a seguir se você tiver instantâneos públicos.

```
"DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mysnapshot1",
"DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mysnapshot2",
```

**nota**  
Você pode ver entradas duplicadas para `DBSnapshotIdentifier` ou `SourceDBSnapshotIdentifier`.

## Compartilhamento de snapshots públicos de versões obsoletas do mecanismo de banco de dados
<a name="USER_ShareSnapshot.Public.deprecated"></a>

Não é permitido restaurar nem copiar snapshots públicos de versões obsoletas do mecanismo de banco de dados.

Os mecanismos de banco de dados do RDS para Oracle e do RDS para PostgreSQL permitem o upgrade direto das versões do mecanismo do snapshot de banco de dados. É possível fazer upgrade dos snapshots e, depois, compartilhá-los novamente de forma pública. Para obter mais informações, consulte as informações a seguir.
+ [Como atualizar para um snapshot de banco de dados Oracle](USER_UpgradeDBSnapshot.Oracle.md)
+ [Atualizar uma versão do mecanismo de snapshot de banco de dados PostgreSQL](USER_UpgradeDBSnapshot.PostgreSQL.md)

Para outros mecanismos de banco de dados, execute as etapas a seguir para disponibilizar o snapshot público incompatível existente para restauração ou cópia:

1. Marque o snapshot como privado.

1. Restaure o snapshot.

1. Faça upgrade da instância de banco de dados restaurada para uma versão de mecanismo compatível.

1. Crie um snapshot.

1. Compartilhe novamente o snapshot publicamente.

# Compartilhar snapshots criptografados para o Amazon RDS
<a name="share-encrypted-snapshot"></a>

É possível compartilhar snapshots de banco de dados que foram criptografados "em repouso" usando o algoritmo de criptografia AES-256, conforme descrito em [Criptografar recursos do Amazon RDS](Overview.Encryption.md).

As seguintes restrições se aplicam ao compartilhamento de snapshots criptografados:
+ Não é possível compartilhar snapshots criptografados como públicos.
+ Não é possível compartilhar snapshots do Oracle ou do Microsoft SQL Server criptografados usando Transparent Data Encryption (TDE).
+ Não é possível compartilhar um snapshot criptografado usando a chave do KMS padrão da Conta da AWS que compartilhou o snapshot.

  Para ter mais informações sobre o gerenciamento de chaves AWS KMS para o Amazon RDS, consulte [AWS KMS keyGerenciamento de](Overview.Encryption.Keys.md).

Para contornar o problema da chave do KMS padrão, realize as seguintes tarefas:

1. [Criar uma chave gerenciada pelo cliente e conceder acesso a ela](#share-encrypted-snapshot.cmk).

1. [Copiar e compartilhar o snapshot da conta de origem](#share-encrypted-snapshot.share).

1. [Copiar o snapshot compartilhado na conta de destino](#share-encrypted-snapshot.target).

## Criar uma chave gerenciada pelo cliente e conceder acesso a ela
<a name="share-encrypted-snapshot.cmk"></a>

Primeiro, você deve criar uma chave do KMS personalizada na mesma Região da AWS do snapshot de banco de dados criptografado. Ao criar a chave gerenciada pelo cliente, conceda acesso a ela a outra Conta da AWS.

**nota**  
Você também pode usar uma chave KMS de outra conta da AWS quando a política de chave concede acesso às contas de origem e de destino.

**Como criar uma chave gerenciada pelo cliente e conceder acesso a ela**

1. Faça login no Console de gerenciamento da AWS pela Conta da AWS de origem.

1. Abra o console do AWS KMS em [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Para alterar o Região da AWS, use o seletor de Região no canto superior direito da página.

1. No painel de navegação, escolha **Chaves gerenciadas pelo cliente**.

1. Escolha **Criar chave**.

1. Na página **Configurar chave**:

   1. Em **Tipo de chave**, selecione **Simétrico**.

   1. Em **Uso da chave**, selecione **Criptografar e descriptografar**.

   1. Expanda **Advanced options (Opções avançadas)**.

   1. Em **Origem do material de chaves**, selecione **KMS**.

   1. Em **Regionalidade**, selecione **Chave de região única**.

   1. Escolha **Próximo**.

1. Na página **Adicionar rótulos**:

   1. Para **Alias**, insira um nome de exibição para a chave do KMS, por exemplo, **share-snapshot**.

   1. (Opcional) Insira uma descrição para a chave do KMS.

   1. (Opcional) Adicione tags à chave do KMS.

   1. Escolha **Próximo**.

1. Na página **Definir permissões administrativas da chave**, escolha **Próximo**.

1. Na página **Definir permissões de uso da chave**:

   1. Em **Outras Contas da AWS**, selecione **Adicionar outra Conta da AWS**.

   1. Insira o ID da Conta da AWS à qual você deseja conceder acesso.

      É possível conceder acesso a várias Contas da AWS.

   1. Escolha **Próximo**.

1. Revise a chave do KMS e escolha **Concluir**.

## Copiar e compartilhar o snapshot da conta de origem
<a name="share-encrypted-snapshot.share"></a>

Depois, você deve copiar o snapshot de banco de dados de origem para um novo snapshot usando a chave gerenciada pelo cliente. Depois, você vai compartilhá-lo com a Conta da AWS de destino.

**Como copiar e compartilhar o snapshot**

1. Faça login no Console de gerenciamento da AWS pela Conta da AWS de origem.

1. 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 **Snapshots**.

1. Selecione o snapshot de banco de dados que você deseja copiar.

1. Para **Actions** (Ações), escolha **Copy Snapshot** (Copiar snapshot).

1. Na página **Copiar snapshot**:

   1. Em **Região de destino**, selecione a Região da AWS onde você criou a chave gerenciada pelo cliente no procedimento anterior.

   1. Digite o nome da cópia do snapshot de banco de dados em **Novo identificador de snapshot de banco de dados**.

   1. Para **AWS KMS key**, selecione a chave gerenciada pelo cliente que você criou.  
![\[Selecione a chave gerenciada pelo cliente.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/copy-encrypted-snapshot.png)

   1. Escolha **Copy snapshot (Copiar snapshot)**.

1. Quando a cópia do snapshot estiver disponível, selecione-a.

1. Em **Actions** (Ações), selecione **Share Snapshot **(Compartilhar snapshot).

1. Na página **Permissões de snapshot**:

   1. Insira o **ID da Conta da AWS** com a qual você está compartilhando a cópia do snapshot e selecione **Adicionar**.

   1. Escolha **Salvar**.

   O snapshot é compartilhado.

## Copiar o snapshot compartilhado na conta de destino
<a name="share-encrypted-snapshot.target"></a>

Agora você pode copiar o snapshot compartilhado na Conta da AWS de destino.

**Como copiar o snapshot compartilhado**

1. Faça login no Console de gerenciamento da AWS pela Conta da AWS de destino.

1. 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 **Snapshots**.

1. Selecione a guia **Compartilhado comigo**.

1. Selecione o snapshot compartilhado.

1. Para **Actions** (Ações), escolha **Copy Snapshot** (Copiar snapshot).

1. Escolha as configurações para copiar o snapshot como no procedimento anterior, mas use uma AWS KMS key que pertença à conta de destino.

   Escolha **Copy snapshot (Copiar snapshot)**.

# Interromper o compartilhamento de snapshots no Amazon RDS
<a name="share-snapshot-stop"></a>

Para parar de compartilhar um snapshot de banco de dados, é necessário remover a permissão da Conta da AWS de destino.

## Console
<a name="share-snapshot-stop.CON"></a>

**Como interromper o compartilhamento de um snapshot de banco de dados manual com uma Conta da AWS**

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 **Snapshots**.

1. Selecione o snapshot manual que você deseja interromper o compartilhamento.

1. Selecione **Actions** (Ações) e, depois, **Share Snapshot** (Compartilhar snapshot).

1. Para remover a permissão de uma Conta da AWS, selecione **Excluir** para o identificador da conta da AWS na lista de contas autorizadas.

1. Escolha **Salvar** para salvar as alterações.

## CLI
<a name="share-snapshot-stop.CLI"></a>

Para remover um identificador Conta da AWS na lista, use o parâmetro `--values-to-remove`.

**Example interrupção do compartilhamento do snapshot**  
O exemplo a seguir impede que o ID 444455556666 da Conta da AWS restaure o snapshot.  
Para Linux, macOS ou Unix:  

```
aws rds modify-db-snapshot-attribute \
--db-snapshot-identifier manual-snapshot1 \
--attribute-name restore \
--values-to-remove 444455556666
```
Para Windows:  

```
aws rds modify-db-snapshot-attribute ^
--db-snapshot-identifier manual-snapshot1 ^
--attribute-name restore ^
--values-to-remove 444455556666
```

## API do RDS
<a name="share-snapshot-stop.API"></a>

Para remover a permissão de compartilhamento de uma Conta da AWS, use a operação [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterSnapshotAttribute.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterSnapshotAttribute.html) com `AttributeName` definido como `restore` e o parâmetro `ValuesToRemove`. Para marcar um snapshot manual como privado, remova o valor `all` na lista de valores do atributo `restore`.