タグへのアクセスを制御する - AWS Key Management Service

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

タグへのアクセスを制御する

AWS KMS コンソールまたは を使用してタグを追加、表示、削除するにはAPI、プリンシパルにタグ付けのアクセス許可が必要です。これらのアクセス許可はキーポリシーで付与できます。キーIAMポリシーで許可されている場合にのみ、VPCポリシー (エンドポイントポリシーを含む) で指定することもできます。AWSKeyManagementServicePowerUser 管理ポリシーは、プリンシパルがアカウントがアクセスできるすべてのKMSキーのタグをタグ付け、タグ解除、および一覧表示することを許可します。

タグ AWS のグローバル条件キーを使用して、これらのアクセス許可を制限することもできます。では AWS KMS、これらの条件により、 TagResourceや などのタグ付けオペレーションへのアクセスを制御できますUntagResource

注記

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

ポリシーの例と詳細については、「 IAMユーザーガイド」の「タグキーに基づくアクセスの制御」を参照してください。

タグを作成および管理するためのアクセス許可は、次のように機能します。

kms:TagResource

プリンシパルにタグの追加または編集を許可します。KMS キーの作成中にタグを追加するには、プリンシパルに特定のKMSキーに制限されていない IAMポリシーのアクセス許可が必要です。

kms:ListResourceTags

プリンシパルがKMSキーのタグを表示できるようにします。

kms:UntagResource

プリンシパルがKMSキーからタグを削除できるようにします。

ポリシーのタグ付け許可

キーポリシーまたは IAM ポリシーでタグ付けのアクセス許可を指定できます。例えば、次のキーポリシーの例では、KMSキーに対するタグ付けアクセス許可を特定のユーザーに付与します。これにより、サンプルの管理者ロールまたはデベロッパーロールを引き受けることができるすべてのユーザーにタグを表示する許可が付与されます。

{ "Version": "2012-10-17", "Id": "example-key-policy", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow all tagging permissions", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/LeadAdmin", "arn:aws:iam::111122223333:user/SupportLead" ]}, "Action": [ "kms:TagResource", "kms:ListResourceTags", "kms:UntagResource" ], "Resource": "*" }, { "Sid": "Allow roles to view tags", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:role/Administrator", "arn:aws:iam::111122223333:role/Developer" ]}, "Action": "kms:ListResourceTags", "Resource": "*" } ] }

プリンシパルに複数のKMSキーに対するタグ付け許可を付与するには、 IAMポリシーを使用できます。このポリシーを有効にするには、各キーのKMSキーポリシーで、アカウントがIAMポリシーを使用してKMSキーへのアクセスを制御することを許可する必要があります。

たとえば、次のIAMポリシーでは、プリンシパルがKMSキーを作成することを許可します。また、指定したアカウントのすべてのKMSキーでタグを作成および管理することもできます。この組み合わせにより、プリンシパルは CreateKeyオペレーションの Tags パラメータを使用して、KMSキーの作成中にキーにタグを追加できます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPolicyCreateKeys", "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" }, { "Sid": "IAMPolicyTags", "Effect": "Allow", "Action": [ "kms:TagResource", "kms:UntagResource", "kms:ListResourceTags" ], "Resource": "arn:aws:kms:*:111122223333:key/*" } ] }

タグ付け許可を制限する

ポリシー条件を使用して、タグ付け許可を制限できます。次のポリシー条件を kms:TagResource および kms:UntagResource 許可に適用できます。例えば、aws:RequestTag/tag-key 条件を使用して、プリンシパルが特定のタグのみを追加できるようにするか、プリンシパルが特定のタグキーを持つタグを追加しないように許可できます。または、 kms:KeyOrigin条件を使用して、プリンシパルがインポートされたKMSキーマテリアルでキーにタグ付けまたはタグ解除できないようにすることもできます。

タグを使用してKMSキーへのアクセスを制御する場合のベストプラクティスとして、 aws:RequestTag/tag-key または aws:TagKeys条件キーを使用して、許可されるタグ (またはタグキー) を決定します。

例えば、次のIAMポリシーは前のポリシーと似ています。ただしこのポリシーでは、プリンシパルはタグ (TagResource) の作成とタグ UntagResource の削除を、Project タグキーを持つタグに対してのみ実行できます。

TagResource および UntagResourceリクエストには複数のタグを含めることができるため、aws:TagKeys 条件を使用して ForAllValues演算子または ForAnyValue set 演算子を指定する必要があります。ForAnyValue 演算子では、リクエスト内のタグキー 1 つ以上が、ポリシーのタグキーの 1 つと一致する必要があります。ForAllValues 演算子では、リクエスト内のタグキーすべてが、ポリシーのタグキーの 1 つと一致する必要があります。ForAllValues リクエストにタグtrueがない場合は も返されますが、タグが指定されていない場合は TagResource と UntagResource は失敗します。セット演算子の詳細については、「 ユーザーガイド」の「複数のキーと値を使用する」を参照してください。 IAM

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPolicyCreateKey", "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" }, { "Sid": "IAMPolicyViewAllTags", "Effect": "Allow", "Action": "kms:ListResourceTags", "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "IAMPolicyManageTags", "Effect": "Allow", "Action": [ "kms:TagResource", "kms:UntagResource" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "ForAllValues:StringEquals": {"aws:TagKeys": "Project"} } } ] }