

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

# Amazon EBS スナップショットを他の AWS アカウントと共有する
スナップショットの共有

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

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

スナップショットがパブリックに共有されないようにするために、[Amazon EBS スナップショットのブロックパブリックアクセス](block-public-access-snapshots.md) を有効にします。

**Topics**
+ [

## スナップショットを共有する前に
](#share-snapshot-considerations)
+ [

## スナップショットの共有
](#share-unencrypted-snapshot)
+ [KMS キーの共有](share-kms-key.md)
+ [共有スナップショットを使用](view-shared-snapshot.md)
+ [

## 共有するスナップショットの使用方法を決定する
](#shared-snapshot-cloudtrail-logging)

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


スナップショットの共有には、次の考慮事項が適用されます。
+ そのリージョンでスナップショットのブロックパブリックアクセスが有効になっている場合、スナップショットをパブリックに共有しようとする試みはブロックされます。スナップショットは引き続きプライベートに共有できます。
+ スナップショットは、スナップショットが作成されたリージョンに制限されます。別のリージョンとスナップショットを共有するには、そのリージョンにスナップショットをコピーして、そのコピーを共有します。詳細については、「[Amazon EBS スナップショットのコピー](ebs-copy-snapshot.md)」を参照してください。
+ デフォルトの AWS マネージドキーで暗号化されたスナップショットを共有することはできません。共有できるのは、カスタマーマネージド型キーを使用して暗号化されたスナップショットだけです。詳細については、*AWS Key Management Service デベロッパーガイド*の[キーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)を参照してください。
+ 暗号化されていないスナップショットのみをパブリックに共有できます。
+ 暗号化されたスナップショットを共有する場合は、スナップショットの暗号化に使用するカスタマーマネージド型キーも共有する必要があります。詳細については、[共有 Amazon EBS スナップショットの暗号化に使用される KMS キーを共有](share-kms-key.md)を参照してください。

## スナップショットの共有


スナップショットはパブリックに共有することも、特定の AWS アカウントと共有することもできます。

------
#### [ Console ]

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

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

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

1. スナップショットの権限を指定します。*[Current setting]* (現在の設定) は、スナップショットの現在の共有権限を示します。
   + スナップショットをすべての AWS アカウントとパブリックに共有するには、**「パブリック**」を選択します。
   + スナップショットを特定の AWS アカウントとプライベートに共有するには、**プライベート** を選択します。次に、**[Sharing accounts]** (アカウントの共有) セクションで、**[Add account]** (アカウントの追加) を選択し、共有するアカウントの 12 桁のアカウント ID (ハイフンなし) を入力します。

1. **[Save changes]** (変更の保存) をクリックします。

------
#### [ AWS CLI ]

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

**スナップショットをパブリックに共有するには**  
[modify-snapshot-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-snapshot-attribute.html) コマンドを使用します。

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

```
aws ec2 modify-snapshot-attribute \
    --snapshot-id snap-0abcdef1234567890 \
    --attribute createVolumePermission \
    --operation-type add \
    --group-names all
```

**スナップショットをプライベートに共有するには**  
[modify-snapshot-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-snapshot-attribute.html) コマンドを使用します。

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

```
aws ec2 modify-snapshot-attribute \
    --snapshot-id snap-0abcdef1234567890 \
    --attribute createVolumePermission \
    --operation-type add \
    --user-ids 123456789012 111122223333
```

------
#### [ PowerShell ]

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

**スナップショットをパブリックに共有するには**  
[Edit-EC2SnapshotAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2SnapshotAttribute.html) コマンドレットを使用します。

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

```
Edit-EC2SnapshotAttribute `
    -SnapshotId snap-0abcdef1234567890 `
    -Attribute CreateVolumePermission `
    -OperationType Add `
    -GroupName all
```

**スナップショットをプライベートに共有するには**  
[Edit-EC2SnapshotAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2SnapshotAttribute.html) コマンドレットを使用します。

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

```
Edit-EC2SnapshotAttribute `
    -SnapshotId snap-0abcdef1234567890 `
    -Attribute CreateVolumePermission `
    -OperationType Add `
    -UserId 123456789012 111122223333
```

------

# 共有 Amazon EBS スナップショットの暗号化に使用される KMS キーを共有
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でのキーポリシーの使用](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)を参照してください。

**AWS KMS コンソールを使用してカスタマーマネージドキーを共有するには**

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

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

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

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

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

   アクセス可能なビューに応じて、ポリシービューまたはデフォルトビューのいずれかを使用して、次のように 1 つ以上の AWS アカウント IDsをポリシーに追加します。
   + (ポリシービュー) [**編集**] を選択します。次のステートメントに 1 つ以上の AWS アカウント IDs を追加します: `"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/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**] (変更の保存) を選択します。

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

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

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

------
#### [ Console ]

**スナップショットのアクセス許可を表示するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

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

1. スナップショットを選択します。

1. フィルターが **[自分が共有]** である場合、スナップショットはこのアカウントによって所有されています。フィルターが **[プライベートスナップショット]** の場合、スナップショットはこのアカウントによって所有されているか、このアカウントと明確に共有されています。スナップショットを選択し、**[詳細]** タブの **[所有者]** で、このアカウントが指定されているか、別のアカウントが指定されているかを確認します。

------
#### [ AWS CLI ]

**スナップショットのアクセス許可を表示するには**  
[describe-snapshot-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshot-attribute.html) コマンドを使用して、指定したスナップショットのスナップショットアクセス許可を取得します。

```
aws ec2 describe-snapshot-attribute \
    --snapshot-id snap-0abcdef1234567890 \
    --attribute createVolumePermission
```

以下は出力の例です。

```
{
    "SnapshotId": "snap-0abcdef1234567890",
    "CreateVolumePermissions": [
        {
            "UserId": "111122223333"
        }
    ]
}
```

------
#### [ PowerShell ]

**スナップショットのアクセス許可を表示するには**  
[Get-EC2SnapshotAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SnapshotAttribute.html) コマンドレットを使用します。

```
(Get-EC2SnapshotAttribute `
    -SnapshotId snap-0abcdef1234567890 `
    -Attribute createVolumePermission).CreateVolumePermissions
```

以下は出力の例です。

```
Group UserId
----- ------
      111122223333
```

------

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


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

CloudTrail の使用の詳細については、[「Log Amazon EC2 and Amazon EBS API calls with AWS CloudTrail](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/monitor-with-cloudtrail.html)」を参照してください。