在创建时授予标记资源的权限
以下标签创建 Amazon ECS API 操作允许您在创建资源时指定标签。如果在资源创建操作中指定了标签,则 AWS 会执行额外的授权,以验证是否分配了正确的权限以创建标签。
-
CreateCapacityProvider
-
CreateCluster
-
CreateService
-
CreateTaskSet
-
RegisterContainerInstance
-
RegisterTaskDefinition
-
RunTask
-
StartTask
您可以使用资源标签来实现基于属性的控制 (ABAC)。有关更多信息,请参阅使用资源标签控制对 Amazon ECS 资源的访问 和为 Amazon ECS 资源添加标签。
为允许在创建时添加标签,请创建或修改策略,以包含使用创建该资源的操作(如 ecs:CreateCluster
或 ecs:RunTask
和 ecs:TagResource
)的权限。
以下示例演示了一个策略,该策略使用户能够创建集群和在集群创建过程中添加标签。用户无权标记任何现有资源 (他们无法直接调用 ecs:TagResource
操作)。
{ "Statement": [ { "Effect": "Allow", "Action": [ "ecs:CreateCluster" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecs:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction": [ "CreateCluster", "CreateCapacityProvider", "CreateService", "CreateTaskSet", "RegisterContainerInstance", "RegisterTaskDefinition", "RunTask", "StartTask" ] } } } ] }
仅当用户在资源创建操作中应用了标签时,系统才会评估 ecs:TagResource
操作。因此,如果未在此请求中指定任何标签,则拥有创建资源权限 (假定没有标记条件) 的用户无需具备使用 ecs:TagResource
操作的权限。但是,如果用户不具备使用 ecs:TagResource
操作的权限而又试图创建带标签的资源,则请求将失败。
Amazon ECS 控制对特定标签的访问
您可以在 IAM policy 的 Condition
元素中使用其他条件来控制可应用到资源的标签键和值。
以下条件键可用于上一节中的示例:
-
aws:RequestTag
:指示请求中必须存在特定的标签键或标签键和值。也可在此请求中指定其他标签。-
与
StringEquals
条件运算符配合使用,以强制实施特定的标签键和值组合,例如强制实施标签cost-center
=cc123
:"StringEquals": { "aws:RequestTag/cost-center": "cc123" }
-
与
StringLike
条件运算符配合使用,以在请求中强制实施特定的标签键;如强制实施标签键purpose
:"StringLike": { "aws:RequestTag/purpose": "*" }
-
-
aws:TagKeys
:强制实施在请求中使用的标签键。-
与
ForAllValues
修饰符配合使用,以只强制实施请求中提供的特定标签键 (如果在请求中指定了标签,则只允许特定的标签键;不允许任何其他标签)。例如,允许标签键environment
或cost-center
:"ForAllValues:StringEquals": { "aws:TagKeys": ["environment","cost-center"] }
-
与
ForAnyValue
修饰符配合使用,以强制请求中至少存在一个指定的标签键。例如,强制请求中至少存在标签键environment
或webserver
中的一个:"ForAnyValue:StringEquals": { "aws:TagKeys": ["environment","webserver"] }
-
上述条件键可应用于支持标记的资源创建操作,以及 ecs:TagResource
操作。要了解 Amazon ECS API 操作是否支持添加标签,请参阅 Amazon ECS 的操作、资源和条件键。
为强制用户指定标签,在创建资源时,您必须使用 aws:RequestTag
条件键或 aws:TagKeys
条件键,并在资源创建操作中使用修饰符 ForAnyValue
。如果用户没有为资源创建操作指定标签,则不会对 ecs:TagResource
操作进行评估。
对于条件,条件键不区分大小写,条件值区分大小写。因此,要强制标签键区分大小写,请使用 aws:TagKeys
条件键,其中标签键指定为条件中的值。
有关多值条件的更多信息,请参阅IAM 用户指南中的创建测试多个键值的条件。