

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

# IAM ポリシーステートメントで KMS キーを指定する
<a name="cmks-in-iam-policies"></a>

IAM ポリシーを使用して、プリンシパルに KMS キーの使用または管理を許可できます。KMS キーは、ポリシーステートメントの `Resource` 要素で指定されます。
+ IAM ポリシーステートメントで KMS キーを指定するには、[キー ARN](concepts.md#key-id-key-ARN) を使用する必要があります。[キー ID](concepts.md#key-id-key-id)、[エイリアス名](concepts.md#key-id-alias-name)、[エイリアス ARN](concepts.md#key-id-alias-ARN) を使用して IAM ポリシーステートメントの KMS キーを識別することはできません。

  例:「`Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`」

  エイリアスに基づいて KMS キーへのアクセスを制御するには、[kms:RequestAlias](conditions-kms.md#conditions-kms-request-alias) または [kms:ResourceAliases](conditions-kms.md#conditions-kms-resource-aliases) 条件キーを使用します。詳細については、「[の ABAC AWS KMS](abac.md)」を参照してください。

  [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/CreateAlias.html)、[UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/UpdateAlias.html)、[DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/DeleteAlias.html) などのエイリアスオペレーションへのアクセスを制御する、ポリシーステートメント内のみのリソースとしてエイリアス ARN を使用します。　 詳細については、「[エイリアスへのアクセスの制御](alias-access.md)」を参照してください。
+ アカウントとリージョンで複数のKMS キーを指定するには、キー ARN のリージョンまたはリソース ID の位置にワイルドカード文字 (\$1) を使用します。

  例えば、アカウントの米国西部 (オレゴン) リージョンのすべての KMS キーを指定するには、「`Resource": "arn:aws:kms:us-west-2:111122223333:key/*`」を使用します。アカウントのすべてのリージョンですべての KMS キーを指定するには、「`Resource": "arn:aws:kms:*:111122223333:key/*`」を使用します。
+ すべての KMS キーを表すには、ワイルドカード文字のみ (`"*"`) を使用します。この形式は、特定のKMS キーを使用しないオペレーション、つまり [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)、[GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)、[ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)、[ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) などに使用します。

ポリシーステートメントを書き込むときは、すべての KMS キーへのアクセス許可を付与するのではなく、プリンシパルが使用する必要がある KMS キーだけを指定するのが[ベストプラクティス](iam-policies-best-practices.md)です。

例えば、次の IAM ポリシーステートメントで、プリンシパルは、ポリシーステートメントの `Resource` 要素に記載されている KMS キーに対してのみ、[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)、[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)、[Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) オペレーションを呼び出すことができます。キー ARN による KMS キーの指定は、アクセス許可を指定した KMS キーのみに制限するベストプラクティスです。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:DescribeKey",
      "kms:GenerateDataKey",
      "kms:Decrypt"
    ],
    "Resource": [
     "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
     "arn:aws:kms:us-west-2:111122223333:key/01234abcd-12ab-34cd-56ef-1234567890ab"
    ]
  }
}
```

------

特定の信頼された のすべての KMS キーにアクセス許可を適用するには AWS アカウント、リージョンとキー ID の位置でワイルドカード文字 (\$1) を使用できます。例えば、次のポリシーステートメントでは、プリンシパルが 2 つの信頼できるサンプルアカウントのすべての KMS キーで、指定されたオペレーションを呼び出すことができます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:DescribeKey",
      "kms:GenerateDataKey",
      "kms:GenerateDataKeyPair"
    ],
    "Resource": [
      "arn:aws:kms:*:111122223333:key/*",
      "arn:aws:kms:*:444455556666:key/*"
    ]
  }
}
```

------

`Resource` 要素内でワイルドカード文字 (`"*"`) を単独で使用することもできます。アカウントが使用を許可されているすべての KMS キーへのアクセスを許可するため、主に、特定の KMS キーおよび `Deny` ステートメントを含まないオペレーションに推奨されます。また、機密性の低い読み取り専用オペレーションのみを許可するポリシーステートメントで使用することもできます。 AWS KMS オペレーションに特定の KMS キーが含まれているかどうかを判断するには、 のテーブルの**リソース**列で **KMS キー**の値を探します[AWS KMS アクセス許可](kms-api-permissions-reference.md)。

例えば、次のポリシーステートメントでは、`Deny` エフェクトを使用して、プリンシパルが任意の KMS キーに対して指定されたオペレーションを使用できないようにします。`Resource` 要素でワイルドカード文字を使用して、すべての KMS キーを表します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": [
      "kms:CreateKey",
      "kms:PutKeyPolicy",
      "kms:CreateGrant",
      "kms:ScheduleKeyDeletion"
    ],
    "Resource": "*"
  }
}
```

------

次のポリシーステートメントでは、ワイルドカード文字だけを使用してすべての KMS キーを表します。ただし、機密性の低い読み取り専用オペレーションと、特定の KMS キーに適用されないオペレーションのみを許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:CreateKey",
      "kms:ListKeys",
      "kms:ListAliases",
      "kms:ListResourceTags"
    ],
    "Resource": "*"
  }
}
```

------