Application Auto Scaling 如何与 IAM 一起使用 - Application Auto Scaling

Application Auto Scaling 如何与 IAM 一起使用

注意

2017 年 12 月,对 Application Auto Scaling 进行了更新,同时为 Application Auto Scaling 集成服务启用了多个服务相关角色。需要特定的 IAM 权限 Application Auto Scaling 服务相关角色(或用于 Amazon EMR 弹性伸缩的服务角色),以便用户可以配置扩缩。

在使用 IAM 管理对 Application Auto Scaling 的访问权限之前,您需要了解哪些 IAM 功能可用于 Application Auto Scaling。

可以与 Application Auto Scaling 结合使用的 IAM 功能
IAM 功能 Application Auto Scaling 支持

基于身份的策略

策略操作

策略资源

策略条件键(特定于服务)

基于资源的策略

ACL

ABAC(策略中的标签)

部分

临时凭证

服务角色

服务相关角色

要大致了解 Application Auto Scaling 和其他 AWS 服务如何与大多数 IAM 功能结合使用,请参阅《IAM 用户指南》中的 与 IAM 一起使用的 AWS 服务

Application Auto Scaling 基于身份的策略

支持基于身份的策略:

基于身份的策略是可附加到身份(如 IAM 用户、用户组或角色)的 JSON 权限策略文档。这些策略控制用户和角色可在何种条件下对哪些资源执行哪些操作。要了解如何创建基于身份的策略,请参阅《IAM 用户指南》中的使用客户管理型策略定义自定义 IAM 权限

通过使用 IAM 基于身份的策略,您可以指定允许或拒绝的操作和资源以及允许或拒绝操作的条件。您无法在基于身份的策略中指定主体,因为它适用于其附加的用户或角色。要了解可在 JSON 策略中使用的所有元素,请参阅《IAM 用户指南》中的 IAM JSON 策略元素引用

Application Auto Scaling 基于身份的策略示例

要查看 Application Auto Scaling 基于身份的策略的示例,请参阅 Application Auto Scaling 基于身份的策略示例

操作

支持策略操作:

在 IAM policy 语句中,您可以从支持 IAM 的任何服务中指定任何 API 操作。对于 Application Auto Scaling,请使用以下前缀为 API 操作命名:application-autoscaling:。例如:application-autoscaling:RegisterScalableTargetapplication-autoscaling:PutScalingPolicyapplication-autoscaling:DeregisterScalableTarget

要在单个语句中指定多项操作,请使用逗号将它们隔开,如下例所示。

