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

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

Compartilhar um snapshot do de banco de dados

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

  • Compartilhar um snapshot manual de banco de dados, seja criptografado ou não, permite às contas da AWS autorizadas copiarem o snapshot.

  • Compartilhar um snapshot de banco de dados manual não criptografado permite às contas da AWS autorizadas restaurarem diretamente uma instância de banco de dados a partir do snapshot em vez de fazer uma cópia dele e restaurar a partir daí. 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 automatizado de banco de dados, crie um snapshot manual 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 . Para obter mais informações sobre a restauração de uma instância de banco de dados a partir de um snapshot de banco de dados, consulte Restauração a partir de um snapshot de um de banco de dados.

Você pode compartilhar um snapshot manual com até 20 outras contas da AWS. Também é possível compartilhar um snapshot manual não criptografado como público, disponibilizando-o para todas as contas da AWS. Ao fazer isso, tome cuidado para que suas informações privadas não estejam incluídas nos snapshots públicos.

Você pode usar o seguinte comando AWS CLI (somente Unix) para localizar os snapshots públicos da sua 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 é 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.

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 a partir de um snapshot compartilhado usando a AWS Command Line Interface (AWS CLI) ou a API do Amazon RDS, é necessário especificar o nome de 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 ou OLS (ou ambas).

    Não é possível remover a opção permanente de um grupo de opções. Não é possível remover grupos de opções contendo opções persistentes de uma instância de banco de dados após o grupo de opções já ter 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 Two

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.

Compartilhar um snapshot criptografado

Você pode compartilhar snapshots criptografados “em repouso” de banco de dados usando o algoritmo de criptografia AES-256, conforme descrito em Criptografar recursos do Amazon RDS. Para fazer isso, você deve seguir as seguintes etapas:

  1. Compartilhe a chave mestra do cliente (CMK) do AWS Key Management Service (AWS KMS) que foi usada para criptografar o snapshot com todas as contas as quais você querer acessar o snapshot.

    É possível compartilhar CMKs do AWS KMS com outra conta da AWS adicionando a outra conta à política de chaves do AWS 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 Permitir acesso a uma chave mestra do cliente (CMK) do AWS KMS, mais adiante neste tópico.

  2. Use Console de gerenciamento da AWS, 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 snapshots do Oracle ou do Microsoft SQL Server criptografados usando Transparent Data Encryption (TDE).

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

Permitir acesso a uma chave mestra do cliente (CMK) do AWS KMS

Para que outra conta da AWS possa copiar um snapshot de banco de dados criptografado compartilhado na sua conta, a conta que você usar para compartilhar o snapshot deverá ter acesso à chave mestra do cliente (CMK) do AWS KMS usada para criptografar o snapshot. Para permitir o acesso de outra conta da AWS a uma CMK do AWS KMS, atualize a política de chaves da CMK do AWS KMS com o ARN da conta da AWS com a qual você está compartilhando como Principal na política de chaves do AWS KMS e permita a ação kms:CreateGrant.

Depois que você conceder a uma conta da AWS acesso à sua CMK do AWS KMS, será necessário que essa conta da AWS crie um usuário do AWS Identity and Access Management (IAM), se ainda não tiver um, para copiar o snapshot criptografado. Além disso, essa conta da AWS também deverá vincular uma política do IAM ao usuário do IAM para permitir a cópia de um snapshot de banco de dados criptografado usando sua CMK do AWS KMS. A conta deverá ser um usuário do IAM e não poderá ser uma identidade de conta raiz da AWS devido a 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 CMK do AWS 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 à CMK do AWS KMS ao incluir o ARN da identidade de conta raiz da AWS do 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 mestra do cliente (CMK) do AWS KMS, o proprietário dessa conta da AWS poderá criar uma política que permita que um usuário do IAM criado para essa conta copie um snapshot criptografado com a CMK do AWS KMS.

O exemplo a seguir mostra uma política que pode ser vinculada a um usuário do IAM para a conta da AWS 444455556666, permitindo que o usuário do IAM copie um snapshot compartilhado a partir da conta da AWS 111122223333 e que foi criptografado com a CMK do AWS 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 banco de dados usando o Console de gerenciamento da AWS, a AWS CLI ou a API do RDS.

Usando o console do Amazon RDS, você pode compartilhar um snapshot manual 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 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/.

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

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

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

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

    • Se a origem não estiver criptografada, escolha Public (Público) para permitir que todas as contas da AWS restaurem uma instância de banco de dados a partir do seu snapshot manual de banco de dados ou escolha Private (Privado) para permitir apenas contas da AWS que você especificar para restaurar uma instância de banco de dados a partir do seu snapshot manual de banco de dados.

      Atenção

      Se você definir snapshot de banco de dados visibility (Visibilidade do snapshot de banco de dados) como Public (Público), todas as contas da AWS poderão restaurar uma instância de banco de dados a partir do snapshot manual de banco de dados e ter acesso aos seus dados. Não compartilhe nenhum snapshot manual de banco de dados que contenha informações privadas, como Public (Público).

    • Se a origem estiver criptografada, snapshot de banco de dados visibility (Visibilidade do snapshot de banco de dados) é definida como Private (Privado) 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 da conta da AWS à qual você deseja conceder a permissão para restaurar uma instância de banco de dados a partir do seu snapshot manual e, em seguida, selecione Add (Adicionar). Repita a operação para incluir outros identificadores de contas da AWS, até chegar ao limite de 20 contas.

    Se você errar ao adicionar o identificador de uma conta da AWS à lista de contas permitidas, saiba que é possível excluí-lo da lista escolhendo Delete à direita do identificador da conta da AWS incorreto.

    
							Permitir que contas da AWS restaurem um snapshot manual  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 Save para salvar as alterações.

Para interromper o compartilhamento de um snapshot manual de banco de dados 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/.

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

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

  4. Escolha Actions (Ações) e, em seguida, escolha Share Snapshot (Compartilhar snapshot).

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

    
						Permitir que contas da AWS restaurem um snapshot manual  de banco de dados
  6. Selecione Salvar para salvar as alterações.

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.

exemplo compartilhamento de um snapshot com uma única conta

O exemplo a seguir permite que o identificador de conta da AWS 123456789012 restaure o snapshot de 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 de conta da AWS, 111122223333 e 444455556666, restaurem o snapshot de 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 remover um identificador de conta da AWS da 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 listar as contas da AWS habilitadas para restaurar um snapshot, use o comando describe-db-snapshot-attributes da AWS CLI.

Também é possível compartilhar um snapshot manual de banco de dados 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 público o snapshot manual e para fazer com que ele possa ser restaurado 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 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 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.

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