

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

# IAM ポリシーの例
<a name="customer-managed-policies"></a>

このセクションでは、さまざまな AWS KMS アクションのためのアクセス許可を付与する IAM ポリシーの例を示しています。

**重要**  
以下のポリシーのアクセス許可の一部は、KMS キーのキーポリシーも同じアクセス許可を付与する場合にのみ付与されます。詳細については、「[アクセス許可に関するリファレンス](kms-api-permissions-reference.md)」を参照してください。

JSON ポリシードキュメントの記述と書式設定については、『 [IAM ユーザーガイド』の「IAM JSON ポリシーリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) *」を参照してください*。

**Topics**
+ [AWS KMS コンソールでの KMS キーの表示をユーザーに許可する](#iam-policy-example-read-only-console)
+ [KMS キーの作成をユーザーに許可する](#iam-policy-example-create-key)
+ [特定の の任意の KMS キーを使用して暗号化および復号することをユーザーに許可する AWS アカウント](#iam-policy-example-encrypt-decrypt-one-account)
+ [特定の およびリージョン内の任意の KMS キーを使用して暗号化 AWS アカウント および復号化することをユーザーに許可する](#iam-policy-example-encrypt-decrypt-one-account-one-region)
+ [特定の KMS キーにより暗号化および復号することをユーザーに許可する](#iam-policy-example-encrypt-decrypt-specific-cmks)
+ [KMS キーの無効化または削除を禁止する](#iam-policy-example-deny-disable-delete)

## AWS KMS コンソールでの KMS キーの表示をユーザーに許可する
<a name="iam-policy-example-read-only-console"></a>

次の IAM ポリシーは、 AWS KMS コンソールへの読み取り専用アクセスをユーザーに許可します。これらのアクセス許可を持つユーザーは、 内のすべての KMS キーを表示できますが AWS アカウント、KMS キーを作成または変更することはできません。

**AWS マネージドキー** および **[カスタマーマネージドキー]** ページに KMS キーを表示するには、キーにタグやエイリアスがない場合でも、プリンシパルに [kms:ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)、[kms:ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)、[tag:GetResources](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html) アクセス許可が必要です。KMS キーの詳細ページでオプションの KMS キーテーブルの列とデータを表示するには、残りのアクセス許可 (特に [kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)) が必要です。エラーなしでデフォルトのビューでキーポリシーを表示するには、[iam:ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html) および [iam:ListRoles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html) アクセス許可が必要です。**カスタムキーストア** ページのデータおよびカスタムキーストアの KMS キーの詳細を表示するには、プリンシパルに [kms:DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) アクセス許可も必要です。

ユーザーのコンソールアクセスを特定の KMS キーに制限すると、コンソールは、表示されない各 KMS キーにエラーを表示します。

このポリシーには 2 つのポリシーステートメントが含まれます。最初のポリシーステートメントの `Resource` 要素は、例 AWS アカウントのすべてのリージョンのすべての KMS キーで指定されたアクセス許可を付与します。 AWS KMS コンソールはプリンシパルのアカウントの KMS キーのみを表示するため、コンソールビューワーは追加のアクセスを必要としません。これは、他の で KMS キーを表示するアクセス許可がある場合にも当てはまります AWS アカウント。残りの AWS KMS および IAM アクセス許可には、特定の KMS キーに適用されないため、 `"Resource": "*"`要素が必要です。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ReadOnlyAccessForAllKMSKeysInAccount",
      "Effect": "Allow",
      "Action": [
        "kms:GetPublicKey",        
        "kms:GetKeyRotationStatus",
        "kms:GetKeyPolicy",
        "kms:DescribeKey",
        "kms:ListKeyPolicies",
        "kms:ListResourceTags",
        "tag:GetResources"
      ],
      "Resource": "arn:aws:kms:*:{{111122223333}}:key/*"
    },
    {
      "Sid": "ReadOnlyAccessForOperationsWithNoKMSKey",
      "Effect": "Allow",
      "Action": [
        "kms:ListKeys",
        "kms:ListAliases",
        "iam:ListRoles",
        "iam:ListUsers"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## KMS キーの作成をユーザーに許可する
<a name="iam-policy-example-create-key"></a>

以下の IAM ポリシーは、ユーザーがすべてのタイプの KMS キーを作成することを許可します。`Resource` 要素の値は です。これは、`CreateKey`オペレーションが特定の AWS KMS リソース (KMS キーまたはエイリアス) を使用しない`*`ためです。

ユーザーを特定タイプの KMS キーに制限するには、[kms:KeySpec](conditions-kms.md#conditions-kms-key-spec)、[kms:KeyUsage](conditions-kms.md#conditions-kms-key-usage)、および [kms:KeyOrigin](conditions-kms.md#conditions-kms-key-origin) 条件キーを使用します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "kms:CreateKey",
    "Resource": "*"
  }
}
```

------

キーを作成するプリンシパルには、関連するパーミッションが必要な場合があります。
+ **kms:PutKeyPolicy** — `kms:CreateKey` アクセス許可を持つプリンシパルには、KMS キーの初期キーポリシーを設定できます。ただし、`CreateKey` 発信者には、KMS キーのキーポリシーを変更できる [kms:PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) 許可が必要です。または、`CreateKey` の `BypassPolicyLockoutSafetyCheck` パラメータを指定する必要があります (非推奨)。`CreateKey` 発信者は、IAM ポリシーから KMS キーの `kms:PutKeyPolicy` アクセス許可を取得することも、作成している KMS キーのキーポリシーにこのアクセス許可を含めることもできます。
+ **kms:TagResource** — `CreateKey` オペレーション中に KMS キーにタグを追加するには、`CreateKey` 発信者に IAM ポリシーの [kms:TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) アクセス許可が必要です。新しい KMS キーのキーポリシーにこのアクセス許可を含めるだけでは不十分です。ただし、`CreateKey` 発信者が初期キーポリシーの `kms:TagResource` を含む場合は、KMS キーの作成後に、個別の呼び出しでタグを追加できます。
+ **kms:CreateAlias** — AWS KMS コンソールで KMS キーを作成するプリンシパルには、KMS キーとエイリアスに対する [kms:CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) アクセス許可が必要です。（コンソールは、へのコール `CreateKey` とへのコールを 2 つ行います `CreateAlias`）。IAM ポリシーでエイリアスアクセス許可を指定する必要があります。キーポリシーまたは IAM ポリシーで、KMS キーアクセス許可を付与できます。詳細については、「[エイリアスへのアクセスの制御](alias-access.md)」を参照してください。

に加えて`kms:CreateKey`、次の IAM ポリシーは、 内のすべての KMS キーに対する`kms:TagResource`アクセス許可 AWS アカウント と、アカウント内のすべてのエイリアスに対する`kms:CreateAlias`アクセス許可を提供します。また、IAM ポリシーでのみ提供できる便利な読み取り専用アクセス許可もいくつか含まれています。

この IAM ポリシーには、キーポリシーで設定できる `kms:PutKeyPolicy` アクセス権限やその他のアクセス権限は含まれていません。これらのアクセス許可は、1 つの KMS キーにのみ適用されるキーポリシーで設定するのが[ベストプラクティス](iam-policies-best-practices.md)です。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMPermissionsForParticularKMSKeys",
      "Effect": "Allow",
      "Action": "kms:TagResource",
      "Resource": "arn:aws:kms:*:{{111122223333}}:key/*"
    },
    {
      "Sid": "IAMPermissionsForParticularAliases",
      "Effect": "Allow",
      "Action": "kms:CreateAlias",
      "Resource": "arn:aws:kms:*:{{111122223333}}:alias/*"
    },
    {
      "Sid": "IAMPermissionsForAllKMSKeys",
      "Effect": "Allow",
      "Action": [
        "kms:CreateKey",
        "kms:ListKeys",
        "kms:ListAliases"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## 特定の の任意の KMS キーを使用して暗号化および復号することをユーザーに許可する AWS アカウント
<a name="iam-policy-example-encrypt-decrypt-one-account"></a>

次の IAM ポリシーでは、 の任意の KMS キーを使用してデータを暗号化および復号化できます AWS アカウント 111122223333。

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

****  

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

------

## 特定の およびリージョン内の任意の KMS キーを使用して暗号化 AWS アカウント および復号化することをユーザーに許可する
<a name="iam-policy-example-encrypt-decrypt-one-account-one-region"></a>

次の IAM ポリシーでは、ユーザーは米国西部 (オレゴン) リージョンの で AWS アカウント `111122223333`任意の KMS キーを使用してデータを暗号化および復号化できます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt"
    ],
    "Resource": [
      "arn:aws:kms:us-west-2:{{111122223333}}:key/*"
    ]
  }
}
```

------

## 特定の KMS キーにより暗号化および復号することをユーザーに許可する
<a name="iam-policy-example-encrypt-decrypt-specific-cmks"></a>

次の IAM ポリシーでは、 `Resource` エレメントで指定された 2 つの KMS キーを使用して、ユーザーがデータを暗号化および復号できます。IAM ポリシーステートメントで KMS キーを指定するときは、KMS キーの [キー ARN](concepts.md#key-id-key-ARN) を使用する必要があります。

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

****  

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

------

## KMS キーの無効化または削除を禁止する
<a name="iam-policy-example-deny-disable-delete"></a>

次の IAM ポリシーでは、別の IAM ポリシーまたはキーポリシーで許可されている場合でも、ユーザーが KMS キーを無効化、削除できないようにします。アクセス権限を明示的に拒否するポリシーは、同じアクセス権限を明示的に付与するポリシーを含め、他のすべてのポリシーを上書きします。詳細については、「[アクセス AWS KMS 許可のトラブルシューティング](policy-evaluation.md)」を参照してください。

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

****  

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

------