

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

# 暗号化されたボリュームで使用するために必要な AWS KMS キーポリシー
<a name="key-policy-requirements-EBS-encryption"></a>

Amazon EC2 Auto Scaling は、[サービスにリンクされたロール](autoscaling-service-linked-role.md)を使用してアクセス許可を他の に委任します AWS のサービス。Amazon EC2 Auto Scaling サービスにリンクされたロールは事前定義されており、Amazon EC2 Auto Scaling が AWS のサービス ユーザーに代わって他の を呼び出すために必要なアクセス許可が含まれています。事前定義されたアクセス許可には、 へのアクセスも含まれます AWS マネージドキー。ただし、顧客管理キーへのアクセスは含まれていないため、これらのキーを完全に制御できます。

このトピックでは、Amazon EBS 暗号化のカスタマーマネージドキーを指定するときに Auto Scaling インスタンスを起動するために必要なキーポリシーを設定する方法について説明します。

**注記**  
Amazon EC2 Auto Scaling では、アカウントの暗号化されたボリュームの保護にデフォルトの AWS マネージドキー を使用する場合、追加の承認は不要です。

**Contents**
+ [

## 概要:
](#overview)
+ [

## キーポリシーを設定する
](#configuring-key-policies)
+ [

## 例 1: カスタマー管理キーへのアクセスを許可するキーポリシーセクション
](#policy-example-cmk-access)
+ [

## 例 2: カスタマー管理キーへのクロスアカウントアクセスを許可するキーポリシーセクション
](#policy-example-cmk-cross-account-access)
+ [

## AWS KMS コンソールでキーポリシーを編集する
](#eding-key-policies-console)

## 概要:
<a name="overview"></a>

Amazon EC2 Auto Scaling AWS KMS keys がインスタンスを起動するときに、Amazon EBS 暗号化に以下を使用できます。 Amazon EC2 
+ [AWS マネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) – Amazon EBS によって作成、所有、および管理されるアカウント内の暗号化キー。これは、新しいアカウントのデフォルトの暗号化キーです。カスタマーマネージドキーを指定しない限り、 AWS マネージドキー は暗号化に使用されます。
+ [カスタマーマネージド型キー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) – お客様が作成、所有、および管理するカスタム暗号化キー。詳細については、[デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)の「*AWS Key Management Service キーの作成*」を参照してください。

  注:キーは対称である必要があります。Amazon EBS は非対称カスタマー管理キーをサポートしていません。

カスタマーマネージド型キーは、暗号化されたスナップショットを作成するとき、または暗号化されたボリュームを指定する起動テンプレートを作成するとき、またはデフォルトで暗号化を有効にするときに設定します。

## キーポリシーを設定する
<a name="configuring-key-policies"></a>

KMS キーには、Amazon EC2 Auto Scaling が、カスタマーマネージド型キーで暗号化された Amazon EBS ボリュームを使用してインスタンスを起動できるようにするキーポリシーが必要です。

このページの例を使用して、Amazon EC2 Auto Scaling にカスタマー管理型キーへのアクセスを許可するようにキーポリシーを設定します。カスタマー管理型 キーのキーポリシーは、キーの作成時または後で変更できます。

Amazon EC2 Auto Scaling で CMK のキーポリシーを使用するには、少なくとも、2 つのポリシーステートメントをそのポリシーに追加する必要があります。
+ 最初のステートメントでは、`Principal` 要素で指定された IAM アイデンティティに、カスタマー型マネージドキー を直接使用できるようにします。これには AWS KMS `Encrypt`、キーに対して `Decrypt`、、`GenerateDataKey*`、、および `ReEncrypt*``DescribeKey`オペレーションを実行するアクセス許可が含まれます。
+ 2 番目のステートメントでは、 `Principal`要素で指定された IAM ID が `CreateGrant`オペレーションを使用して、 AWS KMS または他のプリンシパルと統合された に独自のアクセス許可のサブセットを委任 AWS のサービス する許可を生成できます。これにより、それらのサービスはお客様に代わって、キーを使用して、暗号化されたリソースを作成できるようになります。

キーポリシーに新しいポリシーステートメントを追加する場合は、ポリシーの既存のステートメントを変更しないでください。

以下の各例では、キー ID やサービスにリンクされたロールの名前など、置き換える必要のある引数が、*ユーザープレースホルダーテキスト*として表示されます。ほとんどの場合、サービスにリンクされたロールの名前を Amazon EC2 Auto Scaling サービスにリンクされたロールの名前に置き換えることができます。

詳細については、以下のリソースを参照してください。
+ を使用してキーを作成するには AWS CLI、[「create-key](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-key.html)」を参照してください。
+ でキーポリシーを更新するには AWS CLI、「[put-key-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/put-key-policy.html)」を参照してください。
+ キー ID と Amazon リソースネーム (ARN) を確認するには、*AWS Key Management Service デベロッパーガイド*の「[キー ID と ARN を検索する](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html)」を参照してください。
+ Amazon EC2 Auto Scaling というサービスにリンクされたロールについては、「[Amazon EC2 Auto Scaling のサービスにリンクされたロール](autoscaling-service-linked-role.md)」を参照してください。
+ Amazon EBS 暗号化と KMS 全般の詳細については、「*Amazon EBS ユーザーガイド*」の「[Amazon EBS 暗号化](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html)」および「[AWS Key Management Service デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/)」を参照してください。

## 例 1: カスタマー管理キーへのアクセスを許可するキーポリシーセクション
<a name="policy-example-cmk-access"></a>

以下の 2 つのポリシーステートメントをカスタマー管理型キーのキーポリシーに追加して、例の ARN を、キーへのアクセスが許可されている適切なサービスにリンクされたロールの ARN に置き換えます。次の例では、**[AWSServiceRoleForAutoScaling]** という名前のサービスリンクロールに、カスタマーマネージドキーを使用するアクセス許可を付与します。

```
{
   "Sid": "Allow service-linked role use of the customer managed key",
   "Effect": "Allow",
   "Principal": {
       "AWS": [
           "arn:aws:iam::account-id:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
       ]
   },
   "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::account-id:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
       ]
   },
   "Action": [
       "kms:CreateGrant"
   ],
   "Resource": "*",
   "Condition": {
       "Bool": {
           "kms:GrantIsForAWSResource": true
       }
    }
}
```

## 例 2: カスタマー管理キーへのクロスアカウントアクセスを許可するキーポリシーセクション
<a name="policy-example-cmk-cross-account-access"></a>

カスタマー管理キーを Auto Scaling グループとは異なるアカウントで作成する場合は、キーへのクロスアカウントアクセスを許可するキーポリシーと組み合わせてグラントを使用する必要があります。

これには 2 つのステップがあり、以下の順序で完了する必要があります。

1. まず、カスタマー管理キーのキーポリシーに以下の 2 つのポリシーステートメントを追加します。サンプル ARN を他のアカウントの ARN に置き換えます。 を Auto Scaling グループ AWS アカウント を作成する の*111122223333*実際のアカウント ID に置き換えてください。そうすることで、次の CLI コマンドを使用して、指定されたアカウント内の IAM ユーザーまたはロールに、キーに対するグラントを作成する許可を提供できます。ただし、これ自体がキーへのアクセス許可をユーザーに提供するのではありません。

   ```
   {
      "Sid": "Allow external account 111122223333 use of the customer managed key",
      "Effect": "Allow",
      "Principal": {
          "AWS": [
              "arn:aws:iam::111122223333:root"
          ]
      },
      "Action": [
          "kms:Encrypt",
          "kms:Decrypt",
          "kms:ReEncrypt*",
          "kms:GenerateDataKey*",
          "kms:DescribeKey"
      ],
      "Resource": "*"
   }
   ```

   ```
   {
      "Sid": "Allow attachment of persistent resources in external account 111122223333",
      "Effect": "Allow",
      "Principal": {
          "AWS": [
              "arn:aws:iam::111122223333:root"
          ]
      },
      "Action": [
          "kms:CreateGrant"
      ],
      "Resource": "*"
   }
   ```

1. 次に、Auto Scaling グループを作成するアカウントから、関連する許可を適切なサービスリンクロールに委任するグラントを作成します。グラントの `Grantee Principal` 要素は、適切なサービスリンクロールの ARN です。`key-id` は、キーの ARN です。

   以下の [create-grant](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-grant.html) CLI コマンドの例では、アカウント *111122223333* の **[AWSServiceRoleForAutoScaling]** という名前のサービスリンクロールに、アカウント *444455556666* のカスタマーマネージドキーを使用するためのアクセス許可を付与しています。

   ```
   aws kms create-grant \
     --region us-west-2 \
     --key-id arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d \
     --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling \
     --operations "Encrypt" "Decrypt" "ReEncryptFrom" "ReEncryptTo" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "DescribeKey" "CreateGrant"
   ```

   このコマンドが成功するには、リクエストを行うユーザーが `CreateGrant` アクションに対する許可を持っている必要があります。

   次の IAM ポリシーの例では、アカウント *111122223333* 内の IAM アイデンティティ (ユーザーまたはロール) がアカウント *444455556666* 内でカスタマーマネージド型キーの付与を作成できるようにします。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowCreationOfGrantForTheKMSKeyinExternalAccount444455556666",
         "Effect": "Allow",
         "Action": "kms:CreateGrant",
         "Resource": "arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d"
       }
     ]
   }
   ```

------

   異なる AWS アカウント内での KMS キーに対するグラントの作成に関する詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[Grants in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)」を参照してください。
**重要**  
被付与者のプリンシパルとして指定されたサービスにリンクされたロール名は、既存のロールの名前でなければなりません。グラントを作成した後は、Amazon EC2 Auto Scaling が指定された KMS キーを確実に使用できるようにするために、サービスにリンクされたロールを削除して再作成しないでください。

## AWS KMS コンソールでキーポリシーを編集する
<a name="eding-key-policies-console"></a>

以前のセクションの例では、キーポリシーにステートメントを追加する方法のみを示しています。これは、キーポリシーを変更する 1 つの方法にすぎません。キーポリシーを変更する最も簡単な方法は、キーポリシーに AWS KMS コンソールのデフォルトビューを使用し、IAM ID (ユーザーまたはロール) を適切なキーポリシーの*キーユーザーの* 1 つにすることです。詳細については、「 *AWS Key Management Service デベロッパーガイド*[」の AWS マネジメントコンソール 「デフォルトビュー](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-how-to-console-default-view)の使用」を参照してください。

**重要**  
以下の点に注意してください。コンソールのデフォルトのビューポリシーステートメントには、カスタマーマネージドキーでオペレーションを実行する AWS KMS `Revoke`アクセス許可が含まれています。アカウントのカスタマーマネージドキー AWS アカウント へのアクセスを許可し、このアクセス許可を付与した権限を誤って取り消した場合、外部ユーザーは暗号化されたデータやデータの暗号化に使用されたキーにアクセスできなくなります。