

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

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

AWS PCS は、[サービスにリンクされたロール](service-linked-roles.md)を使用してアクセス許可を他の に委任します AWS のサービス。 AWS PCS サービスにリンクされたロールは事前定義されており、PCS AWS が AWS のサービス ユーザーに代わって他の を呼び出すために必要なアクセス許可が含まれています。事前定義されたアクセス許可には、 へのアクセスも含まれます AWS マネージドキー が、カスタマーマネージドキーへのアクセスは含まれません。

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

**注記**  
AWS PCS では、アカウントの暗号化されたボリュームを保護するためにデフォルトを使用する 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>

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

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

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

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

このページの例を使用して、PCS AWS にカスタマーマネージドキーへのアクセスを許可するキーポリシーを設定します。カスタマーマネージドキーのキーポリシーは、キーの作成時または後で変更できます。

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

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

詳細については、以下を参照してください。
+ *AWS CLI コマンドリファレンス*の [create-key](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html) 
+ *AWS CLI コマンドリファレンス*の [put-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html) 
+ デ*AWS Key Management Service ベロッパーガイド*[のキー ID とキー ARN](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html) を検索する
+ [PCS AWS のサービスにリンクされたロール](service-linked-roles.md)
+ [Amazon EBS ユーザーガイド](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html)*の「Amazon EBS* 暗号化」
+  「*AWS Key Management Service デベロッパーガイド*」の「[AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/)」

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

カスタマーマネージドキーのキーポリシーに次のポリシーステートメントを追加します。サンプル ARN を`AWSServiceRoleForPCS`サービスにリンクされたロールの ARN に置き換えます。このポリシー例では、 AWS PCS サービスにリンクされたロール (`AWSServiceRoleForPCS`) に、カスタマーマネージドキーを使用するためのアクセス許可を付与します。

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

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

 AWS PCS クラスターとは異なるアカウントにカスタマーマネージドキーを作成する場合は、キーポリシーと組み合わせて**許可**を使用して、キーへのクロスアカウントアクセスを許可する必要があります。

**キーへのアクセスを許可するには**

1. カスタマーマネージドキーのキーポリシーに次のポリシーステートメントを追加します。サンプル ARN を他のアカウントの ARN に置き換えます。{{111122223333}} を、PCS クラスター AWS アカウント を作成する の実際のアカウント ID AWS に置き換えます。そうすることで、次の 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. PCS クラスターを作成するアカウントから、関連するアクセス許可を AWS PCS AWS サービスにリンクされたロールに委任する許可を作成します。の値は、サービスにリンクされたロールの ARN `grantee-principal`です。の値はキーの ARN `key-id`です。

   次の [create-grant](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html) CLI コマンドの例では、アカウント {{111122223333}} `AWSServiceRoleForPCS`で という名前のサービスにリンクされたロールに、アカウント {{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/pcs.amazonaws.com/AWSServiceRoleForPCS \
     --operations "Encrypt" "Decrypt" "ReEncryptFrom" "ReEncryptTo" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "DescribeKey" "CreateGrant"
   ```
**注記**  
リクエストを行うユーザーには、 `kms:CreateGrant`アクションを使用するためのアクセス許可が必要です。

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

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowCreationOfGrantForTheKMSKeyinExternalAccount{{444455556666}}",
         "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)」を参照してください。
**重要**  
被付与者のプリンシパルとして指定されたサービスにリンクされたロール名は、既存のロールの名前でなければなりません。権限を作成した後、その権限で PCS AWS が指定された 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 アカウント へのアクセス権を付与する権限を取り消すと、 のユーザーは暗号化されたデータとキーにアクセス AWS アカウント できなくなります。