本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用标签控制对账户连接资源的访问
标签可以附加到资源,也可以从请求传入支持标签的服务。策略中的资源可以具有标签,而且策略中的某些操作可以包括标签。标记条件键包括 aws:RequestTag
和 aws:ResourceTag
条件键。在创建 IAM 策略时,您可以使用标签条件键来控制:
-
哪些用户可以对连接资源执行操作(基于该资源已有的标签)。
-
哪些标签可以在操作的请求中传递。
-
特定的标签键是否能在请求中使用。
以下示例演示如何为 CodeCatalyst 账户连接用户指定策略中的标签条件。有关条件键的更多信息,请参阅 IAM 中的策略条件键。
示例 1:基于请求中的标签允许操作
以下策略授予用户批准账户连接的权限。
为此,如果请求指定一个名为 Project
的带有值 ProjectA
的标签,则它允许 AcceptConnection
和 TagResource
操作。(aws:RequestTag
条件键用于控制可以通过 IAM 请求传递哪些标签。) aws:TagKeys
条件确保标签键区分大小写。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecatalyst:AcceptConnection", "codecatalyst:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/Project": "ProjectA" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["Project"] } } } ] }
示例 2:基于资源标签允许操作
以下策略授予用户对账户连接资源执行操作以及获取其相关信息的权限。
为此,如果该连接具有名为 Project
的带值 ProjectA
的标签,则它允许特定操作。(aws:ResourceTag
条件键用于控制可以通过 IAM 请求传递哪些标签。)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecatalyst:GetConnection", "codecatalyst:DeleteConnection", "codecatalyst:AssociateIamRoleToConnection", "codecatalyst:DisassociateIamRoleFromConnection", "codecatalyst:ListIamRolesForConnection", "codecatalyst:PutBillingAuthorization" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Project": "ProjectA" } } } ] }