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

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

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

默认情况下,全新的 IAM 用户没有执行任何操作的权限。IAM 管理员必须创建 IAM 策略,以便为用户和角色授予执行Amazon Auto Scaling操作(如配置扩展策略)。然后,管理员必须将这些策略附加到需要这些权限的 IAM 用户或角色。

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

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

策略最佳实践

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

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

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

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

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

允许用户创建扩展计划

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

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

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

每个控制台用户还需要一些权限,以便他们能够发现其账户中的可扩展资源,并从Amazon Auto Scaling控制台。下面列出了使用 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": "*" } ] }

其他必要权限

授予对 Amazon Auto Scaling 的权限时,您必须决定用户要获得针对哪些资源的权限。根据要支持的方案,您可以在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 账户中的任何用户首次创建启用预测式扩展计划的扩展计划时,Amazon Auto Scaling 需要具有创建服务相关角色的权限。如果服务相关角色尚不存在,Amazon Auto Scaling 会在您的账户中创建此角色。此服务相关角色向 Amazon Auto Scaling 授予权限,以便它能代表您调用其他服务。

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

"Action": "iam:CreateServiceLinkedRole"

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

{ "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" } } } ] }

有关更多信息,请参阅 Amazon Auto Scaling服务相关角色