Copiar um snapshot de banco de dados do Amazon RDS Custom para SQL Server - Amazon Relational Database Service

Copiar um snapshot de banco de dados do Amazon RDS Custom para SQL Server

Com o RDS Custom para SQL Server, é possível copiar snapshots de banco de dados manuais ou backups automatizados. Depois de copiar um snapshot, a cópia é um snapshot manual. É possível fazer várias cópias de um backup automatizado ou um snapshot manual, mas cada cópia deve ter um identificador exclusivo.

Só é possível copiar um snapshot na mesma conta AWS em diferentes Regiões da AWS em que o RDS Custom para SQL Server está disponível. No momento, os seguintes operadores não são aceitos:

  • Copiar snapshots de banco de dados na mesma Região da AWS.

  • Copiar snapshots de banco de dados entre contas AWS.

O RDS Custom para SQL Server é compatível com cópia de snapshot incremental. Para ter mais informações, consulte Considerações sobre a cópia de snapshots incrementais.

Limitações

As seguintes limitações se aplicam à cópia de um snapshot de banco de dados para o RDS Custom para SQL Server:

  • Se você excluir um snapshot de origem antes que o snapshot de destino fique disponível, a cópia do snapshot poderá falhar. Verifique se o snapshot de destino tem o status AVAILABLE antes de excluir um snapshot de origem.

  • Não é possível especificar um nome de grupo de opções nem copiar um grupo de opções em sua solicitação de cópia do snapshot de banco de dados.

  • Se você excluir qualquer recurso dependente da AWS do DB snapshot de banco de dados de origem antes ou durante o processo de cópia, sua solicitação de cópia do snapshot poderá falhar de forma assíncrona.

  • Atualmente, não é possível copiar snapshots de banco de dados na mesma Região da AWS.

  • Atualmente, não é possível copiar snapshots de banco de dados entre contas AWS.

As limitações à cópia de um snapshot de banco de dados para Amazon RDS também se aplicam ao RDS Custom para SQL Server. Para ter mais informações, consulte Limitações.

Lidar com a criptografia

Todas as instâncias e snapshots de banco de dados do RDS Custom para SQL Server são criptografados com chaves do KMS. Só é possível copiar um snapshot criptografado em um snapshot criptografado, portanto, é necessário especificar uma chave do KMS válida na Região da AWS de destino para a solicitação de cópia do snapshot de banco de dados.

O snapshot de origem permanece criptografado ao longo do processo de cópia. O Amazon RDS usa criptografia envelopada para proteger os dados durante a operação de cópia com a chave do KMS da Região da AWS de destino especificada. Para obter mais informações, consulte Criptografia envelopada no Guia do desenvolvedor do AWS Key Management Service.

Cópia entre regiões

É possível copiar snapshots de banco de dados entre Regiões da AWS. No entanto, existem certas restrições e considerações para a cópia de snapshot entre regiões.

Autorizar o RDS a se comunicar entre Regiões da AWS para cópia de snapshots

Depois que uma solicitação de cópia de snapshot de banco de dados entre Regiões é processada com êxito, o RDS inicia a cópia. Uma solicitação de autorização para o RDS acessar o snapshot de origem é criada. Essa solicitação de autorização vincula o snapshot de banco de dados de origem ao snapshot de banco de dados de destino. Isso permite que o RDS copie apenas no snapshot de destino especificado.

O RDS verifica a autorização usando a permissão rds:CrossRegionCommunication no perfil do IAM vinculado ao serviço. Se a cópia for autorizada, o RDS poderá se comunicar com a Região de origem e concluirá a operação de cópia.

O RDS não tem acesso a snapshots de banco de dados que não foram autorizados anteriormente por uma solicitação de CopyDBSnapshot. A autorização é revogada quando a cópia é concluída.

O RDS usa a função vinculada ao serviço para verificar a autorização na região de origem. A cópia falhará se você excluir o perfil vinculado ao serviço durante o processo de cópia.

Para ter mais informações, consulte Usar perfis vinculados ao serviço no Guia do usuário do AWS Identity and Access Management.

