翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon DocumentDB クラスタースナップショットの共有
Amazon DocumentDB を使用すると、次の方法で手動クラスタースナップショットを共有できます。
自動クラスタースナップショットを共有するには、自動スナップショットをコピーして手動クラスタースナップショットを作成し、そのコピーを共有します。このプロセスは、 AWS バックアップによって生成されたリソースにも適用されます。
手動スナップショットは、最大 20 の他の と共有できます AWS アカウント。暗号化されていない手動スナップショットをパブリックとして共有することもできます。これにより、このスナップショットをすべての アカウントが使用できるようになります。スナップショットをパブリックとして共有する場合には、パブリックスナップショットにプライベート情報が含まれないように注意してください。
手動スナップショットを他の と共有し AWS アカウント、 AWS CLI または Amazon DocumentDB API を使用して共有スナップショットからクラスターを復元する場合は、共有スナップショットの Amazon リソースネーム (ARN) をスナップショット識別子として指定する必要があります。
暗号化されたスナップショットの共有
以下の制限は、暗号化されたスナップショットの共有に適用されます。
暗号化されたスナップショットを共有するには、以下のステップに従います。
-
スナップショットの暗号化に使用された AWS Key Management Service (AWS KMS) 暗号化キーを、スナップショットにアクセスできるアカウントと共有します。
AWS KMS 暗号化キーを別の AWS アカウントと共有するには、他のアカウントを AWS KMS キーポリシーに追加します。キーポリシーの更新の詳細については、 AWS Key Management Service デベロッパーガイドの「KMS AWS でのキーポリシーの使用」を参照してください。キーポリシーの作成例については、このトピックで後述する暗号化されているスナップショットのコピーを許可する IAM ポリシーの作成を参照してください。
-
次に示すように AWS CLI、 を使用して、暗号化されたスナップショットを他のアカウントと共有します。
AWS KMS 暗号化キーへのアクセスを許可する
アカウントから共有された暗号化されたスナップショットを別の がコピー AWS アカウント するには、スナップショットを共有するアカウントが、スナップショットを暗号化した AWS KMS キーにアクセスできる必要があります。別のアカウントに AWS KMS キーへのアクセスを許可するには、キーポリシーのキーポリシーを、 AWS KMS キー AWS KMS ポリシーのプリンシパルとして共有しているアカウントの ARN で更新します。次に、kms:CreateGrant
アクションを許可します。
AWS KMS 暗号化キーへのアクセス権をアカウントに付与した後、暗号化されたスナップショットをコピーするには、そのアカウントが AWS Identity and Access Management (IAM) ユーザーをまだ作成していない場合は作成する必要があります。さらに、そのアカウントは、ユーザーが AWS KMS キーを使用して暗号化されたスナップショットをコピーできるようにする IAM ポリシーをその IAM ユーザーにアタッチする必要があります。アカウントは IAM ユーザーである必要があり、 AWS KMS セキュリティ上の制限によりルート AWS アカウント ID にすることはできません。
次のキーポリシーの例では、ユーザー 123451234512 が AWS KMS 暗号化キーの所有者です。ユーザー 123456789012 がキーの共有先のアカウントです。この更新されたキーポリシーは、アカウントに AWS KMS キーへのアクセスを許可します。これを行うには、ユーザー 123456789012 のルート AWS アカウント ID の ARN をポリシーのプリンシパルとして含め、 kms:CreateGrant
アクションを許可します。
- JSON
-
-
{
"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 ポリシーの作成
外部 AWS アカウント が AWS KMS キーにアクセスできる場合、そのアカウントの所有者は、アカウント用に作成された IAM ユーザーが、その AWS KMS キーで暗号化された暗号化されたスナップショットをコピーすることを許可するポリシーを作成できます。
次の例は、 AWS アカウント 123456789012 の IAM ユーザーにアタッチできるポリシーを示しています。このポリシーにより、IAM ユーザーは、us-west-2 リージョンc989c1dd-a3f2-4a5d-8d96-e793d082ab26
の AWS KMS キーで暗号化されたアカウント 123451234512 から共有スナップショットをコピーできます。
- JSON
-
-
{
"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
}
}
}
]
}
キーポリシーの更新の詳細については、AWS Key Management Service デベロッパーガイド 中の AWS KMSのキーポリシーを使用する を参照してください。
スナップショットの共有
AWS Management Console または を使用して、Amazon DocumentDB 手動クラスタースナップショット (または自動スナップショットのコピー) を共有できます AWS CLI。
- Using the AWS Management Console
-
を使用してスナップショットを共有するには AWS Management Console、次の手順を実行します。
にサインインし AWS Management Console、https://console.aws.amazon.com/docdb で Amazon DocumentDB コンソールを開きます。
ナビゲーションペインで、[Snapshots] を選択します。
共有する手動スナップショットを選択します。
Actions ドロップダウンメニューで、Share を選択します。
DB スナップショットを可視化するには、次のいずれかのオプションを選択します。
ソースが暗号化されていない場合は、パブリック を選択して、すべての AWS アカウントが手動スナップショットからクラスターを復元できるようにします。または、プライベート を選択して、手動スナップショットからクラスターを復元することを指定した AWS アカウントのみに許可します。
DB スナップショットの可視性を Public に設定すると、すべての AWS アカウントが手動スナップショットからクラスターを復元し、データにアクセスできます。個人情報を含む手動クラスタースナップショットをパブリックとして共有しないでください。
出典 DB クラスターが暗号化されている場合、暗号化されているスナップショットはパブリックとして共有できないため、[DB snapshot visibility] が [Private] に設定されます。
デフォルトを使用して暗号化されたスナップショットは共有 AWS KMS key できません。
AWS アカウント ID に、手動スナップショットからクラスターを復元することを許可するアカウントのアカウント AWS 識別子を入力し、追加を選択します。繰り返して、最大 20 AWS 個のアカウント識別子を追加します AWS 。
許可された AWS アカウントのリストにアカウント識別子を追加するときにエラーが発生した場合は、間違った AWS アカウント識別子の右側にある「削除」を選択して、リストから削除できます。
手動スナップショットの復元を許可するすべての AWS アカウントの識別子を追加したら、保存を選択して変更を保存します。
- Using the AWS CLI
-
を使用してスナップショットを共有するには AWS CLI、Amazon DocumentDB modify-db-snapshot-attribute
オペレーションを使用します。--values-to-add
パラメータを使用して、手動スナップショットの復元 AWS アカウント が許可されている の IDs のリストを追加します。
次の例では、 123451234512という名前のスナップショットを復元するために、 と 123456789012 の 2 つの AWS アカウント 識別子を許可します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"
]
}
]
}
}
リストから AWS アカウント 識別子を削除するには、 --values-to-remove
パラメータを使用します。次の例では、 AWS アカウント 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"
]
}
]
}
}