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.

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 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 que é dona desse snapshot.

Visualização de snapshots públicos pertencentes à 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

Você pode usar o seguinte comando da AWS CLI (somente Unix) para visualizar os snapshots públicos pertencentes à sua conta da AWS em uma determinada região da AWS.

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 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. Para fazer isso, siga as seguintes etapas:

  1. Compartilhe a AWS KMS key que foi usada para criptografar o snapshot com todas as contas às quais você deseja permitir acesso ao snapshot.

    É possível compartilhar chaves do KMS com outra conta da AWS adicionando a outra conta à política de chaves do KMS. Para obter mais detalhes sobre a atualização de uma política de chaves, consulte Políticas de chave no Guia do desenvolvedor do AWS KMS. Para ver um exemplo de como criar uma política de chaves, consulte Como permitir acesso a uma AWS KMS key, mais adiante neste tópico.

  2. Use o AWS Management Console, a AWS CLI ou a API do Amazon RDS para compartilhar o snapshot criptografado com outras contas.

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

  • Não é possível compartilhar snapshots criptografados como públicos.

  • Não é possível compartilhar um snapshot que foi criptografado usando a chave do KMS de criptografia padrão da conta da AWS que compartilhou o snapshot.

Como permitir acesso a uma AWS KMS key

Para que outra conta da AWS possa copiar um snapshot do cluster de banco de dados criptografado compartilhado de sua conta, a conta com a qual você compartilhar o snapshot deverá ter acesso à AWS KMS key que criptografou o snapshot.

Para permitir que outra conta da AWS acesse uma chave do KMS, atualize a política de chaves da chave do KMS. Você pode fazer uma atualização com o nome do recurso da Amazon (ARN) da conta da AWS com a qual você está compartilhando como Principal na política de chaves do KMS. Em seguida, você permite a ação kms:CreateGrant.

Depois que você conceder a uma conta da AWS acesso à sua chave do KMS, para que essa conta da AWS possa copiar o seu snapshot criptografado, ela deverá criar uma função ou usuário (IAM) do AWS Identity and Access Management, se ainda não tiver uma/um. Além disso, essa conta da AWS também deverá anexar uma política do IAM a esse perfil do IAM ou um conjunto de permissões que permita que o perfil ou usuário copie um snapshot de cluster de banco de dados criptografado usando a sua chave do KMS. A conta deverá ser um usuário e não poderá ser uma identidade de conta raiz AWS devido às restrições de segurança do AWS KMS.

No exemplo de política de chaves a seguir, o usuário 111122223333 é o proprietário da chave do KMS, e o usuário 444455556666 é a conta com a qual a chave está sendo compartilhada. Essa atualização da política de chaves concede à conta da AWS acesso à chave do KMS ao incluir o ARN da identidade de conta raiz da AWS ao usuário 444455556666 como Principal na política e ao permitir a ação kms:CreateGrant.

{ "Id": "key-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KeyUser", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KeyUser", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} } ] }

Criar uma política do IAM para permitir a cópia do snapshot criptografado

Quando a conta da AWS externa já tiver acesso à sua chave do KMS, o proprietário dessa conta da AWS poderá criar uma política que permite que um usuário criado para essa conta copie um snapshot criptografado com essa chave do KMS.

O exemplo a seguir mostra uma política que pode ser anexada a um usuário para a conta 444455556666 da AWS, o que habilita o usuário a copiar um snapshot compartilhado pela conta 111122223333 da AWS e que foi criptografado com a chave do KMS c989c1dd-a3f2-4a5d-8d96-e793d082ab26 na região us-west-2.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUseOfTheKey", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant" ], "Resource": ["arn:aws:kms:us-west-2:111122223333:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"] }, { "Sid": "AllowAttachmentOfPersistentResources", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["arn:aws:kms:us-west-2:111122223333:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ] }

Para obter mais detalhes sobre a atualização de uma política de chaves, consulte Políticas de chave no Guia do desenvolvedor do AWS KMS.

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é 20 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, escolha Public (Pública) 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 Private (Privado) para permitir que apenas as contas da AWS que você especificar restaurem um cluster de banco de dados do seu snapshot manual de cluster de banco de dados.

      Atenção

      Se você definir DB snapshot visibility (Visibilidade do snapshot do banco de dados) como Public (Pública), 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 seus dados. Não compartilhe nenhum snapshot de cluster de banco de dados manual que contenha informações privadas, como Public (Público).

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

  6. Para AWS Account ID (ID de conta da AWS), digite o identificador de conta à qual você deseja conceder permissão para restaurar um cluster de banco de dados do seu snapshot manual e escolha Add (Adicionar). Repita a operação para incluir outros identificadores de contas da AWS, até chegar ao limite de 20 contas da AWS.

    Se você errar ao adicionar o identificador de conta da AWS à lista de contas permitidas, saiba que é possível excluí-lo da lista escolhendo Delete à 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, escolha Save para salvar as alterações.

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, escolha Delete para o identificador dessa conta da AWS na lista de contas autorizadas.

    
						Permitir que contas da AWS restaurem um snapshot manual de cluster de banco de dados
  6. Escolha Save (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 de conta daAWS, 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 remover um identificador de 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 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 público o snapshot manual e para fazer com que ele possa ser restaurado por todas as contas AWS, use o valor all. No entanto, tome cuidado para não adicionar o valor all a nenhum snapshot manual que contém informações privadas que você 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 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.

Para listar todas as contas da AWS que têm permissão para restaurar um snapshot, utilize a operação DescribeDBClusterSnapshotAttributes da API.