复制 Amazon RDS Custom for SQL Server 数据库快照 - Amazon Relational Database Service

复制 Amazon RDS Custom for SQL Server 数据库快照

使用 RDS Custom for SQL Server,可以复制自动备份和手动数据库快照。复制快照后,您创建的副本为手动快照。可以创建自动备份或手动快照的多个副本,但每个副本必须具有唯一的标识符。

只能在 RDS Custom for SQL Server 可用的不同 AWS 区域中复制同一 AWS 账户中的快照。目前不支持以下操作:

  • 在同一个 AWS 区域中复制数据库快照。

  • 跨 AWS 账户复制数据库快照。

RDS Custom for SQL Server 支持增量快照复制。有关更多信息,请参阅 增量快照复制

限制

以下限制适用于复制 RDS Custom for SQL Server 的数据库快照:

  • 如果您在目标快照可用之前删除了源快照,则快照复制会失败。在删除源快照之前,请确保目标快照的状态为 AVAILABLE

  • 不能在数据库快照复制请求中指定选项组名称或复制选项组。

  • 如果在复制过程之前或期间删除源数据库快照的任何相关 AWS 资源,则复制快照请求可能会异步失败。

  • 目前不支持在同一 AWS 区域中复制数据库快照。

  • 目前不支持跨 AWS 账户复制数据库快照。

复制 Amazon RDS 的数据库快照的限制也适用于 RDS Custom for SQL Server。有关更多信息,请参阅 限制

处理加密

所有 RDS Custom for SQL Server 数据库实例和数据库快照都使用 KMS 密钥进行加密。只能将加密快照复制到加密快照,因此,必须为数据库快照复制请求指定在目标 AWS 区域中有效的 KMS 密钥。

源快照在复制过程中保持加密状态。Amazon RDS 使用信封加密,来在复制操作期间通过指定的目标 AWS 区域 KMS 密钥保护数据。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的信封加密

跨区域复制

您可以跨 AWS 区域复制数据库快照。但是,跨区域快照复制具有某些限制和注意事项。

授权 RDS 跨 AWS 区域通信以进行快照复制

成功处理跨区域数据库快照复制请求后,RDS 将开始复制。此时将创建供 RDS 访问源快照的授权请求。此授权请求将源数据库快照链接到目标数据库快照。这支持 RDS 仅复制到指定的目标快照。

RDS 使用服务相关的 IAM 角色中的 rds:CrossRegionCommunication 权限对授权进行验证。如果复制操作获得授权,则 RDS 可以与源区域通信并完成复制操作。

RDS 无权访问之前未经 CopyDBSnapshot 请求授权的数据库快照。复制完成后,将撤销授权。

RDS 使用服务链接的角色来验证源区域中的授权。如果在复制过程中删除了服务相关角色,则复制将失败。

有关更多信息,请参阅《AWS Identity and Access Management 用户指南》中的使用服务相关角色

使用 AWS Security Token Service 凭证

来自全局 AWS Security Token Service (AWS STS) 端点的会话令牌仅在默认启用的 AWS 区域(商业区域)中有效。在 assumeRole 中使用来自 AWS STS API 操作的凭证时, 如果源区域是选择加入区域,请使用区域端点。否则,请求将失败。您的凭证必须在这两个区域中都有效,仅当您使用区域 AWS STS 端点时,这一点才适用于选择加入区域。

要使用全局端点,请确保在操作中为两个区域都启用了该端点。在 AWS STS 账户设置中,将全局端点设置为“在所有 AWS 区域 区域均 Valid”。

有关更多信息,请参阅《AWS Identity and Access Management 用户指南》中的管理 AWS 区域中的 AWS STS

使用自定义引擎版本(CEV)创建的数据库实例的快照

对于使用自定义引擎版本(CEV)的数据库实例的数据库快照,RDS 会将 CEV 与数据库快照关联。要跨 AWS 区域复制与 CEV 关联的源数据库快照,RDS 会将 CEV 与源数据库快照一起复制到目标区域。

如果要将与同一 CEV 关联的多个数据库快照复制到同一个目标区域,则第一个复制请求会复制关联的 CEV。后续请求的复制过程会找到最初复制的 CEV,并将其与以下数据库快照副本相关联。现有 CEV 副本必须处于 AVAILABLE 状态,才能与数据库快照副本相关联。

要复制与 CEV 关联的数据库快照,请求者的 IAM 策略必须具有相应的权限,来授权复制数据库快照和复制关联的 CEV。请求者的 IAM 策略中需要以下权限,才能支持复制关联的 CEV:

  • rds:CopyCustomDBEngineVersion - 请求者 IAM 主体需要具有相应的权限,可将源 CEV 与源数据库快照一起复制到目标区域。如果请求者 IAM 主体未获得复制源 CEV 的授权,则快照复制请求将由于授权错误而失败。

  • ec2:CreateTags - 源 CEV 的底层 EC2 AMI 将复制到目标区域,以作为 CEV 副本的一部分。在复制 AMI 之前,RDS Custom 会尝试使用 AWSRDSCustom 标签来标记 AMI。确保请求者 IAM 主体有权针对源区域中源 CEV 底层的 AMI 创建标签。

有关 CEV 复制权限的信息,请参阅为您的 IAM 主体授予所需的权限

为您的 IAM 主体授予所需的权限

确保您有足够的访问权限来复制 RDS Custom for SQL Server 数据库快照。使用控制台或 CLI 复制数据库快照的 IAM 角色或用户(称为 IAM 主体)必须具有以下任一策略,才能成功创建数据库实例:

  • AdministratorAccess 策略,或者

  • 具有以下其他权限的 AmazonRDSFullAccess 策略:

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

