

# 跨账户复制数据库集群快照
<a name="USER_CopyDBClusterSnapshot.CrossAccount"></a>

您可以允许其他 AWS 账户通过使用 Amazon RDS API `ModifyDBClusterSnapshotAttribute` 和 `CopyDBClusterSnapshot` 操作来复制您指定的数据库集群快照。您只能在同一 AWS 区域中跨账户复制数据库集群快照。跨账户复制的流程如下，其中账户 A 提供可复制的快照，账户 B 复制该快照。

1. 使用账户 A，调用 `ModifyDBClusterSnapshotAttribute`，为 **restore** 参数指定 `AttributeName`，并为 `ValuesToAdd` 参数指定账户 B 的 ID。

1. (如果快照已加密) 使用账户 A，更新 KMS 密钥的密钥策略，首先将账户 B 的 ARN 添加为 `Principal`，然后允许 `kms:CreateGrant` 操作。

1. （如果快照已加密）使用账户 B，选择或创建用户，然后将允许它使用 KMS 密钥复制加密数据库集群快照的 IAM policy 附加到该用户。

1. 使用账户 B，调用 `CopyDBClusterSnapshot` 并使用 `SourceDBClusterSnapshotIdentifier` 参数指定要复制的数据库集群快照的 ARN，其中必须包括账户 A 的 ID。

要列出允许还原数据库集群快照的所有 AWS 账户，请使用 [ DescribeDBSnapshotAttributes](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshotAttributes.html) 或 [ DescribeDBClusterSnapshotAttributes](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusterSnapshotAttributes.html) API 操作。

要取消 AWS 账户的共享权限，请使用 `ModifyDBSnapshotAttribute` 或 `ModifyDBClusterSnapshotAttribute` 操作并将 `AttributeName` 设置为 `restore`，然后在 `ValuesToRemove` 参数中删除账户的 ID。

## 将未加密的数据库集群快照复制到另一账户
<a name="USER_CopyDBClusterSnapshot.Unencrypted.CrossAccount"></a>

使用以下步骤将未加密的数据库集群快照复制到同一 AWS 区域中的另一账户。

1. 在数据库集群快照的源账户中，调用 `ModifyDBClusterSnapshotAttribute`，为 **restore** 参数指定 `AttributeName`，并为 `ValuesToAdd` 参数指定目标账户的 ID。

   使用账户 `987654321` 运行以下示例将允许两个 AWS 账户标识符（`123451234512` 和 `123456789012`）恢复名为 `manual-snapshot1` 的数据库集群快照。

   ```
   https://rds.us-west-2.amazonaws.com/
   	?Action=ModifyDBClusterSnapshotAttribute
   	&AttributeName=restore
   	&DBClusterSnapshotIdentifier=manual-snapshot1
   	&SignatureMethod=HmacSHA256&SignatureVersion=4
   	&ValuesToAdd.member.1=123451234512
   	&ValuesToAdd.member.2=123456789012
   	&Version=2014-10-31
   	&X-Amz-Algorithm=AWS4-HMAC-SHA256
   	&X-Amz-Credential=AKIADQKE4SARGYLE/20150922/us-west-2/rds/aws4_request
   	&X-Amz-Date=20150922T220515Z
   	&X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
   	&X-Amz-Signature=ef38f1ce3dab4e1dbf113d8d2a265c67d17ece1999ffd36be85714ed36dddbb3
   ```

1. 在目标账户中，调用 `CopyDBClusterSnapshot` 并使用 `SourceDBClusterSnapshotIdentifier` 参数指定要复制的数据库集群快照的 ARN，其中必须包括源账户的 ID。

   使用账户 `123451234512` 运行以下示例将从账户 `aurora-cluster1-snapshot-20130805` 复制数据库集群快照 `987654321`，然后创建名为 `dbclustersnapshot1` 的数据库集群快照。

   ```
   https://rds.us-west-2.amazonaws.com/
      ?Action=CopyDBClusterSnapshot
      &CopyTags=true
      &SignatureMethod=HmacSHA256
      &SignatureVersion=4
      &SourceDBClusterSnapshotIdentifier=arn:aws:rds:us-west-2:987654321:cluster-snapshot:aurora-cluster1-snapshot-20130805
      &TargetDBClusterSnapshotIdentifier=dbclustersnapshot1
      &Version=2013-09-09
      &X-Amz-Algorithm=AWS4-HMAC-SHA256
      &X-Amz-Credential=AKIADQKE4SARGYLE/20150922/us-west-2/rds/aws4_request
      &X-Amz-Date=20140429T175351Z
      &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
      &X-Amz-Signature=9164337efa99caf850e874a1cb7ef62f3cea29d0b448b9e0e7c53b288ddffed2
   ```

