翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 条件キーを使用します。詳細については、「の ABAC AWS KMS」を参照してください。
CreateAlias、UpdateAlias、DeleteAlias などのエイリアスオペレーションへのアクセスを制御する、ポリシーステートメント内のみのリソースとしてエイリアス ARN を使用します。 詳細については、「エイリアスへのアクセスの制御」を参照してください。
-
アカウントとリージョンで複数のKMS キーを指定するには、キー ARN のリージョンまたはリソース ID の位置にワイルドカード文字 (*) を使用します。
例えば、アカウントの米国西部 (オレゴン) リージョンのすべての KMS キーを指定するには、「
Resource": "arn:aws:kms:us-west-2:111122223333:key/*
」を使用します。アカウントのすべてのリージョンですべての KMS キーを指定するには、「Resource": "arn:aws:kms:*:111122223333:key/*
」を使用します。 -
すべての KMS キーを表すには、ワイルドカード文字のみ (
"*"
) を使用します。この形式は、特定のKMS キーを使用しないオペレーション、つまり CreateKey、GenerateRandom、ListAliases、ListKeys などに使用します。
ポリシーステートメントを書き込むときは、すべての KMS キーへのアクセス許可を付与するのではなく、プリンシパルが使用する必要がある KMS キーだけを指定するのがベストプラクティスです。
例えば、次の IAM ポリシーステートメントで、プリンシパルは、ポリシーステートメントの Resource
要素に記載されている KMS キーに対してのみ、DescribeKey、GenerateDataKey、Decrypt オペレーションを呼び出すことができます。キー ARN による KMS キーの指定は、アクセス許可を指定した 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": "*"
}
}