Amazon DocumentDB 集群快照共享 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon DocumentDB 集群快照共享

在 Amazon DocumentDB 中,您可以共享手动集群快照,这些快照可以由授权的 Amazon Web Services 账户复制。您可以共享加密或未加密的手动快照。共享未加密的快照时,授权者 Amazon Web Services 账户 可以直接从快照恢复集群,而不必复制该快照并从中恢复。但是,您无法从共享并且加密的快照还原集群。您可以改为创建集群的副本并通过该副本来还原集群。有关复制快照的更多信息,请参阅正在复制 Amazon DocumentDB 集群快照

注意

您无法共享 Amazon DocumentDB 自动集群快照。解决方法是通过复制自动快照来创建手动快照,然后共享该副本。有关复制快照的更多信息,请参阅正在复制 Amazon DocumentDB 集群快照。有关从快照还原集群的更多信息,请参阅从集群快照还原

您可以与最多 20 个其他人共享手动快照 Amazon Web Services 账户。您也可以将未加密的手动快照作为公有快照进行共享,这样所有 账户均可使用此快照。当以公有快照形式共享快照时,确保不要将您的私有信息包含在任何公有快照之中。

当与其他人共享手动快照 Amazon Web Services 账户,并且使用 Amazon CLI 或 Amazon DocumentDB API 从共享快照恢复集群时,必须将共享快照的亚马逊资源名称 (ARN) 指定为快照标识符。

共享加密的快照

以下限制适用于共享加密快照:

  • 您无法公开共享加密的快照。

  • 您无法共享使用共享快照的账户的默认 Amazon KMS 加密密钥加密的快照。

按照以下步骤共享加密的快照。

  1. 与您希望能够访问快照的所有账户共享用于加密快照的 Amazon Key Management Service (Amazon KMS) 加密密钥。

    您可以通过将其他 Amazon 账户添加到密钥策略中来与其他账户共享 Amazon KMS 加密 Amazon KMS 密钥。有关更新密钥策略的详细信息,请参阅Amazon Key Management Service 开发人员指南中的在 Amazon KMS 中使用密钥策略。有关创建密钥策略的示例,请参阅本主题下文中的 创建 IAM 策略来启用加密快照的复制功能

  2. 如下所示,使用与其他账户共享加密快照。 Amazon CLI

允许访问 Amazon KMS 加密密钥

Amazon Web Services 账户 要让其他人复制从您的账户共享的加密快照,则您与之共享快照的账户必须有权访问加密快照的 Amazon KMS 密钥。要允许其他账户访问 Amazon KMS 密钥,请在密钥策略中 Amazon KMS 使用您作为委托人共享的账户的 ARN 更新该密钥的 Amazon KMS 密钥策略。然后允许 kms:CreateGrant 操作。

在您授予账户访问您的 Amazon KMS 加密密钥的权限后,要复制您的加密快照,该账户必须创建一个 Amazon Identity and Access Management (IAM) 用户(如果还没有)。此外,该账户还必须向该 IAM 用户附加一个 IAM 策略,允许该用户使用您的 Amazon KMS 密钥复制加密快照。由于 Amazon KMS 安全限制,该账户必须是 IAM 用户,并且不能是根 Amazon Web Services 账户 身份。

在以下密钥策略示例中,用户 123451234512 是加密密钥的所有者。 Amazon KMS 用户 123456789012 是要与之共享密钥的账户。此更新的密钥政策允许账户访问 Amazon KMS 密钥。它通过将用户 123456789012 的根 Amazon Web Services 账户 身份的 ARN 作为策略的委托人并允许该操作来实现此目的。kms:CreateGrant

{ "Id": "key-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::123451234512:user/KeyUser", "arn:aws:iam::123456789012: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::123451234512:user/KeyUser", "arn:aws:iam::123456789012:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} } ] }

创建 IAM 策略来启用加密快照的复制功能

当外部用户 Amazon Web Services 账户 有权访问您的 Amazon KMS 密钥时,该账户的所有者可以创建策略,允许为该账户创建的 IAM 用户复制使用该 Amazon KMS 密钥加密的加密快照。

以下示例显示了可以附加到 Amazon Web Services 账户 123456789012 的 IAM 用户的策略。该策略允许 IAM 用户从账户 123451234512 中复制已在 us-west-2 区域使用密钥加密的 Amazon KMS 共享快照。c989c1dd-a3f2-4a5d-8d96-e793d082ab26

{ "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:123451234512:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"] }, { "Sid": "AllowAttachmentOfPersistentResources", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["arn:aws:kms:us-west-2:123451234512:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ] }

有关更新密钥政策的详细信息,请参阅 Amazon Key Management Service 开发人员指南中的在 Amazon KMS 中使用密钥政策

共享快照

要共享快照,请使用 Amazon DocumentDB modify-db-snapshot-attribute 操作。使用--values-to-add参数为有权恢复手动快照 Amazon Web Services 账户 的 ID 添加列表。

以下示例允许两个 Amazon Web Services 账户 标识符 123451234512 和 123456789012 恢复名为的快照。manual-snapshot1它还会删除 all 属性值以将该快照标记为私有。

对于 Linux、macOS 或 Unix:

aws docdb modify-db-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier sample-cluster-snapshot \ --attribute-name restore \ --values-to-add '["123451234512","123456789012"]'

对于 Windows:

aws docdb modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier sample-cluster-snapshot ^ --attribute-name restore ^ --values-to-add '["123451234512","123456789012"]'

此操作的输出将类似于下文。

{ "DBClusterSnapshotAttributesResult": { "DBClusterSnapshotIdentifier": "sample-cluster-snapshot", "DBClusterSnapshotAttributes": [ { "AttributeName": "restore", "AttributeValues": [ "123451234512", "123456789012" ] } ] } }

要从列表中删除 Amazon Web Services 账户 标识符,请使用--values-to-remove参数。以下示例阻止 Amazon Web Services 账户 ID 123456789012 恢复快照。

对于 Linux、macOS 或 Unix:

aws docdb modify-db-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier sample-cluster-snapshot \ --attribute-name restore \ --values-to-remove '["123456789012"]'

对于 Windows:

aws docdb modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier sample-cluster-snapshot ^ --attribute-name restore ^ --values-to-remove '["123456789012"]'

此操作的输出将类似于下文。

{ "DBClusterSnapshotAttributesResult": { "DBClusterSnapshotIdentifier": "sample-cluster-snapshot", "DBClusterSnapshotAttributes": [ { "AttributeName": "restore", "AttributeValues": [ "123451234512" ] } ] } }