

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

# デフォルトのキーポリシー
<a name="key-policy-default"></a>

KMS キーを作成するときに、新しい KMS キーのキーポリシーを指定できます。指定しない場合、 によって AWS KMS 自動的に作成されます。が AWS KMS 使用するデフォルトのキーポリシーは、 AWS KMS コンソールでキーを作成するか AWS KMS API を使用するかによって異なります。

**KMS キーをプログラムにより作成したときのデフォルトキーポリシー**  
[AWS KMS API](https://docs.aws.amazon.com/kms/latest/APIReference/) を使用してプログラムで KMS キーを作成し ( [AWS SDKs](https://aws.amazon.com/tools/#sdk) [AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/)または の使用を含む[AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/))、キーポリシーを指定しない場合、 は非常にシンプルなデフォルトキーポリシー AWS KMS を適用します。このデフォルトのキーポリシーには、IAM ポリシーを使用して KMS キー上のすべての AWS KMS オペレーションへのアクセスを許可するアクセス許可を KMS キーを所有 AWS アカウント する に付与する 1 つのポリシーステートメントがあります。このポリシーステートメントの詳細については、「[へのアクセスを許可 AWS アカウント し、IAM ポリシーを有効にする](#key-policy-default-allow-root-enable-iam)」を参照してください。

**を使用して KMS キーを作成するときのデフォルトのキーポリシー AWS マネジメントコンソール**  
[を使用して KMS キーを作成する AWS マネジメントコンソール](create-keys.md)と、キーポリシーは [へのアクセスを許可し、IAM ポリシーを有効にするポリシーステートメントで始まります AWS アカウント](#key-policy-default-allow-root-enable-iam)。次に、コンソールは、[キー管理者ステートメント](#key-policy-default-allow-administrators)、[キーユーザーステートメント](#key-policy-default-allow-users)、およびプリンシパルが[他の AWS サービス](#key-policy-service-integration)で KMS キーを使用できるようにするステートメント (ほとんどのキータイプ) を追加します。 AWS KMS コンソールの機能を使用して、IAM ユーザー、IAM ロール、キー管理者である AWS アカウント ユーザー、キーユーザー (またはその両方) を指定できます。

**アクセス許可**
+ [へのアクセスを許可 AWS アカウント し、IAM ポリシーを有効にする](#key-policy-default-allow-root-enable-iam)
+ [KMS キーの管理をキー管理者に許可する](#key-policy-default-allow-administrators)
+ [KMS キーの使用をキーユーザーに許可する](#key-policy-default-allow-users)
  + [暗号化オペレーションで KMS キーを使用することをキーユーザーに許可する](#key-policy-users-crypto)
  + [キーユーザーが AWS サービスで KMS キーを使用できるようにする](#key-policy-service-integration)

## へのアクセスを許可 AWS アカウント し、IAM ポリシーを有効にする
<a name="key-policy-default-allow-root-enable-iam"></a>

次のデフォルトのキーポリシーステートメントは重要です。
+ これにより、KMS キーを所有 AWS アカウント する に KMS キーへのフルアクセスが付与されます。

  他の AWS リソースポリシーとは異なり、 AWS KMS キーポリシーはアカウントまたはそのアイデンティティに自動的にアクセス許可を付与しません。アカウント管理者に許可を付与するには、キーポリシーに、このような許可を提供する明示的なステートメントを含める必要があります。
+ これにより、アカウントは IAM ポリシーを使用して、キーポリシーに加えて KMS キーへのアクセスを許可できるようになります。

  この許可がないと、キーへのアクセスを許可する IAM ポリシーは無効になりますが、キーへのアクセスを拒否する IAM ポリシーは依然として有効です。
+ 削除できないアカウントのルートユーザーを含むアカウント管理者にアクセスコントロールの許可を付与することで、キーが管理不能になるリスクが軽減されます。

次のキーポリシーステートメントは、プログラムで作成された KMS キーのデフォルトキーポリシーの全文です。これは、 AWS KMS コンソールで作成された KMS キーのデフォルトキーポリシーの最初のポリシーステートメントです。

```
{
  "Sid": "Enable IAM User Permissions",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:root"
   },
  "Action": "kms:*",
  "Resource": "*"
}
```

**IAM ポリシーが KMS キーへのアクセスを許可できるようにします。**  <a name="allow-iam-policies"></a>
上記のキーポリシーステートメントは、IAM ポリシーを使用するためのキーアクセス許可と、KMS キーに対するすべてのアクション (`kms:*`) を許可するキーポリシーを所有 AWS アカウント する に付与します。  
このキーポリシーステートメントのプリンシパルは[アカウントプリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts)であり、これはこの形式にある ARN で表されています: `arn:aws:iam::account-id:root`。アカウントプリンシパルは、 AWS アカウントとその管理者を表します。  
キーポリシーステートメントのプリンシパルがアカウントプリンシパルである場合、ポリシーステートメントはどの IAM プリンシパルに対しても、KMS キーを使用する許可を付与しません。代わりにアカウントに IAM ポリシーを使用して、ポリシーステートメントで指定された許可を*委譲する*ことができます。このデフォルトのキーポリシーステートメントにより、アカウントは IAM ポリシーを使用して、KMS キーに対するすべてのアクション (`kms:*`) の許可を委譲することができます。

** KMS キーが管理不能になるリスクを減らします。**  
他の AWS リソースポリシーとは異なり、 AWS KMS キーポリシーはアカウントまたはそのプリンシパルに自動的にアクセス許可を付与しません。プリンシパルに許可を与えるには ([アカウントプリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts)を含む)、許可を明示的に提供するキーポリシーステートメントを使用する必要があります。アカウントプリンシパルまたはプリンシパルに、KMS キーへのアクセス権を付与する必要はありません。ただし、アカウントプリンシパルにアクセス権を付与することは、キーが管理不能になるのを防ぐために役立ちます。  
たとえば、KMS キーへのアクセスを 1 人のユーザーだけに付与するキーポリシーを作成したとします。その後、そのユーザーを削除すると、キーは管理不能になり、KMS キーへのアクセスを取り戻すために[AWS サポート](https://console.aws.amazon.com/support/home#/case/create)に連絡しなければなりません。  
上記のキーポリシーステートメントは、キーを制御するアクセス許可を[アカウントプリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts)に付与します。アカウントプリンシパルは、[アカウントルートユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)を含む AWS アカウント とその管理者を表します。アカウントのルートユーザーは、 AWS アカウントを削除しない限り削除できない唯一のプリンシパルです。IAM のベストプラクティスでは、緊急時を除き、アカウントのルートユーザーの代わりとして行動することを推奨していません。ただし、KMS キーへのアクセス権を持つ他のすべてのユーザーおよびロールを削除した場合には、アカウントのルートユーザーとして行動する必要が生じる場合があります。

## KMS キーの管理をキー管理者に許可する
<a name="key-policy-default-allow-administrators"></a>

コンソールによって作成されるデフォルトのキーポリシーでは、アカウントで IAM ユーザーとロールを選択し、それらをキー管理者にすることができます。このステートメントは、キー管理者ステートメントと呼ばれます。キー管理者には、KMS キーを管理するためのアクセス許可はありますが、[暗号化オペレーション](kms-cryptography.md#cryptographic-operations)で KMS キーを使用するためのアクセス許可はありません。デフォルトビューやポリシービューで KMS キーを作成するときに、IAM ユーザーとロールをキー管理者のリストに追加できます。

**警告**  
キー管理者はキーポリシーを変更して許可を作成するアクセス許可を持っているため、このポリシーで指定されていないアクセス AWS KMS 許可を自分自身や他のユーザーに付与できます。  
タグとエイリアスを管理するアクセス権限を持つプリンシパルも、KMS キーへのアクセスを制御することができます。詳細については、「[の ABAC AWS KMS](abac.md)」を参照してください。

**注記**  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

次の例は、 AWS KMS コンソールのデフォルトビューでのキー管理者ステートメントを示しています。

![\[コンソールのデフォルトキーポリシーのキー管理者、デフォルトビュー\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/images/console-key-policy-administrators-60.png)


 AWS KMS コンソールのポリシービューでのキー管理者ステートメントの例を次に示します。このキー管理者ステートメントは、単一リージョンの対称暗号化 KMS キー向けのものです。

**注記**  
 AWS KMS コンソールは、ステートメント識別子 のキーポリシーにキー管理者を追加します`"Allow access for Key Administrators"`。このステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

```
{
  "Sid": "Allow access for Key Administrators",
  "Effect": "Allow",
  "Principal": {"AWS":"arn:aws:iam::111122223333:role/ExampleAdminRole"},
  "Action": [
    "kms:Create*",
    "kms:Describe*",
    "kms:Enable*",
    "kms:List*",
    "kms:Put*",
    "kms:Update*",
    "kms:Revoke*",
    "kms:Disable*",
    "kms:Get*",
    "kms:Delete*",
    "kms:TagResource",
    "kms:UntagResource",
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion",
    "kms:RotateKeyOnDemand"
  ],
  "Resource": "*"
}
```

最も一般的な KMS キーである単一リージョンの対称暗号化 KMS キーのデフォルトキー管理者ステートメントは、以下の許可を付与します。各アクセス許可の詳細については、「[AWS KMS アクセス許可](kms-api-permissions-reference.md)」を参照してください。

 AWS KMS コンソールを使用して KMS キーを作成すると、コンソールは指定したユーザーとロールをキー管理者ステートメントの `Principal`要素に追加します。

これらのアクセス許可の多くには、指定した動詞で始まるアクセス許可すべてを許可するワイルドカード文字 (`*`) が含まれています。その結果、 が新しい API オペレーション AWS KMS を追加すると、キー管理者は自動的にそれらを使用できます。新しいオペレーションを含めるために、キーポリシーを更新する必要はありません。キー管理者を固定された一連の API オペレーションに限定する場合は、[キーポリシーを変更](key-policy-modifying.md)することができます。

**`kms:Create*`**  
[`kms:CreateAlias`](kms-alias.md) および [`kms:CreateGrant`](grants.md) を許可します。(`kms:CreateKey` のアクセス許可は IAM ポリシーでのみ有効です)

**`kms:Describe*`**  
[`kms:DescribeKey`](viewing-keys.md) を許可します。– AWS マネジメントコンソールで KMS キーのキーの詳細ページを表示するには、`kms:DescribeKey` のアクセス許可が必要です。

**`kms:Enable*`**  
[`kms:EnableKey`](enabling-keys.md) を許可します。対称暗号化 KMS キーについては、[`kms:EnableKeyRotation`](rotate-keys.md) も許可します。

**`kms:List*`**  
[`kms:ListGrants`](grants.md)、[https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeyPolicies.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeyPolicies.html)、および [`kms:ListResourceTags`](tagging-keys.md) を許可します。(KMS キーを AWS マネジメントコンソールで表示するのに必要な `kms:ListAliases` および `kms:ListKeys` のアクセス許可は、IAM ポリシーでのみ有効です)

**`kms:Put*`**  
[https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) を許可します。このアクセス許可により、キー管理者が、この KMS キーのキーポリシーを変更できるようになります。

**`kms:Update*`**  
[`kms:UpdateAlias`](alias-update.md) および [https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateKeyDescription.html) を許可します。マルチリージョンキーの場合、この KMS キーで [`kms:UpdatePrimaryRegion`](multi-region-update.md#update-primary-console) が許可されます。

**`kms:Revoke*`**  
[`kms:RevokeGrant`](grant-delete.md) を許可します。これにより、キー管理者は自分がグラントの[廃止するプリンシパル](grants.md#terms-retiring-principal)でなくても[グラントを削除](grant-delete.md)することができます。

**`kms:Disable*`**  
[`kms:DisableKey`](enabling-keys.md) を許可します。対称暗号化 KMS キーについては、[`kms:DisableKeyRotation`](rotate-keys.md) も許可します。

**`kms:Get*`**  
[`kms:GetKeyPolicy`](key-policy-viewing.md) および [`kms:GetKeyRotationStatus`](rotate-keys.md) を許可します。インポートしたキーマテリアルを含む KMS キーの場合、[https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html) を許可します。非対称 KMS キーの場合、[https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html) を許可します。 AWS マネジメントコンソールで KMS キーのキーポリシーを表示するには、`kms:GetKeyPolicy` のアクセス許可が必要です。

**`kms:Delete*`**  
[`kms:DeleteAlias`](kms-alias.md) を許可します。インポートしたキーマテリアルを含むキーの場合、[`kms:DeleteImportedKeyMaterial`](importing-keys.md) を許可します。`kms:Delete*` のアクセス許可では、キー管理者が KMS キー (`ScheduleKeyDeletion`) を削除できません。

**`kms:TagResource`**  
[`kms:TagResource`](tagging-keys.md) を許可します。これにより、キー管理者は KMS キーにタグを追加できるようになります。タグは KMS キーへのアクセス制御にも使用できるため、このアクセス許可により、管理者が KMS キーへのアクセスを許可または拒否できるようになります。詳細については、「[の ABAC AWS KMS](abac.md)」を参照してください。

**`kms:UntagResource`**  
[`kms:UntagResource`](tagging-keys.md) を許可します。これにより、キー管理者は KMS キーからタグを削除できるようになります。タグはキーへのアクセス制御に使用できるため、このアクセス許可により、管理者は KMS キーへのアクセスを許可または拒否できるようになります。詳細については、「[の ABAC AWS KMS](abac.md)」を参照してください。

**`kms:ScheduleKeyDeletion`**  
[https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) を許可します。これにより、キー管理者は[この KMS キーを削除](deleting-keys.md)できるようになります。このアクセス許可を削除するには、**[Allow key administrators to delete this key]** (キーの管理者がこのキーを削除できるようにします) オプションをオフにします。

**`kms:CancelKeyDeletion`**  
[https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html) を許可します。これにより、キー管理者は[この KMS キーの削除をキャンセル](deleting-keys.md)できるようになります。このアクセス許可を削除するには、**[Allow key administrators to delete this key]** (キーの管理者がこのキーを削除できるようにします) オプションをオフにします。

**`kms:RotateKeyOnDemand`**  
[https://docs.aws.amazon.com/kms/latest/APIReference/API_RotateKeyOnDemand.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_RotateKeyOnDemand.html) を許可します。これによりキー管理者は、[この KMS キーのキーマテリアルのオンデマンドローテーションを実行できます](rotating-keys-on-demand.md)。

 

AWS KMS は、専用キーを作成するときに、デフォルトのキー管理者ステートメントに次のアクセス許可を追加します。

**`kms:ImportKeyMaterial`**  
[https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html) のアクセス許可により、キー管理者が KMS キーにキーマテリアルをインポートできるようになります。このアクセス許可は、[キーマテリアルのない KMS キーを作成する](importing-keys-create-cmk.md)場合にのみキーポリシーに含まれます。

**`kms:ReplicateKey`**  
アクセス[https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)許可により、キー管理者は別の[リージョンにマルチリージョンのプライマリキーのレプリカを作成できます](multi-region-keys-replicate.md) AWS 。このアクセス許可は、マルチリージョンプライマリキーまたはマルチリージョンレプリカキーを作成する場合にのみ、キーポリシーに含まれます。

**`kms:UpdatePrimaryRegion`**  
[https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html) のアクセス許可により、キー管理者が、[マルチリージョンレプリカキーをマルチリージョンプライマリキーに変更](multi-region-update.md)できるようになります。このアクセス許可は、マルチリージョンプライマリキーまたはマルチリージョンレプリカキーを作成する場合にのみ、キーポリシーに含まれます。

## KMS キーの使用をキーユーザーに許可する
<a name="key-policy-default-allow-users"></a>

コンソールが KMS キー用に作成するデフォルトのキーポリシーでは、アカウントおよび外部で IAM ユーザーと IAM ロールを選択し、*キーユーザーに* AWS アカウントすることができます。

コンソールは、キーユーザーのキーポリシーに 2 つのポリシーステートメントを追加します。
+ [KMS キーの直接使用](#key-policy-users-crypto) — 最初のキーポリシーステートメントは、そのタイプの KMS キーでサポートされるすべての[暗号化オペレーション](kms-cryptography.md#cryptographic-operations)に対して KMS キーを直接使用するアクセス許可をキーユーザーに付与します。
+ [サービスで AWS KMS キー](#key-policy-service-integration)を使用する — 2 番目のポリシーステートメントは、 と統合されている AWS サービスがユーザーに代わって KMS キー AWS KMS を使用して Amazon S3 バケットや Amazon DynamoDB テーブルなどのリソースを保護するアクセス許可をキーユーザーに付与します。

KMS キーを作成するときに、IAM ユーザー、IAM ロールなどをキーユーザー AWS アカウント のリストに追加できます。次の図に示すように、キーポリシーのコンソールのデフォルトビューを使用してリストを編集することもできます。キーポリシー用デフォルトビューは、キーの詳細ページにあります。他の のユーザーに KMS キー AWS アカウント の使用を許可する方法の詳細については、「」を参照してください[他のアカウントのユーザーに KMS キーの使用を許可する](key-policy-modifying-external-accounts.md)。

**注記**  
IAM ベストプラクティスでは、長期の認証情報を持つ IAM ユーザーの使用は推奨されていません。可能な限り、一時的な認証情報を提供する IAM ロールを使用してください。詳細については、「IAM ユーザーガイド」の「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

![\[コンソールのデフォルトキーポリシーのキーユーザー、デフォルトビュー\]](http://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/images/console-key-policy-users-sm.png)


デフォルトの単一リージョンの対称用キーユーザーステートメントにより、次のアクセス許可が付与されます。各アクセス許可の詳細については、[AWS KMS アクセス許可](kms-api-permissions-reference.md) を参照してください。

 AWS KMS コンソールを使用して KMS キーを作成すると、コンソールは指定したユーザーとロールを各キーユーザーステートメントの `Principal`要素に追加します。

**注記**  
 AWS KMS コンソールは、ステートメント識別子 `"Allow use of the key"`および のキーポリシーにキーユーザーを追加します`"Allow attachment of persistent resources"`。これらのステートメント識別子を変更すると、コンソールでステートメントに加えた更新が表示される方法に影響する可能性があります。

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": [
    "arn:aws:iam::111122223333:role/ExampleRole",
    "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:role/ExampleRole",
    "arn:aws:iam::444455556666:root"
  ]},
  "Action": [
    "kms:CreateGrant",
    "kms:ListGrants",
    "kms:RevokeGrant"
  ],
  "Resource": "*",
  "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
}
```

## 暗号化オペレーションで KMS キーを使用することをキーユーザーに許可する
<a name="key-policy-users-crypto"></a>

キーユーザーには、KMS キーでサポートされるすべての[暗号化オペレーション](kms-cryptography.md#cryptographic-operations)で KMS キー を直接使用するためのアクセス許可が付与されています。また、[DescribeKey ](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)オペレーションを使用して、 AWS KMS コンソールまたは AWS KMS API オペレーションを使用して KMS キーに関する詳細情報を取得することもできます。

デフォルトでは、 AWS KMS コンソールは、次の例のようなキーユーザーステートメントをデフォルトのキーポリシーに追加します。これらは異なる API オペレーションをサポートするため、対称暗号化 KMS キー、HMAC KMS キー、パブリックキー暗号化用の非対称 KMS キー、および署名と検証用の非対称 KMS キー向けのポリシーステートメント内のアクションは、それぞれわずかに異なります。

**対称暗号化 KMS キー**  
コンソールは、対称暗号化 KMS キーのキーポリシーに以下のステートメントを追加します。  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",  
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:Decrypt",
    "kms:DescribeKey",
    "kms:Encrypt",
    "kms:GenerateDataKey*",
    "kms:ReEncrypt*"
  ],
  "Resource": "*"
}
```

**HMAC KMS キー**  
コンソールは、HMAC KMS キーのキーポリシーに以下のステートメントを追加します。  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",  
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:DescribeKey",
    "kms:GenerateMac",
    "kms:VerifyMac"
  ],
  "Resource": "*"
}
```

**非対称 KMS キーのパブリックキー暗号化**  
コンソールでは、**暗号化と復号**のキーを使用して、非対称 KMS キーのキーポリシーに次のステートメントを追加します。  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:DescribeKey",
    "kms:GetPublicKey"
  ],
  "Resource": "*"
}
```

**非対称 KMS キーの署名および検証**  
コンソールは、**署名と検証**のキーを使用して、非対称 KMS キーのキーポリシーに次のステートメントを追加します。  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:DescribeKey",
    "kms:GetPublicKey",
    "kms:Sign",
    "kms:Verify"
  ],
  "Resource": "*"
}
```

**共有シークレットを取得するための非対称 KMS キー**  
コンソールでは、**[キーアグリーメント]** のキーを使用して、非対称 KMS キーのキーポリシーに次のステートメントを追加します。  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:DescribeKey",
    "kms:GetPublicKey",
    "kms:DeriveSharedSecret"
  ],
  "Resource": "*"
}
```

これらのステートメントのアクションは、キーユーザーに次のアクセス許可を付与します。

[https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)  
キーユーザーがこの KMS キーでデータを暗号化できるようにします。

[https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)  
キーユーザーがこの KMS キーでデータを復号できるようにします。

[https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)  
キーユーザーがこの KMS キーを使用して共有シークレットを取得できるようにします。

[https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)  
この KMS キーに関する詳細情報 (その識別子、作成日、キーステータスなど) を、キーユーザーが取得できるようにします。また、キーユーザーは KMS キーの詳細を AWS KMS コンソールに表示できます。

`kms:GenerateDataKey*`  
クライアント側の暗号化オペレーションのために、対称データキーまたは非対称データキーペアをキーユーザーがリクエストできるようにします。コンソールは \$1 ワイルドカード文字を使用して、次の API オペレーションの権限を表します: [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)、[GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)、[GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)、[GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)。これらのアクセス許可は、データキーを暗号化する対称 KMS キーでのみ有効です。

[kms:GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)  
キーユーザーが HMAC KMS キーを使用して HMAC タグを生成できるようにします。

[kms:GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)  
非対称 KMS キーのパブリックキーをキーユーザーがダウンロードできるようにします。このパブリックキーを共有する関係者は、外部でデータを暗号化できます AWS KMS。ただし、これらの暗号テキストは、 AWS KMSで [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) オペレーションを呼び出すことによってのみ復号できます。

[kms:ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)\$1   
この KMS キーで最初に暗号化されたデータの再暗号化、またはこの KMS キーを使用して以前に暗号化されたデータの再暗号化をキーユーザーが行えるようにします。[ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) オペレーションでは、ソースおよび送信先 KMS キーの両方にアクセスする必要があります。これを行うには、ソース KMS キーの `kms:ReEncryptFrom` アクセス許可と宛先 KMS キーの `kms:ReEncryptTo` アクセス許可を許可します。ただし、わかりやすいようにコンソールでは、両方の KMS キーで `kms:ReEncrypt*` を (`*` をワイルドカード文字で) 許可します。

[kms:Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html)  
この KMS キーでメッセージにキーユーザーが署名できるようにします。

[kms:Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html)  
この KMS キーで署名をキーユーザーが検証できるようにします。

[kms:VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)  
キーユーザーが HMAC KMS キーを使用して HMAC タグを検証できるようにします。

## キーユーザーが AWS サービスで KMS キーを使用できるようにする
<a name="key-policy-service-integration"></a>

コンソールのデフォルトのキーポリシーは、grants.services を使用する AWS サービスでデータを保護するために必要な許可をキーユーザーに付与します。 AWS 多くの場合、 は許可を使用して、KMS キーを使用するための具体的で制限された許可を取得します。

このキーポリシーステートメントは、キーユーザーが KMS キーに対する許可を作成、表示、および取り消すことを許可します。ただし、許可オペレーションリクエストが[AWS 統合された サービス AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration)から送信された場合に限ります。[kms:GrantIsForAWSResource](conditions-kms.md#conditions-kms-grant-is-for-aws-resource) ポリシー条件では、ユーザーがこれらの許可オペレーションを直接呼び出すことはできません。キーユーザーが許可すると、 AWS サービスはユーザーに代わって許可を作成し、KMS キーを使用してユーザーのデータを保護することをサービスに許可できます。

キーユーザーが統合サービスで KMS キーを使用するには、これらのグラント許可が必要になりますが、これらの許可だけでは不十分です。キーユーザーには、統合されたサービスを使用するアクセス許可も必要です。と統合する AWS サービスへのアクセス権をユーザーに付与する方法の詳細については AWS KMS、統合サービスのドキュメントを参照してください。

```
{
  "Sid": "Allow attachment of persistent resources",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"},
  "Action": [
    "kms:CreateGrant",
    "kms:ListGrants",
    "kms:RevokeGrant"
  ],
  "Resource": "*",
  "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
}
```

例えば、キーユーザーは以下の方法により、KMS キーでこれらのアクセス許可を使用できます。
+ この KMS キーを Amazon Elastic Block Store (Amazon EBS) および Amazon Elastic Compute Cloud (Amazon EC2) とともに使用して、暗号化された EBS ボリュームを EC2 インスタンスにアタッチします。キーユーザーは、KMS キーを使用して暗号化されたボリュームをインスタンスにアタッチするアクセス許可を、Amazon EC2 に暗黙的に付与します。詳細については、「[Amazon Elastic Block Store (Amazon EBS) が を使用する方法 AWS KMS](services-ebs.md)」を参照してください。
+ この KMS キーを Amazon Redshift とともに使用して、暗号化されたクラスターを起動します。キーユーザーは、KMS キーを使用して暗号化されたクラスターを起動し、暗号化されたスナップショットを作成するアクセス許可を、Amazon Redshift に暗黙的に付与します。詳細については、「[Amazon Redshift が を使用する方法 AWS KMS](services-redshift.md)」を参照してください。
+ この KMS キーを、[AWS KMSと統合された他のAWS サービス](service-integration.md)で使用します。これらのサービスは、暗号化されたリソースを作成、管理したり、これらのサービスで使用する際にグラントを使用します。

デフォルトキーポリシーにより、キーユーザーは、自身のグラント許可をグラントを使用するすべての統合サービスに付与することができます。ただし、指定された AWS サービスへのアクセス許可を制限するカスタムキーポリシーを作成できます。詳細については、「[kms:ViaService](conditions-kms.md#conditions-kms-via-service)」の条件キーを参照してください。