

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

# キーポリシーを確認する
<a name="determining-access-key-policy"></a>

[キーポリシー](key-policies.md)は、KMS キーへのアクセスを制御するための主要な方法です。すべての KMS キーには、厳密に 1 つのキーポリシーが必要です。

キーポリシーが[デフォルトのキーポリシー](key-policy-default.md#key-policy-default-allow-root-enable-iam)で設定されるか、含まれている場合、キーポリシーによって、アカウントの IAM 管理者が IAM ポリシーを使用し、KMS キーへのアクセスを制御できるようになります。また、キーポリシーによって KMS キーを使用するアクセス許可が[別の AWS アカウント](key-policy-modifying-external-accounts.md) に付与されている場合、外部アカウントの IAM 管理者は、IAM ポリシーを使用してこれらのアクセス許可を委任できます。KMS キーにアクセスできるプリンシパルの完全なリストを確認するには、[IAM ポリシーを調べます](determining-access-iam-policies.md)。

アカウント[AWS マネージドキー](concepts.md#aws-managed-key)で AWS KMS [カスタマーマネージドキー](concepts.md#customer-mgn-key)または のキーポリシーを表示するには、 AWS KMS API で AWS マネジメントコンソール または [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html) オペレーションを使用します。キーポリシーを表示するには、KMS キーの `kms:GetKeyPolicy` アクセス許可が必要です。KMS キーのキーポリシーを表示する手順については、[キーポリシーを表示する](key-policy-viewing.md) を参照してください。

キーポリシードキュメントを確認し、各ポリシーステートメントの `Principal` 要素で指定されているすべてのプリンシパルを書き留めます。`Allow` 効果のあるポリシーステートメントでは、 `Principal`要素 AWS アカウント の IAM ユーザー、IAM ロール、および がこの KMS キーにアクセスできます。

**注記**  
[条件](policy-conditions.md)を使用してキーポリシーを制限しない限り、アクセス許可を付与するキーポリシーステートメントで、プリンシパルをアスタリスク (\$1) に設定しないでください。アスタリスクは、別のポリシーステートメントが明示的に拒否しない限り、KMS キーを使用するすべての AWS アカウント アクセス許可をすべての ID に付与します。他の のユーザーは AWS アカウント 、自分のアカウントで対応するアクセス許可があるたびに KMS キーを使用できます。

次の例では、[デフォルトのキーポリシー](key-policy-default.md)で見つかったポリシーステートメントを使用してこれを行う方法を示します。

**Example ポリシーステートメント 1**  

```
{
  "Sid": "Enable IAM User Permissions",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:root"},
  "Action": "kms:*",
  "Resource": "*"
}
```
ポリシーステートメント 1 では、 `arn:aws:iam::111122223333:root`は AWS アカウント 111122223333 を参照する[AWS アカウントプリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts)です。(アカウントのルートユーザーではありません)。デフォルトでは、 を使用して新しい KMS キーを作成するとき AWS マネジメントコンソール、またはプログラムで新しい KMS キーを作成するときに、このようなポリシーステートメントがキーポリシードキュメントに含まれますが、キーポリシーは提供されません。  
へのアクセスを許可するステートメントを含むキーポリシードキュメント AWS アカウント は、[アカウントの IAM ポリシーが KMS キーへのアクセスを許可できるようにします](key-policy-default.md#key-policy-default-allow-root-enable-iam)。つまり、アカウントのユーザーとロールは、キーポリシードキュメントにプリンシパルとして明示的にリストされていない場合でも、KMS キーにアクセスできる可能性があります。プリンシパルとして AWS アカウント リストされているすべての のすべての [IAM ポリシーを調べ](determining-access-iam-policies.md)て、この KMS キーへのアクセスを許可するかどうかを確認してください。

**Example ポリシーステートメント 2**  

```
{
  "Sid": "Allow access for Key Administrators",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/KMSKeyAdmins"},
  "Action": [
    "kms:Describe*",
    "kms:Put*",
    "kms:Create*",
    "kms:Update*",
    "kms:Enable*",
    "kms:Revoke*",
    "kms:List*",
    "kms:Disable*",
    "kms:Get*",
    "kms:Delete*",
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": "*"
}
```
ポリシーステートメント 2 では、 は AWS アカウント 111122223333 の KMSKeyAdmins という名前の IAM ロール`arn:aws:iam::111122223333:role/KMSKeyAdmins`を参照します。このロールを引き受ける権限を持つユーザーは、KMS キーを管理するための管理アクションである、ポリシーステートメントにリストされたアクションを実行できます。

**Example ポリシーステートメント 3**  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"},
  "Action": [
    "kms:DescribeKey",
    "kms:GenerateDataKey*",
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:Decrypt"
  ],
  "Resource": "*"
}
```
ポリシーステートメント 3 では、 は EncryptionApp in AWS アカウント 111122223333 という名前の IAM ロール`arn:aws:iam::111122223333:role/EncryptionApp`を参照します。このロールを引き受ける権限を持つプリンシパルは、対称暗号化 KMS キーの[暗号化オペレーション](kms-cryptography.md#cryptographic-operations)を含む、ポリシーステートメントにリストされたアクションを実行できます。

**Example ポリシーステートメント 4**  

```
{
  "Sid": "Allow attachment of persistent resources",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"},
  "Action": [
    "kms:ListGrants",
    "kms:CreateGrant",
    "kms:RevokeGrant"
  ],
  "Resource": "*",
  "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
}
```
ポリシーステートメント 4 では、 は EncryptionApp in AWS アカウント 111122223333 という名前の IAM ロール`arn:aws:iam::111122223333:role/EncryptionApp`を参照します。このロールを引き受ける権限を持つプリンシパルは、ポリシーステートメントにリストされたアクションを実行できます。これらのアクションは、**ポリシーステートメント 3 の例**で許可されたアクションと連動する際に、KMS キーの使用を、[AWS KMSと統合されたほとんどのAWS のサービス](service-integration.md) (特に、[権限](grants.md)を使用するサービス) に委任するために必要なアクションになります。`Condition` 要素の [kms:GrantIsForAWSResource](conditions-kms.md#conditions-kms-grant-is-for-aws-resource) 値により、委任は、委任が と統合 AWS KMS され、認可に許可を使用する AWS サービスである場合にのみ許可されます。

キーポリシードキュメントでプリンシパルを指定する各種方法をすべて確認するには、*IAM ユーザーガイド*の[プリンシパルの指定](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Principal_specifying)を参照してください。

 AWS KMS キーポリシーの詳細については、「」を参照してください[のキーポリシー AWS KMS](key-policies.md)。