Compartilhar um snapshot do de banco de dados - Amazon Relational Database Service

Compartilhar um snapshot do de banco de dados

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 obter mais informações sobre como restaurar uma instância de banco de dados de um snapshot de banco de dados, consulte Restaurar a partir de um snapshot do de banco de dados.

Você pode compartilhar um snapshot manual com até 20 outras Contas da AWS.

As limitações a seguir se aplicam ao compartilhar 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.

    Nome da opção Persistente Permanente Mecanismo de banco de dados
    TDE Sim Não Microsoft SQL Server Enterprise Edition
    TDE Sim Sim Oracle Enterprise Edition
    Fuso horário Sim Sim

    Oracle Enterprise Edition

    Oracle Standard Edition

    Oracle Standard Edition One

    Oracle Standard Edition 2

    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 e Oracle Label Security.

  • Não é possível compartilhar um snapshot de um cluster de banco de dados multi-AZ.

Compartilhar um snapshot

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

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 AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Snapshots.

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

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

  5. Escolha uma das seguintes opções para DB snapshot visibility (Visibilidade do snapshot de banco de dados).

    • Se a fonte não estiver criptografada, selecione 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 selecione Privado para permitir que apenas as Contas da AWS que você especificar restaurem uma instância de banco de dados do 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 ter mais informações, consulte Compartilhamento de snapshots públicos.

    • 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 Compartilhamento de snapshots criptografados.

  6. 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
  7. 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.

Para compartilhar um DB snapshot, 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.

exemplo 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
exemplo 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\"]"
nota

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 (\).

Para listar as Contas da AWS habilitadas para restaurar um snapshot, utilize o comando describe-db-snapshot-attributes da AWS CLI.

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 ModifyDBSnapshotAttribute. 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 DescribeDBSnapshotAttributes da API.

Compartilhamento de snapshots públicos

Também é 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.

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

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/.

  2. No painel de navegação, escolha Snapshots.

  3. 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

É 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

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 mais informações, consulte:

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.

  2. Restaure o snapshot.

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

  4. Crie um snapshot.

  5. Compartilhe novamente o snapshot publicamente.

Compartilhamento de snapshots criptografados

É 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.

As seguintes restrições se aplicam ao compartilhamento de snapshots criptografados:

  • Você não pode 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 contornar o problema da chave do KMS padrão, realize as seguintes tarefas:

Criar uma chave gerenciada pelo cliente e conceder acesso a ela

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.

Como criar uma chave gerenciada pelo cliente e conceder acesso a ela
  1. Faça login no AWS Management Console pela Conta da AWS de origem.

  2. Abra o console do AWS KMS em https://console.aws.amazon.com/kms.

  3. Para alterar a Região da AWS, use o seletor de regiões no canto superior direito da página.

  4. No painel de navegação, escolha Customer managed keys (Chaves gerenciadas pelo cliente).

  5. Escolha Create key (Criar chave).

  6. Na página Configurar chave:

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

    2. Em Uso da chave, selecione Criptografar e descriptografar.

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

    4. Em Origem do material de chaves, selecione KMS.

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

    6. Escolha Próximo.

  7. Na página Adicionar rótulos:

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

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

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

    4. Escolha Próximo.

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

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

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

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

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

    3. Escolha Próximo.

  10. Revise a chave do KMS e escolha Concluir.

Copiar e compartilhar o snapshot da conta de origem

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 AWS Management Console pela Conta da AWS de origem.

  2. Abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  3. No painel de navegação, escolha Snapshots.

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

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

  6. 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.

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

    3. Para AWS KMS key, selecione a chave gerenciada pelo cliente que você criou.

      
                                    Selecione a chave gerenciada pelo cliente.
    4. Escolha Copy snapshot (Copiar snapshot).

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

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

  9. 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.

    2. Escolha Salvar.

    O snapshot é compartilhado.

Copiar o snapshot compartilhado na conta de destino

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

Como copiar o snapshot compartilhado
  1. Faça login no AWS Management Console pela Conta da AWS de destino.

  2. Abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  3. No painel de navegação, escolha Snapshots.

  4. Selecione a guia Compartilhado comigo.

  5. Selecione o snapshot compartilhado.

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

  7. 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 do snapshot

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

Como interromper o compartilhamento de um snapshot de banco de dados manual com uma Conta da AWS
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Snapshots.

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

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

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

  6. Escolha Salvar para salvar as alterações.

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

exemplo 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

Para remover a permissão de compartilhamento de uma Conta da AWS, use a operação ModifyDBSnapshotAttribute 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.