IAM ポリシーステートメントでのKMSキーの指定 - AWS Key Management Service

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

IAM ポリシーステートメントでのKMSキーの指定

IAM ポリシーを使用して、プリンシパルがKMSキーを使用または管理することを許可できます。 KMSキーは、ポリシーステートメントの Resource要素で指定されます。

  • IAM ポリシーステートメントでKMSキーを指定するには、そのキー ARNを使用する必要があります。キー IDエイリアス名、またはエイリアスARNを使用して、 IAMポリシーステートメントでKMSキーを識別することはできません。

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

    エイリアスに基づいてKMSキーへのアクセスを制御するには、kms:RequestAlias または kms:ResourceAliases 条件キーを使用します。詳細については、「AWS KMS の ABAC」を参照してください。

    エイリアスは、、CreateAliasUpdateAliasなどのエイリアスオペレーションへのアクセスを制御するポリシーステートメントでのみリソースARNとして使用しますDeleteAlias。詳細については、「エイリアスへのアクセスの制御」を参照してください。

  • アカウントとリージョンで複数のKMSキーを指定するには、キー のリージョンまたはリソース ID の位置でワイルドカード文字 (*) を使用しますARN。

    たとえば、アカウントの米国西部 (オレゴン) リージョンのすべてのKMSキーを指定するには、Resource": "arn:aws:kms:us-west-2:111122223333:key/*「」を使用します。アカウントのすべてのリージョンですべてのKMSキーを指定するには、「」を使用しますResource": "arn:aws:kms:*:111122223333:key/*

  • すべてのKMSキーを表すには、ワイルドカード文字のみ () を使用します"*"。この形式は、特定のKMSキーを使用しないオペレーション、つまり CreateKey、、ListAliases、および GenerateRandomに使用しますListKeys

ポリシーステートメントを記述するときは、プリンシパルにすべてのKMSキーへのアクセスを許可するのではなく、プリンシパルが使用する必要があるKMSキーのみを指定するのがベストプラクティスです。

例えば、次のIAMポリシーステートメントではDescribeKey、プリンシパルが、ポリシーステートメントの Resource要素にリストされているKMSキーに対してのみ、GenerateDataKey、、Decrypt オペレーションを呼び出すことができます。ベストプラクティスであるKMSキー でキーを指定するとARN、アクセス許可は指定されたKMSキーのみに制限されます。

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

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

{ "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 アクセス許可

例えば、次のポリシーステートメントでは、 Deny効果を使用して、プリンシパルが指定されたオペレーションを任意のKMSキーで使用することを禁止しています。Resource 要素でワイルドカード文字を使用してすべてのKMSキーを表します。

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

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

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