Uso de credenciais do AWS Security Token Service

Os tokens de sessão do endpoint global do AWS Security Token Service (AWS STS) são válidos apenas nas Regiões da AWS habilitadas por padrão (regiões comerciais). Se você usar credenciais da operação da API assumeRole no AWS STS, use o endpoint regional se a região de origem for uma região de aceitação. Caso contrário, haverá falha na solicitação. Suas credenciais devem ser válidas nas duas regiões, o que é verdadeiro para regiões opcionais somente quando o endpoint regional do AWS STS é usado.

Para usar o endpoint global, certifique-se de que ele esteja ativado para ambas as regiões nas operações. Defina o endpoint global como Valid em todas as Regiões da AWS nas configurações da conta AWS STS.

Para ter mais informações, consulte Gerenciar o AWS STS em uma Região da AWS no Guia do usuário do AWS Identity and Access Management.

Snapshots de instâncias de banco de dados criadas com versões personalizadas do mecanismo (CEV)

Para um snapshot de banco de dados de uma instância de banco de dados que use uma versão personalizada do mecanismo (CEV), o RDS associa a CEV ao snapshot de banco de dados. Para copiar um snapshot de banco de dados de origem associado a uma CEV entre Regiões da AWS, o RDS copia a CEV junto com o snapshot de banco de dados de origem na região de destino.

Se você estiver copiando vários snapshots de banco de dados associados à mesma CEV na mesma região de destino, a primeira solicitação de cópia copia a CEV associada. O processo de cópia das solicitações a seguir localiza a CEV inicialmente copiada e a associa às cópias do snapshot de banco de dados a seguir. A cópia de CEV existente deve estar no estado AVAILABLE para ser associada às cópias do snapshot de banco de dados.

Para copiar um snapshot de banco de dados associado a uma CEV, a política do IAM do solicitante deve ter as permissões para autorizar tanto a cópia do snapshot de banco de dados quanto a cópia da CEV associada. As seguintes permissões são necessárias na política do IAM do solicitante para permitir a cópia associada da CEV:

  • rds:CopyCustomDBEngineVersion: a entidade principal do IAM do solicitante precisa ter a permissão para copiar a CEV de origem na região de destino junto com o snapshot de banco de dados de origem. A solicitação de cópia do snapshot falhará devido a erros de autorização se a entidade principal do IAM do solicitante não estiver autorizada a copiar a CEV de origem.

  • ec2:CreateTags: a AMI do EC2 subjacente da CEV de origem é copiada na região de destino como parte da cópia da CEV. O RDS Custom tenta marcar a AMI com a tag AWSRDSCustom antes de copiar a AMI. A entidade principal do IAM do solicitante deve ter permissão para criar a tag na AMI subjacente à CEV de origem na região de origem.

Para ter mais informações sobre permissões de cópia da CEV, consulte Conceder as permissões necessárias à sua entidade principal do IAM.

Conceder as permissões necessárias à sua entidade principal do IAM

Verifique se você tem acesso suficiente para copiar um snapshot de banco de dados do RDS Custom para SQL Server. O perfil ou o usuário do IAM (conhecido como a entidade principal do IAM) para copiar um snapshot de banco de dados usando o console ou a CLI deve ter uma das seguintes políticas para a criação bem-sucedida de uma instância de banco de dados:

  • A política AdministratorAccess ou,

  • A política do AmazonRDSFullAccess mostra as seguintes permissões adicionais:

    s3:CreateBucket s3:GetBucketPolicy s3:PutBucketPolicy kms:CreateGrant kms:DescribeKey ec2:CreateTags

O RDS Custom usa essas permissões durante a cópia do snapshot entre Regiões da AWS. Essas permissões configuram recursos em sua conta que são necessários para operações do RDS Custom. Para ter mais informações sobre a permissão kms:CreateGrant, consulte Gerenciamento de AWS KMS key.

