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

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

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

スナップショットの許可を変更することで、他の AWS アカウントとスナップショットを共有できます。スナップショットは、他のすべての AWS アカウントとパブリックに共有することも、指定した個々の AWS アカウントとプライベートに共有することもできます。許可を受けたユーザーは、共有するスナップショットを使用して自分の EBS ボリュームを作成できますが、元のスナップショットは影響を受けません。

重要

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

スナップショットがパブリックに共有されないようにするために、スナップショットのブロックパブリックアクセスを有効にします。詳細については「AMI へのパブリックアクセスをブロックする」を参照してください。

スナップショットを共有する前に

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

  • そのリージョンでスナップショットのブロックパブリックアクセスが有効になっている場合、スナップショットをパブリックに共有しようとする試みはブロックされます。スナップショットは引き続きプライベートに共有できます。

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

  • デフォルトの AWS マネージドキーで暗号化されたスナップショットを共有することはできません。共有できるのは、カスタマーマネージド型キーを使用して暗号化されたスナップショットだけです。詳細については、AWS Key Management Service デベロッパーガイドキーの作成を参照してください。

  • 暗号化されていないスナップショットのみをパブリックに共有できます。

  • 暗号化されたスナップショットを共有する場合は、スナップショットの暗号化に使用するカスタマーマネージド型キーも共有する必要があります。詳細については、KMS キーの共有を参照してください。

スナップショットの共有

スナップショットを共有するには、このセクションで説明されているいずれかの方法を使用します。

Console
スナップショットを共有するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[Snapshots] を選択します。

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

  4. スナップショットの権限を指定します。[Current setting] (現在の設定) は、スナップショットの現在の共有権限を示します。

    • スナップショットをすべての AWS アカウントとパブリックに共有するには、「パブリック」を選択します。

    • スナップショットを特定の AWS アカウントとプライベートに共有するには、プライベート を選択します。次に、[Sharing accounts] (アカウントの共有) セクションで、[Add account] (アカウントの追加) を選択し、共有するアカウントの 12 桁のアカウント ID (ハイフンなし) を入力します。

  5. [変更の保存] を選択します。

AWS CLI

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

スナップショットをパブリックに共有するには

modify-snapshot-attributeコマンドを実行します。

--attribute で、createVolumePermission を指定します。--operation-type で、add を指定します。--group-names で、all を指定します。

$ aws ec2 modify-snapshot-attribute --snapshot-id 1234567890abcdef0 --attribute createVolumePermission --operation-type add --group-names all
スナップショットをプライベートに共有するには

modify-snapshot-attributeコマンドを実行します。

--attribute で、createVolumePermission を指定します。--operation-type で、add を指定します。には--user-ids、スナップショットを共有する AWS アカウントの 12 桁の IDs を指定します。

$ aws ec2 modify-snapshot-attribute --snapshot-id 1234567890abcdef0 --attribute createVolumePermission --operation-type add --user-ids 123456789012
Tools for Windows PowerShell

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

スナップショットをパブリックに共有するには

Edit-EC2SnapshotAttributeコマンドを実行します。

-Attribute で、CreateVolumePermission を指定します。-OperationType で、Add を指定します。-GroupName で、all を指定します。

PS C:\> Edit-EC2SnapshotAttribute -SnapshotId 1234567890abcdef0 -Attribute CreateVolumePermission -OperationType Add -GroupName all
スナップショットをプライベートに共有するには

Edit-EC2SnapshotAttributeコマンドを実行します。

-Attribute で、CreateVolumePermission を指定します。-OperationType で、Add を指定します。にはUserId、スナップショットを共有する AWS アカウントの 12 桁の IDs を指定します。

PS C:\> Edit-EC2SnapshotAttribute -SnapshotId 1234567890abcdef0 -Attribute CreateVolumePermission -OperationType Add -UserId 123456789012

KMS キーの共有

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

暗号化されたスナップショットにアクセスしている共有のカスタマーマネージド型キーのユーザーには、そのキーに対して、次の操作を実行するためのアクセス許可が与えられている必要があります。

  • kms:DescribeKey

  • kms:CreateGrant

  • kms:GenerateDataKey

  • kms:GenerateDataKeyWithoutPlaintext

  • kms:ReEncrypt

  • kms:Decrypt

ヒント

最小権限のプリンシパルに従うには、kms:CreateGrant へのフルアクセスを許可しないでください。代わりに、 kms:GrantIsForAWSResource 条件キーを使用して、 AWS サービスによってユーザーに代わってグラントが作成された場合にのみ、ユーザーが KMS キーにグラントを作成できるようにします。

カスタマーマネージド型キーへのアクセスの制御方法については、AWS Key Management Service デベロッパーガイドAWS KMSでのキーポリシーの使用を参照してください。

AWS KMS コンソールを使用してカスタマーマネージドキーを共有するには
  1. https://console.aws.amazon.com/kms で AWS KMS コンソールを開きます。

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

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

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

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

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

    • (ポリシービュー) [編集] を選択します。次のステートメントに 1 つ以上の AWS アカウント IDs を追加します: "Allow use of the key"および "Allow attachment of persistent resources"[変更の保存] を選択します。次の例では、 AWS アカウント ID 444455556666 がポリシーに追加されています。

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

自分と共有されているスナップショットを表示する

自分と共有されているスナップショットは、次のいずれかの方法で表示できます。

Console
コンソールを使用して、共有されているスナップショットを表示するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  3. リストされたスナップショットをフィルターします。画面の左上隅で、次のいずれかのオプションを選択します。

    • [プライベートスナップショット] — プライベートで共有されているスナップショットのみを表示します。

    • [パブリックスナップショット] — パブリックに共有されているスナップショットのみを表示します。

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

describe-snapshot-attributeコマンドを実行します。

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

Get-EC2SnapshotAttributeコマンドを実行します。

共有されているスナップショットを使用する

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

ID または説明で共有スナップショットを見つけます。詳細については、自分と共有されているスナップショットを表示するを参照してください。このスナップショットは、アカウント内で所有している、他のスナップショットと同じように使用できます。例えば、スナップショットからボリュームを作成したり、別のリージョンにコピーしたりすることができます。

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

ID または説明で共有スナップショットを見つけます。詳細については、自分と共有されているスナップショットを表示するを参照してください。アカウントに共有スナップショットのコピーを作成し、所有している KMS キーを使用して、そのコピーを暗号化します。その後、コピーを使用してボリュームを作成したり、別のリージョンにコピーしたりできます。

共有するスナップショットの使用方法を決定する

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

  • SharedSnapshotCopyInitiated — 共有スナップショットをコピー中です。

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

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