RDS Custom 在跨 AWS 区域复制快照期间使用这些权限。这些权限在您的账户中配置执行 RDS Custom 操作所需的资源。有关 kms:CreateGrant 权限的更多信息,请参阅 AWS KMS key 管理

AmazonRDSFullAccess 策略外,以下 JSON 策略示例还授予所需的权限。

{ "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": "*" } ] }
注意

确保列出的权限不受服务控制策略(SCP)、权限边界或与 IAM 主体关联的会话策略的限制。

如果您在请求者的 IAM 策略中使用带有上下文密钥的条件,则某些条件可能会导致请求失败。有关由于 IAM 策略条件而导致的常见陷阱的更多信息,请参阅请求跨区域数据库快照复制

复制数据库快照

使用以下过程复制数据库快照。对于每个 AWS 账户,一次最多可以从一个 AWS 区域向另一个区域复制 20 个数据库快照。如果您将数据库快照复制到另一个 AWS 区域,则可创建保留在该 AWS 区域中的手动数据库快照。从源 AWS 区域复制出数据库快照会产生 Amazon RDS 数据传输费用。有关数据传输定价的更多信息,请参阅 Amazon RDS 定价

在新 AWS 区域中创建数据库快照副本后,该数据库快照副本的行为与该 AWS 区域中所有其他数据库快照的行为相同。

可以使用 AWS Management Console、AWS CLI 或 Amazon RDS API 来复制数据库快照。

Console

以下过程使用 AWS Management Console复制 RDS Custom for SQL Server 数据库快照。

  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择快照

  3. 选择要复制的 RDS Custom for SQL Server 数据库快照。

  4. 操作下拉列表中,选择复制快照

    Amazon RDS 控制台中的复制快照页面。设置已加载到页面中。
  5. 要将数据库快照复制到其他 AWS 区域,请将目标区域设置为所需的值。

    注意

    目标 AWS 区域必须具有与源 AWS 区域相同的可用数据库引擎版本。

  6. 对于新数据库快照标识符,输入数据库快照的唯一名称。可以创建自动备份或手动快照的多个副本,但每个副本必须具有唯一的标识符。

  7. (可选) 选择 Copy Tags (复制标签) 将标签和值从快照复制到快照的副本。

  8. 对于加密,指定用于加密数据库快照副本的 KMS 密钥标识符。

    注意

    RDS Custom for SQL Server 对所有数据库快照进行加密。您无法创建不加密的数据库快照。

  9. 选择复制快照

RDS Custom for SQL Server 在您选择的 AWS 区域中创建数据库实例的数据库快照副本。

AWS CLI

可以使用 AWS CLI 命令 copy-db-snapshot 复制 RDS Custom for SQL Server 数据库快照。如果您将快照复制到新 AWS 区域,请在新 AWS 区域中运行命令。以下选项用于复制数据库快照。并非所有情况下都需要所有选项。

  • --source-db-snapshot-identifier – 源数据库快照的标识符。

    • 如果源快照与副本位于不同 AWS 区域,则指定有效的数据库快照 ARN。例如,arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678

  • --target-db-snapshot-identifier – 数据库快照的新副本的标识符。

  • --kms-key-id – 加密的数据库快照的 KMS 密钥标识符。KMS 密钥标识符是 Amazon Resource Name (ARN)、密钥标识符或 KMS 密钥的别名。

    • 如果将加密快照复制到不同 AWS 区域,必须为目标 AWS 区域指定 KMS 密钥。KMS 密钥特定于在其中创建它们的 AWS 区域,您无法将一个 AWS 区域中的加密密钥用于另一个 AWS 区域,除非使用多区域密钥。有关多区域 KMS 密钥的更多信息,请参阅在 AWS KMS 中使用多区域密钥

  • --copy-tags – 将源快照中的标签和值包含到快照的副本中。

不支持使用以下选项来复制 RDS Custom for SQL Server 数据库快照:

  • --copy-option-group

  • --option-group-name

  • --pre-signed-url

  • --target-custom-availability-zone

以下代码示例将加密的数据库快照从美国西部(俄勒冈州)区域复制到美国东部(弗吉尼亚州北部)。在目标 (us-east-1) 区域运行该命令。

对于 Linux、macOS 或 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

对于 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

可以使用 Amazon RDS API 操作 CopyDBSnapshot 复制 RDS Custom for SQL Server 数据库快照。如果您将快照复制到新 AWS 区域,请在新 AWS 区域中执行操作。以下参数用于复制数据库快照。并非所有参数都是必需的。

  • SourceDBSnapshotIdentifier – 源数据库快照的标识符。

    • 如果源快照与副本位于不同 AWS 区域,则指定有效的数据库快照 ARN。例如,arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678

  • TargetDBSnapshotIdentifier – 数据库快照的新副本的标识符。

  • KmsKeyId – 加密的数据库快照的 KMS 密钥标识符。KMS 密钥标识符是 Amazon Resource Name (ARN)、密钥标识符或 KMS 密钥的别名。

    • 如果将加密快照复制到不同 AWS 区域,必须为目标 AWS 区域指定 KMS 密钥。KMS 密钥特定于在其中创建它们的 AWS 区域,您无法将一个 AWS 区域中的加密密钥用于另一个 AWS 区域,除非使用多区域密钥。有关多区域 KMS 密钥的更多信息,请参阅在 AWS KMS 中使用多区域密钥

  • CopyTags – 将此参数设置为 true,来将标签和值从源快照复制到快照的副本。默认为 false

不支持使用以下选项来复制 RDS Custom for SQL Server 数据库快照:

  • CopyOptionGroup

  • OptionGroupName

  • PreSignedUrl

  • TargetCustomAvailabilityZone

以下代码使用新名称 mydbsnapshotcopy,在 US East (N. Virginia) 区域中创建快照的副本。

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