"Action": [ "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:DescribeScalingActivities"

您也可以使用通配符 (*) 指定多个操作。例如,要指定以单词 Describe 开头的所有操作,请包括以下操作。

"Action": "application-autoscaling:Describe*"

要查看 Application Auto Scaling 操作的完整列表,请参阅《服务授权参考》中的 AWS Application Auto Scaling 定义的操作

资源

支持策略资源:

在 IAM policy 声明中,Resource 元素指定了该声明涵盖的一个或多个对象。对于 Application Auto Scaling,每个 IAM policy 语句都适用于您使用可扩展目标的 Amazon 资源名称(ARN)指定的可扩展目标。

可扩展目标的 ARN 资源格式:

arn:aws:application-autoscaling:region:account-id:scalable-target/unique-identifier

例如,您可以在语句中使用 ARN 指示特定的可扩展目标,如下所示。唯一 ID(1234abcd56ab78cd901ef1234567890ab123)是 Application Auto Scaling 分配给可扩展目标的值。

"Resource": "arn:aws:application-autoscaling:us-east-1:123456789012:scalable-target/1234abcd56ab78cd901ef1234567890ab123"

您可以使用通配符(*)指定属于特定账户的所有实例,如下所示。

"Resource": "arn:aws:application-autoscaling:us-east-1:123456789012:scalable-target/*"

要指定所有资源,或者如果特定 API 操作不支持 ARN,请在 Resource 元素中使用 * 通配符,如下所示。

"Resource": "*"

有关更多信息,请参阅《服务授权参考》中的 AWS Application Auto Scaling 定义的资源类型

条件键

支持特定于服务的策略条件键:

您可以在控制 Application Auto Scaling 资源访问的 IAM policy 中指定条件。仅当条件为 True 时,策略语句才有效。

Application Auto Scaling 支持以下服务定义条件键,您可以在基于身份的策略中使用这些条件键来确定谁可以执行 Application Auto Scaling API 操作。

  • application-autoscaling:scalable-dimension

  • application-autoscaling:service-namespace

如需了解您可以与条件键搭配使用的 Application Auto Scaling API 操作,请参阅《服务授权参考》中的 AWS Application Auto Scaling 定义的操作。有关使用 Application Auto Scaling 条件键的更多信息,请参阅 AWS Application Auto Scaling 的条件键

要查看对所有服务都可用的全局条件键,请参阅《IAM 用户指南》中的 AWS 全局条件上下文键

基于资源的策略

支持基于资源的策略:

其他 AWS 服务(如 Amazon Simple Storage Service)支持基于资源的权限策略。例如,您可以将权限策略挂载到 S3 存储桶以管理对该存储桶的访问权限。

Application Auto Scaling 不支持基于资源的策略。

访问控制列表 (ACL)

支持 ACL:

Application Auto Scaling 不支持访问控制列表 (ACL)。

结合使用 ABAC 与 Application Auto Scaling

支持 ABAC(策略中的标签):部分支持

基于属性的访问控制 (ABAC) 是一种授权策略,该策略基于属性来定义权限。在 AWS 中,这些属性称为标签。您可以将标签附加到 IAM 实体(用户或角色)以及 AWS 资源。标记实体和资源是 ABAC 的第一步。然后设计 ABAC 策略,以在主体的标签与他们尝试访问的资源标签匹配时允许操作。

ABAC 在快速增长的环境中非常有用,并在策略管理变得繁琐的情况下可以提供帮助。

要基于标签控制访问,您需要使用 aws:ResourceTag/key-nameaws:RequestTag/key-nameaws:TagKeys 条件键在策略的条件元素中提供标签信息。

ABAC 可用于支持标签的资源,但并非所有资源都支持标签。计划操作和扩缩策略不支持标签,但可扩展目标支持标签。有关更多信息,请参阅 Application Auto Scaling 的标签支持

有关 ABAC 的更多信息,请参阅《IAM 用户指南》中的什么是 ABAC?。要查看设置 ABAC 步骤的教程,请参阅《IAM 用户指南》中的使用基于属性的访问权限控制(ABAC)

将临时凭证与 Application Auto Scaling 一起使用

支持临时凭证:

某些 AWS 服务 在您使用临时凭证登录时无法正常工作。有关更多信息,包括 AWS 服务 与临时凭证配合使用,请参阅 IAM 用户指南中的使用 IAM 的 AWS 服务

如果您不使用用户名和密码而用其它方法登录到 AWS Management Console,则使用临时凭证。例如,当您使用贵公司的单点登录(SSO)链接访问 AWS 时,该过程将自动创建临时凭证。当您以用户身份登录控制台,然后切换角色时,您还会自动创建临时凭证。有关切换角色的更多信息,请参阅《IAM 用户指南》中的从用户切换到 IAM 角色(控制台)

您可以使用 AWS CLI 或者 AWS API 创建临时凭证。之后,您可以使用这些临时凭证访问 AWS。AWS 建议您动态生成临时凭证,而不是使用长期访问密钥。有关更多信息,请参阅 IAM 中的临时安全凭证

服务角色

支持服务角色:

如果您的 Amazon EMR 集群使用弹性伸缩,则此功能允许 Application Auto Scaling 代表您担任服务角色。与服务相关角色类似,服务角色允许此服务访问其他服务中的资源以代表您完成操作。服务角色显示在 IAM 账户中,并归该账户所有。这意味着,IAM 管理员可以更改该角色的权限。但是,这样做可能会中断服务的功能。

Application Auto Scaling 仅支持 Amazon EMR 的服务角色。有关 EMR 服务角色的文档,请参阅 Amazon EMR Management Guide 中的 Using automatic scaling with a custom policy for instance groups

注意

引入服务相关角色之后,不再需要旧式服务角色,例如,适用于 Amazon ECS 和竞价型实例集的服务角色。

服务相关角色

支持服务相关角色:

服务相关角色是一种与 AWS 服务 相关的服务角色。服务可以代入代表您执行操作的角色。服务相关角色显示在您的 AWS 账户 中,并由该服务拥有。IAM 管理员可以查看但不能编辑服务相关角色的权限。

有关 Application Auto Scaling 服务相关角色的信息,请参阅 Application Auto Scaling 的服务相关角色