在 IAM 策略中使用标签 - AWS RoboMaker

AWS RoboMaker 不再向新客户提供。的现有客户 AWS RoboMaker 可以继续照常使用该服务。 AWS Batch 现在是运行容器化仿真的首选服务。了解更多

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 IAM 策略中使用标签

可以在用于 AWS RoboMaker API 操作的 IAM 策略中应用基于标签的资源级权限。这可让您更好地控制用户可创建、修改或使用哪些资源。在 IAM 策略中将 Condition 元素(也称作 Condition 块)与以下条件上下文键和值结合使用来基于资源标签控制用户访问(权限):

  • 使用 aws:ResourceTag/tag-key: tag-value 可允许或拒绝带特定标签的资源上的用户操作。

  • 使用 aws:RequestTag/tag-key: tag-value 可要求在发出创建或修改允许标签的资源的 API 请求时使用(或不使用)特定标签。

  • 使用 aws:TagKeys: [tag-key, ...] 可要求在发出创建或修改允许标签的资源的 API 请求时使用(或不使用)一组特定标签键。

注意

IAM 策略中的条件上下文键和值仅适用于能够标记的资源的标识符是必需参数的那些 AWS RoboMaker 操作。例如,基于条件上下文键和值,不允许或拒绝使用 ListFleets,因为此请求中未引用可标记资源(队列、机器人、机器人应用程序、模拟应用程序、模拟作业、部署作业)。

有关更多信息,请参阅 AWS Identity and Access Management 用户指南中的使用标签控制对 AWS 资源的访问。该指南的 IAM JSON 策略参考部分包含 IAM 中的 JSON 策略的元素、变量和评估逻辑的详细语法、描述和示例。

以下示例策略应用两个基于标签的限制。受此策略限制的 IAM 用户:

  • 无法创建带标签"env=prod"的机器人(参阅示例第 "aws:RequestTag/env" : "prod" 行)。

  • 无法删除具有现有标签"env=prod"的机器人(参阅示例第 "aws:ResourceTag/env" : "prod" 行)。

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Deny", "Action" : "robomaker:CreateRobot", "Resource" : "*", "Condition" : { "StringEquals" : { "aws:RequestTag/env" : "prod" } } }, { "Effect" : "Deny", "Action" : "robomaker:DeleteRobot", "Resource" : "*", "Condition" : { "StringEquals" : { "aws:ResourceTag/env" : "prod" } } }, { "Effect": "Allow", "Action": "robomaker:*", "Resource": "*" } ] }

您还可以为给定标签键指定多个标签值,方法是将它们括在列表中,如下所示:

"StringEquals" : { "aws:ResourceTag/env" : ["dev", "test"] }
注意

如果您基于标签允许或拒绝用户访问资源,则必须考虑显式拒绝用户对相同资源添加或删除这些标签的能力。否则,用户可能通过修改资源标签来绕过您的限制并获得资源访问权限。