AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用标签控制对 Elastic Beanstalk 资源的访问

AWS Identity and Access Management (IAM) 用户策略语句中的条件是您用于指定 Elastic Beanstalk 操作需要完成的资源的权限的请求的一部分。有关指定策略语句条件的详细信息,请参阅Elastic Beanstalk 操作的资源和条件

使用条件中的标签是控制对资源和请求的访问的一种方法。有关标记 Elastic Beanstalk 资源的信息,请参阅在您的 Elastic Beanstalk 环境中标记资源。本主题讨论了基于标签的访问控制。

标签可以附加到资源,也可以从请求传入支持标签的服务。在 Elastic Beanstalk 中,环境可以具有标签,而且某些操作可以包括标签。在创建 IAM 策略时,您可以使用标签条件键来控制:

  • 哪些用户可以基于环境已有的标签对环境执行操作。

  • 哪些标签可以在操作的请求中传递。

  • 是否特定标签键可在请求中使用。

有关标准条件键的完整请求和语义,请参阅 IAM 用户指南 中的使用标签控制访问

以下示例演示了如何为 Elastic Beanstalk 用户指定策略中的标签条件。

例 1:基于资源标签限制操作

以下策略拒绝未经授权的用户对 Elastic Beanstalk 生产环境的执行操作的权限。为此,如果环境具有名为 stage 的带有值 gammaprod 的标签,则它会拒绝特定操作。除了托管用户策略,客户的管理员还可以将此 IAM 策略附加到未经授权的 IAM 用户。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "elasticbeanstalk:AddTags", "elasticbeanstalk:RemoveTags", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateEnvironment", "elasticbeanstalk:ListTagsForResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/stage": ["gamma", "prod"] } } } ] }

例 2:基于请求中的标签限制操作

以下策略拒绝未经授权的用户创建 Elastic Beanstalk 生产环境的权限。为此,如果请求指定一个名为 stage 的带有值为 gammaprod 的标签,则它会拒绝 CreateEnvironment 操作。此外,该策略还通过不允许标签修改操作来阻止这些未经授权的用户篡改生产环境的阶段以包含这些的标签值或完全删除 stage 标签。除了托管用户策略,客户的管理员还可以将此 IAM 策略附加到未经授权的 IAM 用户。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:AddTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/stage": ["gamma", "prod"] }, "ForAllValues:StringEquals": { "aws:TagKeys": ["stage"] } } }, { "Effect": "Deny", "Action": [ "elasticbeanstalk:RemoveTags" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": ["stage"] } } } ] }