基于身份的扩缩计划策略示例 - Amazon Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

基于身份的扩缩计划策略示例

默认情况下,全新的 IAM 用户没有执行任何操作的权限。IAM 管理员必须创建 IAM 策略以向用户和角色授予使用扩缩计划的权限。然后,管理员必须将这些策略附加到需要这些权限的 IAM 用户或角色。

要了解如何使用这些示例 JSON 策略文档创建 IAM 基于身份的策略,请参阅《IAM 用户指南》 中的在 JSON 选项卡上创建策略

如果您是首次创建策略,建议您先在账户中创建 IAM 用户并按顺序将策略附加到用户。在将每个策略附加到用户时,可使用控制台验证该策略的效果。

策略最佳实践

基于身份的策略非常强大。它们确定某个人是否可以创建、访问或删除您账户中的 Amazon Auto Scaling 资源。这些操作可能会使 Amazon Web Services 账户 产生成本。创建或编辑基于身份的策略时,请遵循以下准则和建议:

  • 开始使用 Amazon 托管式策略 – 要快速开始使用 Amazon Auto Scaling,请使用 Amazon 托管式策略,为您的员工提供他们所需的权限。这些策略已在您的账户中提供,并由 Amazon 维护和更新。有关更多信息,请参阅 IAM 用户指南中的开始使用 Amazon 托管式策略中的权限

  • 授予最低权限 – 创建自定义策略时,仅授予执行任务所需的许可。最开始只授予最低权限,然后根据需要授予其它权限。这样做比起一开始就授予过于宽松的权限而后再尝试收紧权限来说更为安全。有关更多信息,请参阅 IAM 用户指南 中的授予最低权限

  • 为敏感操作启用 MFA – 为增强安全性,要求 IAM 用户使用多重身份验证 (MFA) 来访问敏感资源或 API 操作。要了解更多信息,请参阅《IAM 用户指南》中的在 Amazon 中使用多重身份验证 (MFA)

  • 使用策略条件来增强安全性 – 在切实可行的范围内,定义基于身份的策略在哪些情况下允许访问资源。例如,您可编写条件来指定请求必须来自允许的 IP 地址范围。您也可以编写条件,以便仅允许指定日期或时间范围内的请求,或者要求使用 SSL 或 MFA。有关更多信息,请参阅 IAM 用户指南中的 IAM JSON 策略元素:条件

允许用户创建扩展计划

下面显示允许用户创建扩展计划的权限策略示例。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling-plans:*", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudformation:ListStackResources" ], "Resource": "*" } ] }

要使某个用户能够使用扩展计划,该用户必须拥有额外的权限,以允许他们使用其账户中的特定资源。这些权限在 其他必需的权限中列出。

每个控制台用户还需要一些权限,以便他们能够发现其账户中的可扩展资源,并从 Amazon Auto Scaling 控制台查看 CloudWatch 指标数据的图表。下面列出了使用 Amazon Auto Scaling 控制台所需的一组附加的权限:

  • cloudformation:ListStacks:列出堆栈。

  • tag:GetTagKeys:查找包含特定标签键的可扩展资源。

  • tag:GetTagValues:查找包含特定标签值的资源。

  • autoscaling:DescribeTags:查找包含特定标签的 Auto Scaling 组。

  • cloudwatch:GetMetricData:查看指标图表中的数据。

允许用户启用预测式扩展

下面显示允许用户启用预测式扩展的权限策略示例。这些权限可扩展设置为扩展 Auto Scaling 组的扩展计划的功能。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeScheduledActions", "autoscaling:BatchPutScheduledUpdateGroupAction", "autoscaling:BatchDeleteScheduledAction" ], "Resource": "*" } ] }

其他必需的权限

授予扩缩计划权限时,您必须决定要向用户授予权限的具体资源。根据要支持的场景,您可以在 IAM 策略语句的 Action 元素中指定以下操作。

Auto Scaling 组

要将 Auto Scaling 组添加到扩展计划,用户必须具有来自 Amazon EC2 Auto Scaling 的以下权限:

  • autoscaling:UpdateAutoScalingGroup

  • autoscaling:DescribeAutoScalingGroups

  • autoscaling:PutScalingPolicy

  • autoscaling:DescribePolicies

  • autoscaling:DeletePolicy

ECS 服务

要将 ECS 服务添加到扩展计划,用户必须具有来自 Amazon ECS 和 Application Auto Scaling 的以下权限:

  • ecs:DescribeServices

  • ecs:UpdateService

  • application-autoscaling:RegisterScalableTarget

  • application-autoscaling:DescribeScalableTargets

  • application-autoscaling:DeregisterScalableTarget

  • application-autoscaling:PutScalingPolicy

  • application-autoscaling:DescribeScalingPolicies

  • application-autoscaling:DeleteScalingPolicy

Spot 队列

要将 Spot 队列添加到扩展计划,用户必须具有来自 Amazon EC2 和 Application Auto Scaling 的以下权限:

  • ec2:DescribeSpotFleetRequests

  • ec2:ModifySpotFleetRequest

  • application-autoscaling:RegisterScalableTarget

  • application-autoscaling:DescribeScalableTargets

  • application-autoscaling:DeregisterScalableTarget

  • application-autoscaling:PutScalingPolicy

  • application-autoscaling:DescribeScalingPolicies

  • application-autoscaling:DeleteScalingPolicy

DynamoDB 表或全局索引

要将 DynamoDB 表或全局索引添加到扩展计划,用户必须具有来自 DynamoDB 和 Application Auto Scaling 的以下权限:

  • dynamodb:DescribeTable

  • dynamodb:UpdateTable

  • application-autoscaling:RegisterScalableTarget

  • application-autoscaling:DescribeScalableTargets

  • application-autoscaling:DeregisterScalableTarget

  • application-autoscaling:PutScalingPolicy

  • application-autoscaling:DescribeScalingPolicies

  • application-autoscaling:DeleteScalingPolicy

Aurora 数据库集群

要将 Aurora 数据库集群添加到扩展计划,用户必须具有来自 Amazon Aurora 和 Application Auto Scaling 的以下权限:

  • rds:AddTagsToResource

  • rds:CreateDBInstance

  • rds:DeleteDBInstance

  • rds:DescribeDBClusters

  • rds:DescribeDBInstances

  • application-autoscaling:RegisterScalableTarget

  • application-autoscaling:DescribeScalableTargets

  • application-autoscaling:DeregisterScalableTarget

  • application-autoscaling:PutScalingPolicy

  • application-autoscaling:DescribeScalingPolicies

  • application-autoscaling:DeleteScalingPolicy

创建服务相关角色所需的权限

您的Amazon Web Services 账户中的任何用户首次创建启用预测性扩缩的扩缩计划时,Amazon Auto Scaling 需要具有创建服务相关角色的权限。如果服务相关角色尚不存在,Amazon Auto Scaling 会在您的账户中创建此角色。此服务相关角色向 Amazon Auto Scaling 授予权限,以便它能代表您调用其他服务。

为使自动角色创建操作成功,用户必须具有 iam:CreateServiceLinkedRole 操作的权限。

"Action": "iam:CreateServiceLinkedRole"

下面显示了允许用户创建服务相关角色的权限策略示例。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/autoscaling-plans.amazonaws.com/AWSServiceRoleForAutoScalingPlans_EC2AutoScaling", "Condition": { "StringLike": { "iam:AWSServiceName":"autoscaling-plans.amazonaws.com" } } } ] }

有关更多信息,请参阅 预测性扩缩服务相关角色