翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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」を参照してください。
エイリアスは、、CreateAlias、 UpdateAliasなどのエイリアスオペレーションへのアクセスを制御するポリシーステートメントでのみリソース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": "*" } }