エイリアスへのアクセスの制御 - AWS Key Management Service

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

エイリアスへのアクセスの制御

エイリアスを作成または変更すると、エイリアスとそのエイリアスに関連付けられた KMS キーが影響を受けます。このため、エイリアスを管理するプリンシパルには、エイリアスおよび影響を受けるすべての KMS キーに対してエイリアスオペレーションを呼び出す許可が必要です。これらの許可は、キーポリシーIAM ポリシー権限を使用することで付与できます。

注記

タグとエイリアスを管理する許可をプリンシパルに付与する場合は注意が必要です。タグまたはエイリアスを変更すると、カスタマーマネージドキーに対するアクセス許可が許可または拒否される可能性があります。詳細については、「AWS KMS の ABAC」および「エイリアスを使用して KMS キーへのアクセスを制御する」を参照してください。

すべての AWS KMS オペレーションに対するアクセスの制御については、「アクセス許可に関するリファレンス」を参照してください。

エイリアスを作成および管理するための権限は、次のように機能します。

kms:CreateAlias

エイリアスを作成するには、プリンシパルに、エイリアスおよび関連付けられた KMS キーの両方に対する次の許可が必要です。

  • kms:CreateAlias エイリアスの場合。エイリアスの作成を許可されたプリンシパルにアタッチされた IAM ポリシーでこのアクセス許可を提供します。

    次のポリシーステートメントの例では、Resource エレメントの特定のエイリアスを指定します。ただし、複数のエイリアス ARN を一覧表示したり、「test*」などのエイリアスパターンを指定したりできます。Resource 値を "*" に指定すると、プリンシパルがアカウントとリージョンで任意のエイリアスを作成できるようになります。エイリアスを作成する権限は、アカウントおよびリージョン内のすべてのリソースに対する kms:Create* 権限に含めることもできます。

    { "Sid": "IAMPolicyForAnAlias", "Effect": "Allow", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/test-key" }
  • KMS キーの kms:CreateAlias このアクセス許可は、キーポリシーまたはキーポリシーから委任された IAM ポリシーで指定する必要があります。

    { "Sid": "Key policy for 1234abcd-12ab-34cd-56ef-1234567890ab", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"}, "Action": [ "kms:CreateAlias", "kms:DescribeKey" ], "Resource": "*" }

条件キーを使用して、エイリアスと関連付けることができる KMS キーを制限できます。例えば、kms:KeySpec 条件キーを使用して、プリンシパルが非対称 KMS キーでのみエイリアスを作成できるようにします。KMS キーリソースに対する kms:CreateAlias 許可の制限に使用できる条件キーの詳細なリストについては、AWS KMS アクセス許可 を参照してください。

kms:ListAliases

アカウントとリージョンのエイリアスを一覧表示するには、プリンシパルに IAM ポリシーの kms:ListAliases アクセス権限が必要です。このポリシーは特定の KMS キーまたはエイリアスリソースに関連付けられていないため、ポリシー内のリソース要素の値が "*" である必要があります

例えば、次の IAM ポリシーステートメントでは、アカウントとリージョン内のすべての KMS キーとエイリアスを一覧表示する許可をプリンシパルに付与します。

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

kms:UpdateAlias

エイリアスに関連付けられている KMS キーを変更するには、プリンシパルにエイリアス用、現在の KMS キー用、新規の KMS キー用の 3 つの許可要素が必要です。

例えば、test-key エイリアスをキー ID 1234abcd-12ab-34cd-56ef-1234567890ab の KMS キーから、キー ID 0987dcba-09fe-87dc-65ba-ab0987654321 の KMS キーに変更するとします。その場合は、このセクションの例に似たポリシーステートメントを含めます。

  • kms:UpdateAlias エイリアスの場合。このアクセス権限は、プリンシパルにアタッチされている IAM ポリシーで提供します。次の IAM ポリシーは、特定のエイリアスを指定します。ただし、複数のエイリアス ARN を一覧表示したり、"test*" などのエイリアスパターンを指定したりできます。"*"Resource 値を指定することで、プリンシパルがアカウントとリージョンで任意のエイリアスを更新できるようにもなります。

    { "Sid": "IAMPolicyForAnAlias", "Effect": "Allow", "Action": [ "kms:UpdateAlias", "kms:ListAliases", "kms:ListKeys" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/test-key" }
  • 現在エイリアスに関連付けられている KMS キーの kms:UpdateAlias。このアクセス許可は、キーポリシーまたはキーポリシーから委任された IAM ポリシーで指定する必要があります。

    { "Sid": "Key policy for 1234abcd-12ab-34cd-56ef-1234567890ab", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"}, "Action": [ "kms:UpdateAlias", "kms:DescribeKey" ], "Resource": "*" }
  • kms:UpdateAliasオペレーションでエイリアスに関連付けられている KMS キーの 。このアクセス許可は、キーポリシーまたはキーポリシーから委任された IAM ポリシーで指定する必要があります。

    { "Sid": "Key policy for 0987dcba-09fe-87dc-65ba-ab0987654321", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"}, "Action": [ "kms:UpdateAlias", "kms:DescribeKey" ], "Resource": "*" }

条件キーを使用して、UpdateAlias オペレーションの KMS キーの一方または両方を制限できます。例えば、kms:ResourceAliases 条件キーを使用して、ターゲット KMS キーに既に特定のエイリアスがある場合にのみ、プリンシパルがエイリアスを更新できるようにします。KMS キーリソースに対する kms:UpdateAlias 許可の制限に使用できる条件キーの詳細なリストについては、AWS KMS アクセス許可 を参照してください。

kms:DeleteAlias

エイリアスを削除するには、プリンシパルにエイリアスおよび関連付けられた KMS キーに対する許可が必要です。

プリンシパルにリソースを削除する権限を与えるときは、いつものように注意する必要があります。ただし、エイリアスを削除しても関連付けられた KMS キーには影響しません。エイリアスに依存するアプリケーションでエラーが発生する可能性がありますが、エイリアスを誤って削除した場合は、エイリアスを再作成することができます。

  • kms:DeleteAlias エイリアスの場合。エイリアスの削除を許可されているプリンシパルにアタッチされた IAM ポリシーでこのアクセス許可を提供します。

    次のポリシーステートメントの例は、 Resource エレメントのエイリアスを指定します。ただし、複数のエイリアス ARN を一覧表示したり、"test*" などのエイリアスパターンを指定したりできます。"*"Resource 値を指定して、プリンシパルにアカウントとリージョンで任意のエイリアスを削除させることもできます。

    { "Sid": "IAMPolicyForAnAlias", "Effect": "Allow", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/test-key" }
  • 関連付けられた KMS キーの kms:DeleteAlias。このアクセス許可は、キーポリシーまたはキーポリシーから委任された IAM ポリシーで指定する必要があります。

    { "Sid": "Key policy for 1234abcd-12ab-34cd-56ef-1234567890ab", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/KMSAdminUser" }, "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias", "kms:DescribeKey" ], "Resource": "*" }

エイリアスのアクセス許可を制限する

リソースが KMS キーの場合、条件キーを使用してエイリアスのアクセス許可を制限できます。例えば、次の IAM ポリシーでは、特定のアカウントとリージョンの KMS キーに対するエイリアスオペレーションを許可します。ただし、kms:KeyOrigin 条件キーを使用して、 のキーマテリアルを持つ KMS キーへのアクセス許可をさらに制限しますAWS KMS。

KMS キーリソースに対するエイリアスのアクセス許可の制限に使用できる条件キーの詳細なリストについては、AWS KMS アクセス許可 を参照してください。

{ "Sid": "IAMPolicyKeyPermissions", "Effect": "Allow", "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Condition": { "StringEquals": { "kms:KeyOrigin": "AWS_KMS" } } }

リソースがエイリアスのポリシーステートメントでは、条件キーを使用できません。プリンシパルが管理できるエイリアスを制限するには、エイリアスへのアクセスを制御する IAM ポリシーステートメントの Resource 要素の値を使用します。例えば、次のポリシーステートメントでは、エイリアスが Restricted で始まる場合を除き、プリンシパルが AWS アカウント とリージョンで任意のエイリアスを作成、更新、削除できるようにします。

{ "Sid": "IAMPolicyForAnAliasAllow", "Effect": "Allow", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/*" }, { "Sid": "IAMPolicyForAnAliasDeny", "Effect": "Deny", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/Restricted*" }