Amazon DocumentDB クラスターのスナップショットの共有 - Amazon DocumentDB

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

Amazon DocumentDB クラスターのスナップショットの共有

Amazon DocumentDB では、手動クラスタースナップショットを共有できます。手動クラスタースナップショットは許可された AWS アカウントによってコピーできます。暗号化されている手動スナップショットまたは暗号化されていない手動スナップショットを共有できます。暗号化されていないスナップショットを共有すると、権限のある AWS アカウントが、クラスターをコピーしてそこから復元するのではなく、スナップショットから直接クラスターを復元できるようになります。ただし、共有され暗号化されたスナップショットから、クラスターを復元することはできません。代わりに、クラスターのコピーを作成し、そのコピーからクラスターを復元できます。スナップショットのコピーの詳細については、「Amazon DocumentDB クラスタースナップショットのコピー」を参照してください。

注記

Amazon DocumentDB 自動クラスタースナップショットを共有することはできません。回避策として、自動スナップショットをコピーして手動スナップショットを作成し、そのコピーを共有できます。スナップショットのコピーの詳細については、「Amazon DocumentDB クラスタースナップショットのコピー」を参照してください。スナップショットからクラスターを復元する方法の詳細については、「クラスタースナップショットからの復元」を参照してください。

手動スナップショットを最大 20 のその他の AWS アカウントと共有することができます。暗号化されていない手動スナップショットをパブリックとして共有することもできます。これにより、このスナップショットをすべてのアカウントが使用できるようになります。スナップショットをパブリックとして共有する場合には、パブリックスナップショットにプライベート情報が含まれないように注意してください。

手動スナップショットを他の AWS アカウントと共有している場合、AWS CLI または Amazon DocumentDB API を使用して共有スナップショットからクラスターを復元する際、スナップショット識別子として共有スナップショットの Amazon リソースネーム (ARN) を指定する必要があります。

暗号化されたスナップショットの共有

以下の制限は、暗号化されたスナップショットの共有に適用されます。

  • 暗号化されたスナップショットをパブリックとして共有することはできません。

  • スナップショットを共有するアカウントのデフォルト AWS KMS 暗号化キーを使って暗号化されたスナップショットを共有することはできません。

暗号化されたスナップショットを共有するには、以下のステップに従います。

  1. スナップショットの暗号化に使用された AWS Key Management Service (AWS KMS) 暗号化キーを、スナップショットにアクセスできるようにするすべてのアカウントと共有します。

    AWS KMS 暗号化キーは、AWS KMS キーポリシーに他のアカウントを追加することで、別の AWS アカウントと共有できます。キーポリシーの更新の詳細については、の「AWS KMS でのキーポリシーの使用」を参照してくださいAWS Key Management Service Developer Guide。キーポリシーの作成例については、このトピックで後述する 暗号化されているスナップショットのコピーを可能にする IAM ポリシーの作成を参照してください。

  2. 次AWS CLIに示すように、 を使用して、暗号化されたスナップショットを他のアカウントと共有します。

AWS KMS 暗号化キーへのアクセス許可

お客様のアカウントから共有された暗号化されたスナップショットを、別の AWS アカウントでコピーするには、お客様のスナップショットを共有したアカウントに、スナップショットを暗号化した AWS KMS キーへのアクセス権限がある必要があります。別のアカウントに AWS KMS キーへのアクセスを許可するには、AWS KMS キーのキーポリシーを更新して、共有先のアカウントの ARN を AWS KMS キーポリシーのプリンシパルに設定します。次に、kms:CreateGrant アクションを許可します。

アカウントアクセスを AWS KMS 暗号化キーに付与した後、暗号化されたスナップショットをコピーするには、そのアカウントで AWS Identity and Access Management (IAM) ユーザーを作成する必要があります (すでに存在していない場合)。さらに、そのアカウントは、IAM ユーザーが IAM キーを使用して暗号化されたスナップショットをコピーできるようにする AWS KMS ポリシーをそのユーザーにアタッチする必要があります。IAM のセキュリティ制限のため、アカウントは AWS KMS ユーザーである必要があります。ルート AWS アカウントアイデンティティにすることはできません。

次のキーポリシーの例では、ユーザー 123451234512 が AWS KMS 暗号化キーの所有者です。ユーザー 123456789012 がキーの共有先のアカウントです。この更新されたキーポリシーにより、アカウントは AWS KMS キーにアクセスできます。これを行うため、ユーザー 123456789012 のルート AWS アカウント ID の 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 ポリシーの作成

外部の AWS アカウントに AWS KMS キーへのアクセス権限がある場合、そのアカウントの所有者は、そのアカウントで作成された IAM ユーザーに対してその AWS KMS キーで暗号化されたスナップショットのコピーを許可するポリシーを作成できます。

次の例では、AWS アカウント 123456789012 の IAM ユーザーにアタッチできるポリシーを示します。このポリシーにより、IAM ユーザーは us-west-2 リージョンでアカウント 123451234512 から AWS 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 } } } ] }

キーポリシーの更新の詳細については、の「 でのキーポリシーの使用」を参照してくださいAWS KMSAWS Key Management Service Developer Guide

スナップショットの共有

スナップショットを共有するには、Amazon DocumentDB modify-db-snapshot-attribute オペレーションを使用します。手動スナップショットの復元が許可されている AWS アカウント ID のリストを追加するには、--values-to-add パラメータを使用します。

次の例では、2 つの AWS アカウント識別子 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" ] } ] } }

リストから AWS アカウント ID を削除するには、--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" ] } ] } }