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 スナップショットをすべてのアカウントと公開して共有するには、[Public] を選択します。

    • 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 桁の ID を指定します。

$ 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 桁の ID を指定します。

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条件キーを使用して、サービスによってユーザーに代わって権限が作成された場合にのみ、ユーザーが KMS キーで権限を作成できるようにします。 AWS

カスタマーマネージド型キーへのアクセスの制御方法については、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 つ以上のアカウント ID をポリシーに追加します。

    • (ポリシービュー) [編集] を選択します。1 AWS つ以上のアカウント ID を次のステートメントに追加します:"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