本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
共享 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,您必须指定共享快照的 Amazon 资源名称 (ARN) 作为快照标识符。
共享加密的快照
以下限制适用于共享加密快照:
-
您无法公开共享加密的快照。
-
如果某个快照已使用共享该快照的账户的默认 Amazon KMS 加密密钥进行加密,则您无法共享该快照。
按照以下步骤共享加密的快照。
-
与您希望允许其访问快照的任何账户共享用于加密快照的 Amazon Key Management Service (Amazon KMS) 加密密钥。
你可以共享Amazon KMS用另一个加密密钥Amazon通过将其他账户添加到Amazon KMS密钥策略。有关更新密钥策略的详细信息,请参阅使用以下密钥策略Amazon自杀中的Amazon Key Management Service开发人员指南. 有关创建密钥策略的示例,请参阅本主题下文中的 创建 IAM 策略来启用加密快照的复制功能。
-
使用 Amazon CLI(如下所示)与其他账户共享加密的快照。
允许访问 Amazon KMS 加密密钥
另一个Amazon Web Services 账户要从您的账户复制共享的加密快照,您与之共享快照的账户必须有权访问Amazon KMS加密了快照的密钥。要允许另一账户访问 Amazon KMS 密钥,请使用您要与之共享的账户的 ARN 将 Amazon KMS 密钥的密钥策略更新为 Amazon KMS 密钥策略中的委托人。然后允许 kms:CreateGrant 操作。
在您授予账户访问权限之后Amazon KMS加密密钥,要复制加密的快照,该账户必须创建Amazon Identity and Access Management(IAM) 用户(如果还没有)。此外,该账户还必须将 IAM 策略附加到该 IAM 用户,以允许此用户使用您的Amazon KMS键。此账户必须是 IAM 用户,不能是 root 用户Amazon Web Services 账户由于身份Amazon KMS安全限制。
在以下密钥策略示例中,用户 123451234512 是 Amazon KMS 加密密钥的所有者。用户 123456789012 是要与之共享密钥的账户。此更新的密钥策略向该账户提供了对 Amazon KMS 密钥的访问权限。它通过包含根目录的 ARN 来实现此目的Amazon Web Services 账户作为策略的委托人的用户 123456789012 的身份,并允许kms:CreateGrantaction.
{ "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 KMSkey, 该账户的所有者可创建一个策略来允许为该账户创建的 IAM 用户能够复制使用该账户加密的加密快照。Amazon KMS键。
以下示例显示了一个可以附加到 IAM 用户的策略。Amazon Web Services 账户123456789012。该策略使 IAM 用户能够从账户 123451234512 复制已使用Amazon KMS密钥c989c1dd-a3f2-4a5d-8d96-e793d082ab26在 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: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 KMS中的Amazon Key Management Service开发人员指南.
共享快照
要共享快照,请使用 Amazon DocumentDBmodify-db-snapshot-attributeoperation. 使用--values-to-add参数添加 ID 列表Amazon Web Services 账户有权恢复手动快照。
以下示例允许两个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"
]
}
]
}
}