IAM ポリシーの例 - AWS Key Management Service

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

IAM ポリシーの例

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

重要

以下のポリシーのアクセス許可の一部は、KMS キーのキーポリシーも同じアクセス許可を付与する場合にのみ付与されます。詳細については、「アクセス許可に関するリファレンス」を参照してください。

JSON ポリシードキュメントの記述と書式設定については、『 IAM ユーザーガイド』の「IAM JSON ポリシーリファレンス 」を参照してください

AWS KMS コンソールでの KMS キーの表示をユーザーに許可する

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

AWS マネージドキー およびカスタマーマネージドキーページで KMS キーを表示するには、キーにタグやエイリアスがない場合でも、プリンシパルには kms:ListKeyskms:ListAliasestag:GetResources のアクセス許可が必要です。残りのアクセス許可、特に kms:DescribeKey は、オプションの KMS キーテーブルの列とデータを KMS キーの詳細ページで表示するために必要です。iam:ListUsers および iam:ListRoles アクセス許可は、キーポリシーをエラーなしでデフォルトビューに表示するために必要です。カスタムキーストアページのデータとカスタムキーストアの KMS キーの詳細を表示するには、プリンシパルにも kms:DescribeCustomKeyStores アクセス許可が必要です。

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

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

{ "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 キーの作成をユーザーに許可する

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

ユーザーを特定のタイプの KMS キーに制限するには、kms:KeySpeckms:KeyUsagekmsKeyOrigin: 条件キーを使用します。

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

キーを作成するプリンシパルには、関連するパーミッションが必要な場合があります。

  • kms:PutKeyPolicy — アクセスkms:CreateKey許可を持つプリンシパルは、KMS キーの初期キーポリシーを設定できます。ただし、CreateKey呼び出し元には kms:PutKeyPolicy アクセス許可が必要です。これにより、KMS キーポリシーを変更したり、 の BypassPolicyLockoutSafetyCheckパラメータを指定したりすることができますCreateKey。これは推奨されません。CreateKey 発信者は、IAM ポリシーから KMS キーの kms:PutKeyPolicy アクセス許可を取得することも、作成している KMS キーのキーポリシーにこのアクセス許可を含めることもできます。

  • kms:TagResourceCreateKeyオペレーション中に KMS キーにタグを追加するには、CreateKey呼び出し元が IAM ポリシーで kms:TagResource アクセス許可を持っている必要があります。新しい KMS キーのキーポリシーにこのアクセス許可を含めるだけでは不十分です。ただし、CreateKey 発信者が初期キーポリシーの kms:TagResource を含む場合は、KMS キーの作成後に、個別の呼び出しでタグを追加できます。

  • kms:CreateAlias — AWS KMS コンソールで KMS キーを作成するプリンシパルには、KMS キーとエイリアスに対する kms:CreateAlias アクセス許可が必要です。(コンソールは、へのコール CreateKey とへのコールを 2 つ行います CreateAlias)。IAM ポリシーでエイリアスアクセス許可を指定する必要があります。キーポリシーまたは IAM ポリシーで、KMS キーアクセス許可を付与できます。詳細については、「エイリアスへのアクセスの制御」を参照してください。

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

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

{ "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 アカウント

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

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

特定の およびリージョン内の任意の KMS キーを使用して暗号化 AWS アカウント および復号化することをユーザーに許可する

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

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

特定の KMS キーにより暗号化および復号することをユーザーに許可する

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

{ "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/0987dcba-09fe-87dc-65ba-ab0987654321" ] } }

KMS キーの無効化または削除を禁止する

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

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