Compartilhar um snapshot do cluster de banco de dados - Amazon Aurora

Compartilhar um snapshot do cluster de banco de dados

Com o Amazon RDS, você pode compartilhar um snapshot manual do cluster de banco de dados das seguintes formas:

  • O compartilhamento de um snapshot manual de cluster de banco de dados, seja criptografado ou não, permite que as contas da AWS autorizadas copiem o snapshot.

  • Compartilhar um snapshot de cluster de banco de dados manual, criptografado ou não, permite às contas da AWS autorizadas restaurarem diretamente um cluster de banco de dados a partir do snapshot em vez de fazer uma cópia dele e restaurar a partir daí.

nota

Para compartilhar um snapshot automatizado do cluster de banco de dados, crie um snapshot manual do cluster de banco de dados copiando o snapshot automatizado e, em seguida, 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 cluster de banco de dados. Para obter mais informações sobre como restaurar uma instância de banco de dados de um snapshot de cluster de banco de dados, consulte Restauração de um snapshot de um cluster de banco de dados.

Para obter mais informações sobre a restauração de um cluster de banco de dados a partir de um snapshot de cluster de banco de dados, consulte Visão geral do backup e da restauração de um cluster de banco de dados do Aurora.

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

Ao compartilhar snapshots manuais com outras Contas da AWS, a seguinte limitação é aplicada:

  • Ao restaurar um cluster 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.

Compartilhar um snapshot

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

Usando o console do Amazon RDS, é possível compartilhar um snapshot manual de cluster de banco de dados 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 cluster 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 origem não estiver criptografada, selecione Público para permitir que todas as Contas da AWS restaurem um cluster de banco de dados de um snapshot manual de cluster de banco de dados, ou escolha Privado para permitir que apenas as Contas da AWS especificadas restaurem um cluster de banco de dados do snapshot manual de cluster de banco de dados.

      Atenção

      Se você definir Visibilidade do snapshot do banco de dados como Público, todas as Contas da AWS poderão restaurar um cluster de banco de dados de um snapshot manual de cluster de banco de dados e ter acesso aos dados. Não compartilhe nenhum snapshot de cluster de banco de dados manual que contenha informações privadas, como Public (Público).

      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. Para ID da conta da AWS, digite o identificador da Conta da AWS à qual você deseja conceder permissão para restaurar um cluster de banco de dados do snapshot manual e, depois, 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 manual de cluster de banco de dados
  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 snapshot de cluster de banco de dados, utilize o comando aws rds modify-db-cluster-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 da Conta da AWS, 123456789012, restaure o snapshot de cluster de banco de dados chamado cluster-3-snapshot.

Para Linux, macOS ou Unix:

aws rds modify-db-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier cluster-3-snapshot \ --attribute-name restore \ --values-to-add 123456789012

Para Windows:

aws rds modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier cluster-3-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 de Conta da AWS, 111122223333 e 444455556666, restaurem o snapshot de cluster de banco de dados chamado manual-cluster-snapshot1.

Para Linux, macOS ou Unix:

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

Para Windows:

aws rds modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier manual-cluster-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-cluster-snapshot-attributes da AWS CLI.

Também é possível compartilhar um snapshot manual de cluster de banco de dados com outras Contas da AWS usando a API do Amazon RDS. Para fazer isso, chame a operação ModifyDBClusterSnapshotAttribute. 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 DescribeDBClusterSnapshotAttributes da API.

Compartilhamento de snapshots públicos

É 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 permite que todas as Contas da AWS copiem o snapshot e criem clusters 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 você criar um cluster de banco de dados de um snapshot público, esse cluster de banco de dados será cobrado. Para obter informações sobre a definição de preço do Amazon Aurora, consulte a página Definição de preço do Aurora.

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

É possível visualizar snapshots públicos pertencentes a outras contas em uma Região da AWS específica na guia 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 Região da AWS específica.

aws rds describe-db-cluster-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.

"DBClusterSnapshotArn": "arn:aws:rds:us-west-2:123456789012:cluster-snapshot:myclustersnapshot1", "DBClusterSnapshotArn": "arn:aws:rds:us-west-2:123456789012:cluster-snapshot:myclustersnapshot2",

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. Para disponibilizar o snapshot público não compatível existente para restauração ou cópia, execute as seguintes etapas:

  1. Marque o snapshot como privado.

  2. Restaure o snapshot.

  3. Faça upgrade do cluster de banco de dados restaurado para uma versão de mecanismo compatível.

  4. Crie um snapshot.

  5. Compartilhe novamente o snapshot publicamente.

Compartilhamento de snapshots criptografados

Você pode compartilhar snapshots do cluster de banco de dados que foram criptografados "em repouso" usando o algoritmo de criptografia AES-256, conforme descrito em Criptografar recursos do Amazon Aurora.

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 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 do cluster 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 do cluster 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 cluster de banco de dados a ser copiado.

  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 cluster de banco de dados em New DB Snapshot Identifier (Novo identificador de DB snapshot).

    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 cluster de banco de dados, é necessário remover a permissão da Conta da AWS de destino.

Como interromper o compartilhamento de um snapshot manual de cluster de banco de dados 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-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier manual-cluster-snapshot1 \ --attribute-name restore \ --values-to-remove 444455556666

Para Windows:

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

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