Amazon EBS スナップショットの共有 - Amazon Elastic Compute Cloud

Amazon EBS スナップショットの共有

スナップショットの権限を変更することで、指定した AWS アカウントとスナップショットを共有できます。許可を受けたユーザーは、共有するスナップショットを元の EBS ボリュームを作成するための基礎として使用できますが、元のスナップショットは影響を受けません。

必要に応じて、暗号化されていないスナップショットをすべての AWS ユーザーに一般公開することもできます。暗号化されたスナップショットを公開することはできません。

暗号化されたスナップショットを共有する場合は、スナップショットの暗号化に使用するカスタマー管理の CMK も共有する必要があります。カスタマー管理の CMK を作成したときまたは後で CMK にクロスアカウント権限を適用することができます。

重要

スナップショットを共有すると、スナップショットのすべてのデータに他人がアクセスできるようになります。スナップショットの共有は、自分のスナップショットデータすべてを共有したい人とだけ行ってください。

考慮事項

スナップショットの共有には、次の考慮事項が適用されます。

  • スナップショットは、スナップショットが作成されたリージョンに制限されます。別のリージョンとスナップショットを共有するには、そのリージョンにスナップショットをコピーします。詳細については、「Amazon EBS スナップショットのコピー」を参照してください。

  • AWS では、デフォルト CMK を使用して暗号化されたスナップショットを共有することができません。共有する予定のスナップショットは、代わりにカスタマー管理の CMK を使用して暗号化する必要があります。詳細については、『AWS Key Management Service Developer Guide』の「キーの作成」を参照してください。

  • 暗号化されたスナップショットにアクセスしている共有CMKのユーザーには、そのキーに対して kms:DescribeKeykms:CreateGrantGenerateDataKey、および kms:ReEncryptの操作を実行するためのアクセス許可が与えられている必要があります。詳細については、『AWS Key Management Service Developer Guide』の「カスタマーマスターキーへのアクセスを制御する」を参照してください。

コンソールを使用した暗号化されていないスナップショットの共有

コンソールを使用してスナップショットを共有するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[Snapshots (スナップショット)] を選択します。

  3. スナップショットを選択し、[アクション] リストから [Modify Permissions (権限の変更)] を選択します。

  4. スナップショットを公開するか、次のように特定の AWS アカウントと共有します。

    • スナップショットを公開するには、[Public] を選択します。

      このオプションは、暗号化されたスナップショットや AWS Marketplace 製品コードのスナップショットでは有効になりません。

    • 1 つ以上の AWS アカウントでスナップショットを共有するには、[Private] (プライベート) を選択し、AWS アカウントの ID をハイフンなしで [AWS Account Number] (AWS アカウント番号) フィールドに入力して、[Add Permission] (アクセス権限の追加) を選択します。追加の AWS アカウントでこの手順を繰り返します。

  5. [Save] (保存) をクリックします。

自分とプライベートに共有されている非暗号化されたスナップショットを使用するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[Snapshots (スナップショット)] を選択します。

  3. [プライベートスナップショット] フィルタを選択します。

  4. ID または説明でスナップショットを見つけます。このスナップショットは、他の方法と同様に使用できます。たとえば、スナップショットからボリュームを作成したり、スナップショットを別のリージョンにコピーしたりすることができます。

コンソールを使用した暗号化されたスナップショットの共有

