本文为您介绍IAM策略的类型及弹性伸缩相关的策略,以帮助您快速了解IAM策略。IAM策略支持系统预设策略和自定义策略两种类型,您可直接使用系统预设策略为IAM身份授权,但系统预设策略有限若无法满足您的需求,您可通过自定义策略精准授权,灵活管控账号资源。
IAM平台已提前为您设置了关于弹性伸缩的默认策略,您可为直接为IAM身份(IAM用户、用户组或角色)授权系统预设策略。系统预设策略只能用于授权,不可编辑和修改。
系统预设策略名称 | 描述 |
---|---|
AutoScalingFullAccess | 被授权该策略后的IAM身份(IAM用户、用户组、角色),可获得权限范围内弹性伸缩功能的 管理 权限,适用于通过API使用弹性伸缩的场景。 |
AutoScalingReadOnlyAccess | 被授权该策略后的IAM身份(IAM用户、用户组、角色),可获得权限范围内弹性伸缩功能的 只读 权限,适用于通过API使用弹性伸缩的场景。 |
AutoScalingConsoleFullAccess | 被授权该策略后的IAM身份(IAM用户、用户组、角色),可获得权限范围内弹性伸缩功能的 管理 权限、以及相关云产品在弹性伸缩控制台的 只读 权限,适用于通过控制台使用弹性伸缩的场景。 |
AutoScalingConsoleReadOnlyAccess | 被授权该策略后的IAM身份(IAM用户、用户组、角色),可获得权限范围内弹性伸缩功能的 只读 权限、以及相关云产品在弹性伸缩控制台的 只读 权限,适用于通过控制台使用弹性伸缩的场景。 |
说明
如果IAM身份只授予 只读 权限,则只可查看功能配置情况(例如查询伸缩组/伸缩配置来源详情等),不可对其进行任何操作。
操作 | AutoScalingFullAccess | AutoScalingReadOnlyAccess | AutoScalingConsoleFullAccess | AutoScalingConsoleReadOnlyAccess |
---|---|---|---|---|
管理伸缩组 | √ | × | √ | × |
查询伸缩组 | √ | √ | √ | √ |
查询负载均衡/实例启动模版 | × | × | √ | √ |
管理伸缩配置来源 | √ | × | √ | × |
查询伸缩配置来源 | √ | √ | √ | √ |
查询伸缩配置所需的VPC等云产品 | × | × | √ | √ |
设置实例保护 | √ | × | √ | × |
添加/移出/删除实例 | √ | × | √ | × |
查询实例 | × | × | √ | √ |
管理伸缩规则 | √ | × | √ | × |
查询伸缩规则 | √ | √ | √ | √ |
管理生命周期挂钩 | √ | × | √ | × |
查询生命周期挂钩 | √ | √ | √ | √ |
管理消息通知 | √ | × | √ | × |
配置消息接收 | × | × | × | × |
查询伸缩日志 | √ | √ | √ | √ |
管理垂直伸缩 | √ | × | √ | × |
查询垂直伸缩 | √ | √ | √ | √ |
查询垂直伸缩所需的实例规格 | × | × | √ | √ |
功能 | 依赖云服务 | 所需角色 | 所需策略 |
---|---|---|---|
伸缩组绑定其他云产品 | 负载均衡CLB | 首次使用弹性伸缩服务时,平台会指引您进行“跨服务访问授权”-ServiceRoleForAutoScaling(通过API调用时平台将自动授权),授权成功后即允许弹性伸缩服务使用相关云产品,例如增删云服务器/公网IP、获取负载均衡信息等。 | 为IAM用户授予管理权限后,即可操作弹性伸缩的全部功能。但如果您需要管理其他云产品,则还需要具备相关云产品的管理权限,例如创建负载均衡CLB需增加CLBFullAccess策略。 |
负载均衡ALB | |||
伸缩配置来源 | 云服务器 | ||
公网IP | |||
接收消息通知 | 无 | 为IAM用户授予管理权限后,还需添加MessageCenterFullAccess策略后才能配置消息接收方式和接收人。 |
{ "Statement": [ { "Effect": "Allow", "Action": [ "auto_scaling:*" ], "Resource": [ "*" ] } ] }
{ "Statement": [ { "Effect": "Allow", "Action": [ "auto_scaling:Get*", "auto_scaling:*Describe*", "auto_scaling:*List*" ], "Resource": [ "*" ] } ] }
{ "Statement": [ { "Effect": "Allow", "Action": [ "ecs:Get*", "ecs:*Describe*", "ecs:*List*", "clb:Get*", "clb:*Describe*", "clb:*List*", "vpc:Get*", "vpc:*Describe*", "vpc:*List*", "storage_ebs:Get*", "storage_ebs:*Describe*", "storage_ebs:*List*", "rds_mysql:Get*", "rds_mysql:*Describe*", "rds_mysql:*List*", "volc_observe:Get*", "volc_observe:*Describe*", "volc_observe:*List*", "auto_scaling:*" ], "Resource": [ "*" ] } ] }
{ "Statement": [ { "Effect": "Allow", "Action": [ "ecs:Get*", "ecs:*Describe*", "ecs:*List*", "clb:Get*", "clb:*Describe*", "clb:*List*", "vpc:Get*", "vpc:*Describe*", "vpc:*List*", "storage_ebs:Get*", "storage_ebs:*Describe*", "storage_ebs:*List*", "rds_mysql:Get*", "rds_mysql:*Describe*", "rds_mysql:*List*", "volc_observe:Get*", "volc_observe:*Describe*", "volc_observe:*List*", "auto_scaling:Get*", "auto_scaling:*Describe*", "auto_scaling:*List*" ], "Resource": [ "*" ] } ] }
{ "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DescribeInstances", "ecs:GetInstance", "ecs:CreateInstances", "ecs:DeleteInstance", "ecs:DeleteInstances", "ecs:DescribeInstanceTypes", "ecs:DescribeKeyPair", "ecs:DescribeImages", "ecs:DescribeZones", "ecs:BindAssumeRole", "ecs:ModifyInstanceSpec", "ecs:StopInstance", "ecs:StartInstance", "ecs:DescribeAvailableResource", "ecs:DescribeHpcCluster", "ecs:CreateTags", "ecs:DeleteTags", "ecs:DescribeCommands", "ecs:InvokeCommand", "ecs:DescribeInvocations", "ecs:DescribeLaunchTemplateVersions", "ecs:CreateScheduledInstances", "ecs:DescribeScheduledInstances", "ecs:DescribeScheduledInstanceStock", "vpc:AllocateEipAddress", "vpc:AssociateEipAddress", "vpc:DisassociateEipAddress", "vpc:ReleaseEipAddress", "vpc:DescribeVpcs", "vpc:DescribeEipAddresses", "vpc:DescribeSubnetAttributes", "vpc:InnerGetLimitFromKeys", "vpc:DescribeSubnets", "vpc:DescribeBandwidthPackages", "vpc:RemoveBandwidthPackageIp", "clb:DescribeLoadBalancers", "clb:DescribeServerGroups", "clb:DescribeListenerHealth", "clb:DescribeListeners", "clb:AddServerGroupBackendServers", "clb:RemoveServerGroupBackendServers", "clb:DescribeServerGroupAttributes", "alb:DescribeLoadBalancers", "alb:DescribeServerGroups", "alb:AddServerGroupBackendServers", "alb:RemoveServerGroupBackendServers", "alb:DescribeServerGroupAttributes", "alb:DescribeListenerAttributes", "alb:DescribeListeners", "alb:DescribeListenerHealth", "volc_observe:GetMetricData", "rds_mysql:ListDBInstances", "rds_mysql:DescribeDBInstance", "rds_mysql:CreateDBInstanceIPList", "rds_mysql:ListDBInstanceIPLists", "rds_mysql:ModifyDBInstanceIPList", "rds_mysql:DeleteDBInstanceIPList", "rds_mysql:DescribeAllowLists", "rds_mysql:DescribeAllowListDetail", "rds_mysql:DeleteAllowList", "rds_mysql:ModifyAllowList", "rds_mysql:AssociateAllowList", "rds_mysql:DisassociateAllowList", "rds_mysql:CreateAllowList", "volc_observe:CreateRule", "volc_observe:DeleteRulesByIds", "volc_observe:UpdateRule", "volc_observe:ListRulesByIds", "storage_ebs:DescribeVolumes" ], "Resource": [ "*" ] } ] }
类型 | 说明 | 相关文档 |
---|---|---|
自定义策略类型 | 自定义策略根据策略可绑定的主体不同分为基于身份的策略(Identity-based policies)和基于资源的策略(Resource-based policies)。 | |
自定义策略语法 | 自定义策略语法通过策略元素定义策略的权限,自定义“基于身份的策略”和“基于资源的策略”时,策略元素有所区别。 | |
新建自定义策略 | 火山引擎主账号或拥有访问控制管理权限的子用户进行授权时,系统预设策略无法满足需求,可通过自定义策略精细化定义权限。 | 新建自定义策略 |
常见系统预设策略:文档中介绍了部分常用的系统预设策略,以帮助您更快速的了解、使用系统策略进行权限管控。