メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

DB スナップショットの共有または DB クラスタースナップショット

Amazon RDS を使用すると、手動 DB スナップショットまたは DB クラスタースナップショットを共有できます。スナップショットの共有は、次の説明のように機能します。

  • 手動 DB スナップショットまたは DB クラスタースナップショットを共有すると、暗号化されているかいないかに関係なく、権限のある AWS アカウントがスナップショットをコピーできるようになります。

  • 暗号化されていない手動 DB スナップショットを共有すると、権限のある AWS アカウントが、DB インスタンスをコピーしてそこから復元するのではなく、スナップショットから DB インスタンスを直接復元できるようになります。これは、暗号化されている手動 DB スナップショットではサポートされていません。

  • 手動 DB クラスタースナップショットを共有すると、暗号化されているかいないかに関係なく、権限を持つ AWS アカウントが DB クラスターをコピーしてそこから復元するのではなく、スナップショットから DB クラスターを直接復元できるようになります。

注記

自動 DB スナップショットまたは DB クラスタースナップショットを共有するには、手動 DB スナップショットを作成してから、そのコピーを共有します。

スナップショットのコピーの詳細については、「DB スナップショットまたは DB クラスタースナップショットのコピー」を参照してください。DB スナップショットから DB インスタンスを復元する方法の詳細については、「DB スナップショットからの復元」を参照してください。DB クラスタースナップショットから DB クラスターを復元する方法の詳細については、「Aurora DB クラスターのバックアップと復元」を参照してください。

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

手動 スナップショットを他の AWS アカウントと共有する場合には、次の制限が適用されます。

  • AWS Command Line Interface (AWS CLI) または Amazon RDS API を使用して共有スナップショットから DB インスタンスまたは DB クラスターを復元する際、 スナップショット識別子として共有 DB スナップショットの Amazon Resource Name (ARN) を指定する必要があります。

  • 固定オプションまたは永続オプションを含むオプショングループを使用する DB スナップショットを共有することはできません。

    固定オプションはオプショングループから削除できません。永続オプションを含むオプショングループは、そのオプショングループが DB インスタンスに割り当てられると、DB インスタンスから削除できなくなります。

    次の表は、固定オプションおよび永続オプションと、それらに関連する DB エンジンをリストしています。

    オプション名 永続 固定 DB エンジン
    TDE はい いいえ Microsoft SQL Server Enterprise Edition
    TDE はい はい Oracle Enterprise Edition
    TDE_HSM はい はい Oracle Enterprise Edition
    タイムゾーン はい はい

    Oracle Enterprise Edition

    Oracle Standard Edition

    Oracle Standard Edition One

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

AES-256 暗号化アルゴリズムを使用して暗号化された「保存中」である DB スナップショットまたは DB クラスタースナップショットを共有できます (Amazon RDS リソースの暗号化 で説明しています)。これを行うには、次のステップを実行する必要があります。

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

    AWS KMS 暗号化キーは、KMS キーポリシーに他のアカウントを追加することで、別の AWS アカウントと共有できます。キーポリシーの更新の詳細については、『AWS KMS 開発者ガイド』の「キーポリシー」を参照してください。キーポリシーの作成例については、このトピックで後述するAWS KMS 暗号化キーへのアクセス許可を参照してください。

  2. AWS マネジメントコンソール、AWS CLI、または Amazon RDS API を使用して、暗号化されているスナップショットを他のアカウントと共有します。

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

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

  • Transparent Data Encryption (TDE) を使用して暗号化されている Oracle または Microsoft SQL Server のスナップショットを共有することはできません。

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

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

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

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

次のキーポリシーの例では、ユーザー 111122223333 が KMS 暗号化キーの所有者であり、ユーザー 444455556666 がキーの共有先のアカウントです。この更新されたキーポリシーは、ユーザー 444455556666 のルート AWS アカウントアイデンティティの ARN をポリシーの Principal として含み、kms:CreateGrant アクションを許可することで、AWS アカウントに KMS キーへのアクセス権限を付与します。

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

暗号化されているスナップショットのコピーを可能にする IAM ポリシーの作成

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

次の例では、AWS アカウント 444455556666 の IAM ユーザーにアタッチできるポリシーを示しています。このポリシーは、IAM ユーザーに AWS アカウント 111122223333 から共有された スナップショットのコピーを許可しています。DB スナップショットは us-west-2 リージョンで KMS キー c989c1dd-a3f2-4a5d-8d96-e793d082ab26 を使用して暗号化されたものです。

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

