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

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

IAM ポリシーの例

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

重要

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

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

ユーザーが でKMSキーを表示できるようにする AWS KMS コンソール

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

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

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

このポリシーには 2 つのポリシーステートメントが含まれます。最初のポリシーステートメントの Resource要素では、この例のすべてのリージョンのすべてのKMSキーに対して指定されたアクセス許可を付与します。 AWS アカウント。 コンソールビューワーは、 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 オペレーションでは特定の が使用されないため*Resource要素の値は です。 AWS KMS リソース (KMS キーまたはエイリアス)。

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

に加えて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ポリシーでは、ユーザーは の任意のKMSキーを使用してデータを暗号化および復号できます。 AWS アカウント 111122223333。

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

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

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

{ "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キーを指定するときは、キーARNの KMS キーを使用する必要があります。

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

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