## 将加密的数据库集群快照复制到另一账户
<a name="USER_CopyDBClusterSnapshot.Encrypted.CrossAccount"></a>

使用以下步骤将加密的数据库集群快照复制到同一 AWS 区域中的另一账户。

1. 在数据库集群快照的源账户中，调用 `ModifyDBClusterSnapshotAttribute`，为 **restore** 参数指定 `AttributeName`，并为 `ValuesToAdd` 参数指定目标账户的 ID。

   使用账户 `987654321` 运行以下示例将允许两个 AWS 账户标识符（`123451234512` 和 `123456789012`）恢复名为 `manual-snapshot1` 的数据库集群快照。

   ```
   https://rds.us-west-2.amazonaws.com/
   	?Action=ModifyDBClusterSnapshotAttribute
   	&AttributeName=restore
   	&DBClusterSnapshotIdentifier=manual-snapshot1
   	&SignatureMethod=HmacSHA256&SignatureVersion=4
   	&ValuesToAdd.member.1=123451234512
   	&ValuesToAdd.member.2=123456789012
   	&Version=2014-10-31
   	&X-Amz-Algorithm=AWS4-HMAC-SHA256
   	&X-Amz-Credential=AKIADQKE4SARGYLE/20150922/us-west-2/rds/aws4_request
   	&X-Amz-Date=20150922T220515Z
   	&X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
   	&X-Amz-Signature=ef38f1ce3dab4e1dbf113d8d2a265c67d17ece1999ffd36be85714ed36dddbb3
   ```

1. 在数据库集群快照的源账户中，在加密数据库集群快照所在的同一个 AWS 区域中创建自定义 KMS 密钥。在创建客户自主管理型密钥时，您可以为目标 AWS 账户提供对该密钥的访问权限。有关更多信息，请参阅 [创建客户自主管理型密钥并授予对它的访问权限](share-encrypted-snapshot.md#share-encrypted-snapshot.cmk)。

1. 将快照复制到目标 AWS 账户并与其共享。有关更多信息，请参阅 [从源账户复制和共享快照](share-encrypted-snapshot.md#share-encrypted-snapshot.share)。

1. 在目标账户中，调用 `CopyDBClusterSnapshot` 并使用 `SourceDBClusterSnapshotIdentifier` 参数指定要复制的数据库集群快照的 ARN，其中必须包括源账户的 ID。

   使用账户 `123451234512` 运行以下示例将从账户 `aurora-cluster1-snapshot-20130805` 复制数据库集群快照 `987654321`，然后创建名为 `dbclustersnapshot1` 的数据库集群快照。

   ```
   https://rds.us-west-2.amazonaws.com/
      ?Action=CopyDBClusterSnapshot
      &CopyTags=true
      &SignatureMethod=HmacSHA256
      &SignatureVersion=4
      &SourceDBClusterSnapshotIdentifier=arn:aws:rds:us-west-2:987654321:cluster-snapshot:aurora-cluster1-snapshot-20130805
      &TargetDBClusterSnapshotIdentifier=dbclustersnapshot1
      &Version=2013-09-09
      &X-Amz-Algorithm=AWS4-HMAC-SHA256
      &X-Amz-Credential=AKIADQKE4SARGYLE/20150922/us-west-2/rds/aws4_request
      &X-Amz-Date=20140429T175351Z
      &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
      &X-Amz-Signature=9164337efa99caf850e874a1cb7ef62f3cea29d0b448b9e0e7c53b288ddffed2
   ```