O exemplo de política JSON a seguir concede as permissões necessárias além da política AmazonRDSFullAccess.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateS3BucketAndReadWriteBucketPolicy", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": "arn:aws:s3:::do-not-delete-rds-custom-*" }, { "Sid": "CreateKmsGrant", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "CreateEc2Tags", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "*" } ] }
nota

As permissões listadas não devem ser restritas por políticas de controle de serviço (SCPs), limites de permissão nem políticas de sessão associadas à entidade principal do IAM.

Se você usar condições com chaves de contexto na política do IAM do solicitante, determinadas condições poderão fazer com que a solicitação falhe. Para ter mais informações sobre dificuldades comuns causadas pelas condições da política do IAM, consulte Solicitações de cópia de snapshot de banco de dados entre regiões.

Copiar um snapshot de banco de dados

Use o procedimento a seguir para copiar um snapshot de banco de dados. Para cada conta da AWS, é possível copiar até 20 snapshots de banco de dados ao mesmo tempo de uma Região da AWS em outra. Se copiar um snapshot de banco de dados para outra Região da AWS, você criará um snapshot de banco de dados manual que será retido nessa Região da AWS. Copiar um snapshot de banco de dados fora da Região da AWS de origem resultará em cobranças de transferência de dados do Amazon RDS. Para obter mais informações sobre a definição de preço da transferência de dados, consulte Definição de preço do Amazon RDS.

Depois que a cópia do snapshot de banco de dados tiver sido criada na nova Região da AWS, ela se comportará da mesma forma como todos os outros snapshots de banco de dados nessa Região da AWS.

É possível copiar um snapshot de banco de dados usando o AWS Management Console, a AWS CLI ou a API do Amazon RDS.

Console

O procedimento a seguir copia um snapshot de banco de dados do RDS Custom para SQL Server usando o AWS Management Console.

  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 de banco de dados do RDS Custom para SQL Server que você deseja copiar.

  4. No menu suspenso Ações, escolha Copiar snapshot.

    A página Copiar snapshot no console do Amazon RDS. As configurações são carregadas na página.
  5. Para copiar o snapshot de banco de dados em uma Região da AWS diferente, defina Região de destino como o valor exigido.

    nota

    A Região da AWS de destino deve ter a mesma versão de mecanismo de banco de dados disponível que a Região da AWS de origem.

  6. Em Novo identificador de snapshot de banco de dados, digite um nome exclusivo para o snapshot de banco de dados. É possível fazer várias cópias de um backup automatizado ou snapshot manual, mas cada cópia deve ter um identificador exclusivo.

  7. (Opcional) Selecione Copy Tags (Copiar tags) para copiar tags e valores do snapshot para a cópia do snapshot.

  8. Em Criptografia, especifique o identificador da chave do KMS a ser usado para criptografar a cópia do snapshot de banco de dados.

    nota

    O RDS Custom para SQL Server criptografa todos os snapshots de banco de dados. Não é possível criar um snapshot de banco de dados não criptografado.

  9. Escolha Copy snapshot (Copiar snapshot).

O RDS Custom para SQL Server cria uma cópia do snapshot de banco de dados da instância de banco de dados na Região da AWS selecionada.

AWS CLI

É possível copiar um snapshot de banco de dados do RDS Custom para SQL Server usando o comando copy-db-snapshot da AWS CLI. Se você estiver copiando o snapshot para uma nova Região da AWS, execute o comando na nova Região da AWS. As seguintes opções são usadas para copiar um snapshot de banco de dados. Nem todas as opções são necessárias para todos os cenários.

  • --source-db-snapshot-identifier: o identificador do snapshot de banco de dados de origem.

    • Se o snapshot de origem estiver em uma Região da AWS diferente da cópia, especifique um ARN válido do snapshot de banco de dados. Por exemplo, arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678.

  • --target-db-snapshot-identifier: o identificador da nova cópia do snapshot de banco de dados.

  • --kms-key-id: o identificador da chave do KMS para um snapshot do banco de dados criptografado. O identificador da chave do KMS é o nome do recurso da Amazon (ARN), o identificador de chave ou o alias da chave da chave do KMS.

    • Ao copiar um snapshot criptografado para outra Região da AWS, você deve especificar uma chave do KMS para a Região da AWS de destino. As chaves do KMS são específicas da Região da AWS em que são criadas. Não é possível usar chaves de criptografia de uma Região da AWS em outra Região da AWS, a menos que uma chave de várias Regiões seja usada. Para obter mais informações sobre chaves do KMS de várias regiões, consulte Usar chaves de várias regiões no AWS KMS.

  • --copy-tags: Inclua as tags e os valores do snapshot de origem na cópia do snapshot.