キーポリシーの更新の詳細については、『AWS KMS 開発者ガイド』の「キーポリシー」を参照してください。

Amazon RDS コンソールを使用したスナップショットの共有

Amazon RDS コンソールを使用して、手動 DB スナップショットまたは DB クラスタースナップショットを最大 20 の AWS アカウントと共有することができます。また、コンソールを使用して、手動 スナップショットの 1 つ以上のアカウントとの共有を停止することもできます。

To share a manual DB snapshot or DB cluster snapshot by using the Amazon RDS console

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. In the navigation pane, choose Snapshots.

  3. For Filter, choose Manual Snapshots.

  4. Select the check box for the manual snapshot that you want to share.

  5. Choose Snapshot Actions, and then choose Share Snapshot.

  6. Choose one of the following options for DB Snapshot Visibility.

    • If the source DB cluster is unencrypted, choose Public to permit all AWS accounts to restore a DB instance from your manual DB snapshot, or choose Private to permit only AWS accounts that you specify to restore a DB instance from your manual DB snapshot.

      警告

      If you set DB Snapshot Visibility to Public, all AWS accounts can restore a DB instance from your manual DB snapshot and have access to your data. Do not share any manual DB snapshots that contain private information as Public.

    • If the source DB cluster is encrypted, DB Snapshot Visibility is set as Private because encrypted snapshots can't be shared as public.

  7. For AWS Account ID, type the AWS account identifier for an account that you want to permit to restore a DB instance or DB cluster from your manual snapshot, and then choose Add. Repeat to include additional AWS account identifiers, up to 20 AWS accounts.

    If you make an error when adding an AWS account identifier to the list of permitted accounts, you can delete it from the list by choosing Delete at the right of the incorrect AWS account identifier.

    
							Permit AWS accounts to restore a manual DB snapshot
  8. After you have added identifiers for all of the AWS accounts that you want to permit to restore the manual snapshot, choose Save to save your changes.

To stop sharing a manual DB snapshot or DB cluster snapshot with an AWS account

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. In the navigation pane, choose Snapshots.

  3. For Filter, choose Manual Snapshots.

  4. Select the check box for the manual snapshot that you want to stop sharing.

  5. Choose Snapshot Actions, and then choose Share Snapshot.

  6. To remove permission for an AWS account, choose Delete for the AWS account identifier for that account from the list of authorized accounts.

    
						Permit AWS accounts to restore a manual DB snapshot
  7. Choose Save to save your changes.

Amazon RDS API を使用してスナップショットを共有する

Amazon RDS API を使用することで、手動 DB スナップショットまたは DB クラスタースナップショットを他の AWS アカウントと共有することもできます。そのためには、DB インスタンスの場合は ModifyDBSnapshotAttribute アクションを呼び出し、Amazon Aurora DB クラスターの場合は アクションを呼び出します。ModifyDBClusterSnapshotAttributeAttributeNamerestore を指定し、ValuesToAdd パラメータを使用して、手動 スナップショットの復元が許可されている AWS アカウント ID のリストを追加します。

手動スナップショットを公開し、あらゆる AWS アカウントによる復元を可能にするには、値 all を使用します。ただし、すべての AWS アカウントには利用させたくないプライベート情報を含む手動 スナップショットについては、値 all を追加しないように注意してください。また、暗号化されているスナップショットでは all を指定しないでください。そのようなスナップショットをパブリックにすることはできないためです。

AWS アカウントの共有アクセス権限を削除するには、ModifyDBSnapshotAttribute または ModifyDBClusterSnapshotAttribute アクションの AttributeNamerestore に設定し、ValuesToRemove パラメータを使用します。手動 スナップショットをプライベートとしてマークするには、restore 属性の値リストから値 all を削除します。

次の例では、2 つの AWS アカウント ID 123451234512 および 123456789012 に対して manual-snapshot1 という名前の スナップショットを復元する権限を付与し、all 属性値を削除して DB スナップショットをプライベートとしてマークしています。

Copy
https://rds.us-west-2.amazonaws.com/ ?Action=ModifyDBSnapshotAttribute &AttributeName=restore &DBSnapshotIdentifier=manual-snapshot1 &SignatureMethod=HmacSHA256&SignatureVersion=4 &ValuesToAdd.member.1=123451234512 &ValuesToAdd.member.2=123456789012 &ValuesToRemove.member.1=all &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

スナップショットを復元する権限が付与されているすべての AWS アカウントをリストするには、DescribeDBSnapshotAttributes または DescribeDBClusterSnapshotAttributes API アクションを使用します。

関連トピック