コンソールを使用して暗号化されたスナップショットを共有するには

  1. AWS KMS コンソール (https://console.aws.amazon.com/kms) を開きます。

  2. AWS リージョンを変更するには、ページの右上隅にあるリージョンセレクターを使用します。

  3. ナビゲーションペインで、[カスタマー管理型のキー] を選択します。

  4. [エイリアス] 列で、スナップショットの暗号化に使用したカスタマー管理キーのエイリアス (テキストリンク) を選択します。キーの詳細が新しいページで開きます。

  5. [キーポリシー] セクションに、ポリシービューまたはデフォルトビューのいずれかが表示されます。ポリシービューは、キーポリシードキュメントを表示します。デフォルトビューは、[Key administrators] (キー管理者)、[Key deletion] (キーの削除)、[Key Use] (キーの使用)、[Other AWS accounts] (その他の AWS アカウント) の各セクションを表示します。デフォルトビューは、コンソールでポリシーを作成し、それをカスタマイズしていない場合に表示されます。デフォルトビューが使用できない場合は、ポリシービューでポリシーを手動で編集する必要があります。詳細については、AWS Key Management Service Developer Guideの「キーポリシーの表示 (コンソール)」を参照してください。

    アクセスできるビューに応じて、ポリシービューまたはデフォルトビューのいずれかを使用し、次に示すように 1 つ以上の AWS アカウント ID をポリシーに追加します。

    • (ポリシービュー) [編集] を選択します。1 つ以上の AWS アカウント ID を "Allow use of the key" ステートメントと "Allow attachment of persistent resources" ステートメントに追加します。[Save changes] を選択します。次の例では、AWS アカウント ID 444455556666 をポリシーに追加します。

      { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/CMKUser", "arn:aws:iam::444455556666:root" ]}, "Action": [ "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/CMKUser", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }
    • (デフォルトビュー) [Other AWS accounts] (その他の AWS アカウント) まで下にスクロールします。[Add other AWS accounts] (別の AWS アカウントを追加) を選択し、プロンプトに従って AWS アカウント ID を入力します。別のアカウントを追加するには、[Add another AWS account] (別の AWS アカウントを追加する) を選択し、AWS アカウント ID を入力します。すべての AWS アカウントを追加したら、[Save changes] (変更の保存) を選択します。

  6. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  7. ナビゲーションペインで、[Snapshots (スナップショット)] を選択します。

  8. スナップショットを選択し、[アクション] リストから [Modify Permissions (権限の変更)] を選択します。

  9. AWS アカウントごとに、[AWS Account Number] (AWS アカウント番号) に AWS アカウント ID を入力し、[Add Permission] (アクセス権限の追加) を選択します。すべての AWS アカウントを追加する場合は、[Save] (保存) を選択します。

自分と共有されている暗号化されたスナップショットを使用するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[Snapshots (スナップショット)] を選択します。

  3. [プライベートスナップショット] フィルタを選択します。オプションで、[暗号化済み] フィルタを追加します。

  4. ID または説明でスナップショットを見つけます。

  5. スナップショットを選択して、[アクション]、[コピー] の順に選択します。

  6. (オプション) 送信先リージョンを選択します。

  7. スナップショットのコピーは、[Master Key (マスターキー)] フィールドに表示されているキーに暗号化されます。デフォルトでは、選択したキーはアカウントのデフォルトの CMK です。カスタマー管理の CMK を選択するには、入力ボックス内をクリックして利用可能なキーのリストを表示します。

  8. [Copy (コピー)] を選択します。

コマンドラインを使用したスナップショットの共有

スナップショットのアクセス許可は、スナップショットの createVolumePermission 属性を使用して指定します。スナップショットを公開するには、グループを all に設定します。スナップショットを特定の AWS アカウントと共有するには、そのユーザーを AWS アカウントの ID に設定します。

コマンドラインを使用して、スナップショットのアクセス許可を変更するには

以下のいずれかのコマンドを使用します。

コマンドラインを使用してスナップショットに関するアクセス許可を表示するには

以下のいずれかのコマンドを使用します。

これらのコマンドラインインターフェイスの詳細については、Amazon EC2 へのアクセス を参照してください。

共有スナップショットの使用の決定

AWS CloudTrail を使用して、他のユーザーと共有しているスナップショットがコピーされているか、ボリュームの作成に使用されているかをモニタリングできます。次のイベントが CloudTrail に記録されます。

  • SharedSnapshotCopyInitiated — 共有スナップショットをコピーしています。

  • SharedSnapshotVolumeCreated — ボリュームを作成するために共有スナップショットを使用しています。

CloudTrail の使用の詳細については、「AWS CloudTrail による Amazon EC2 および Amazon EBS の API 呼び出しのログ記録」を参照してください。