As seguintes opções não aceitam a cópia de um snapshot de banco de dados do RDS Custom para SQL Server:

  • --copy-option-group

  • --option-group-name

  • --pre-signed-url

  • --target-custom-availability-zone

O exemplo de código a seguir copia um snapshot de banco de dados criptografado da Região Oeste dos EUA (Oregon) para a Região Leste dos EUA (N. da Virgínia). Execute o comando na região de destino (us-east-1).

Para Linux, macOS ou Unix:

aws rds copy-db-snapshot \ --region us-east-1 \ --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678 \ --target-db-snapshot-identifier mydbsnapshotcopy \ --kms-key-id a1b2c3d4-1234-5678-wxyz-a1b2c3d4d5e6

Para Windows:

aws rds copy-db-snapshot ^ --region us-east-1 ^ --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678 ^ --target-db-snapshot-identifier mydbsnapshotcopy ^ --kms-key-id a1b2c3d4-1234-5678-wxyz-a1b2c3d4d5e6
RDS API

É possível copiar um snapshot de banco de dados do RDS Custom para SQL Server usando a operação CopyDBSnapshot da API do Amazon RDS. Se estiver copiando o snapshot para uma nova Região da AWS, execute a ação na nova Região da AWS. As seguintes opções são usadas para copiar um snapshot de banco de dados. Nem todos os parâmetros são obrigatórios:

  • SourceDBSnapshotIdentifier: o identificador do snapshot de banco de dados de origem.

    • Se o snapshot de origem estiver em uma Região da AWS diferente da cópia, especifique um ARN válido do snapshot de banco de dados. Por exemplo, arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678.

  • TargetDBSnapshotIdentifier: o identificador da nova cópia do snapshot de banco de dados.

  • KmsKeyId: o identificador da chave do KMS de um snapshot do banco de dados criptografado. O identificador da chave do KMS é o nome do recurso da Amazon (ARN), o identificador de chave ou o alias da chave da chave do KMS.

    • Ao copiar um snapshot criptografado para outra Região da AWS, você deve especificar uma chave do KMS para a Região da AWS de destino. As chaves do KMS são específicas da Região da AWS em que são criadas. Não é possível usar chaves de criptografia de uma Região da AWS em outra Região da AWS, a menos que uma chave de várias Regiões seja usada. Para obter mais informações sobre chaves do KMS de várias regiões, consulte Usar chaves de várias regiões no AWS KMS.

  • CopyTags: defina esse parâmetro como true para copiar tags e valores do snapshot de origem na cópia do snapshot. O padrão é false.

As seguintes opções não aceitam a cópia de um snapshot de banco de dados do RDS Custom para SQL Server:

  • CopyOptionGroup

  • OptionGroupName

  • PreSignedUrl

  • TargetCustomAvailabilityZone

O código a seguir cria uma cópia de um snapshot, com o novo nome mydbsnapshotcopy, na região Leste dos EUA (N. da Virgínia).

https://rds.us-east-1.amazonaws.com/ ?Action=CopyDBSnapshot &KmsKeyId=a1b2c3d4-1234-5678-wxyz-a1b2c3d4d5e6 &SourceDBSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-west-2%3A123456789012%3Asnapshot%3Ainstance1-snapshot-12345678 &TargetDBSnapshotIdentifier=mydbsnapshotcopy &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request &X-Amz-Date=20161117T221704Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=da4f2da66739d2e722c85fcfd225dc27bba7e2b8dbea8d8612434378e52adccf