You need to enable JavaScript to run this app.
导航

弹性伸缩IAM策略类型

最近更新时间2024.03.25 11:04:11

首次发布时间2024.03.25 11:04:11

本文为您介绍IAM策略的类型及弹性伸缩相关的策略,以帮助您快速了解IAM策略。IAM策略支持系统预设策略和自定义策略两种类型,您可直接使用系统预设策略为IAM身份授权,但系统预设策略有限若无法满足您的需求,您可通过自定义策略精准授权,灵活管控账号资源。

系统预设策略

IAM平台已提前为您设置了关于弹性伸缩的默认策略,您可为直接为IAM身份(IAM用户、用户组或角色)授权系统预设策略。系统预设策略只能用于授权,不可编辑和修改

弹性伸缩系统预设策略

系统预设策略名称描述
AutoScalingFullAccess被授权该策略后的IAM身份(IAM用户、用户组、角色),可获得权限范围内弹性伸缩功能的 管理 权限,适用于通过API使用弹性伸缩的场景。
AutoScalingReadOnlyAccess被授权该策略后的IAM身份(IAM用户、用户组、角色),可获得权限范围内弹性伸缩功能的 只读 权限,适用于通过API使用弹性伸缩的场景。
AutoScalingConsoleFullAccess被授权该策略后的IAM身份(IAM用户、用户组、角色),可获得权限范围内弹性伸缩功能的 管理 权限、以及相关云产品在弹性伸缩控制台的 只读 权限,适用于通过控制台使用弹性伸缩的场景。
AutoScalingConsoleReadOnlyAccess被授权该策略后的IAM身份(IAM用户、用户组、角色),可获得权限范围内弹性伸缩功能的 只读 权限、以及相关云产品在弹性伸缩控制台的 只读 权限,适用于通过控制台使用弹性伸缩的场景。

说明

如果IAM身份只授予 只读 权限,则只可查看功能配置情况(例如查询伸缩组/伸缩配置来源详情等),不可对其进行任何操作。

弹性伸缩常用操作与系统策略的关系

操作AutoScalingFullAccessAutoScalingReadOnlyAccessAutoScalingConsoleFullAccessAutoScalingConsoleReadOnlyAccess
管理伸缩组××
查询伸缩组
查询负载均衡/实例启动模版××
管理伸缩配置来源××
查询伸缩配置来源
查询伸缩配置所需的VPC等云产品××
设置实例保护××
添加/移出/删除实例××
查询实例××
管理伸缩规则××
查询伸缩规则
管理生命周期挂钩××
查询生命周期挂钩
管理消息通知××
配置消息接收××××
查询伸缩日志
管理垂直伸缩××
查询垂直伸缩
查询垂直伸缩所需的实例规格××

弹性伸缩功能依赖的角色或策略

功能依赖云服务所需角色所需策略
伸缩组绑定其他云产品负载均衡CLB首次使用弹性伸缩服务时,平台会指引您进行“跨服务访问授权”(通过API调用时平台将自动授权),授权成功后即允许弹性伸缩服务使用相关云产品,例如增删云服务器/公网IP、获取负载均衡信息等。为IAM用户授予管理权限后,即可操作弹性伸缩的全部功能。但如果您需要管理其他云产品,则还需要具备相关云产品的管理权限,例如创建负载均衡CLB需增加CLBFullAccess策略。
负载均衡ALB
伸缩配置来源云服务器
公网IP
接收消息通知为IAM用户授予管理权限后,还需添加MessageCenterFullAccess策略后才能配置消息接收方式和接收人。

弹性伸缩产品系统预设策略详情

AutoScalingFullAccess

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "auto_scaling:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

AutoScalingReadOnlyAccess

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "auto_scaling:Get*",
                "auto_scaling:*Describe*",
                "auto_scaling:*List*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

AutoScalingConsoleFullAccess

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

AutoScalingReadOnlyAccess

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

自定义策略

如果IAM设置的默认策略无法满足您的业务需求,您可以根据实际情况,创建您自己的IAM策略。自定义策略根据策略可绑定的主体不同分为基于身份的策略(Identity-based policies)和基于资源的策略(Resource-based policies)。

  • 基于身份的策略:与IAM身份(用户、用户组或角色)绑定的策略称为“基于身份的策略”,用于为指定身份赋予访问云资源的权限,大部分场景仅需使用基于身份的策略。
  • 基于资源的策略:与资源(非IAM身份)绑定的策略称为“基于资源的策略”,用于描述资源可被何种身份进行何种访问。目前火山引擎支持以下两种资源使用基于资源的策略:
    • 访问控制角色: 角色上基于资源的策略也称为信任策略(Trust policy)。
    • 对象存储桶:  存储桶上基于资源的策略也称为桶策略

新建自定义策略

  • 可视化策略编辑器:提供所见即所得的可视化策略编辑界面,无需深入了解策略语法,在界面中选择效果、服务、操作、资源、条件等策略内容,自动生成策略语法,优先推荐使用。
  • JSON编辑器:提供JSON语法的编辑器,您需根据策略语法规则自定义生成策略,适用于对策略语法较为熟悉的用户。

说明

目前可视化编辑器支持的产品范围有限,若您使用的服务未支持可视化策略编辑,您可切换至JSON编辑器编辑策略。当您使用JSON编辑器编辑语法后,切换至可视化编辑器可能不被识别,未识别不代表策略内容一定错误,若您确认策略语法无误,正常提交策略即可。

自定义策略语法

自定义策略语法通过策略元素定义策略的权限,自定义“基于身份的策略”和“基于资源的策略”时,策略元素有所区别。

  • 更多策略语法的介绍,请参见IAM策略语法
  • 自定义策略时特定位置可使用通配符或变量,从而定义出更灵活、更复杂的权限规则。更多介绍,请参见变量与通配符
  • 我们为您提供使用弹性伸缩常用的一些自定义策略示例供您参考,具体请参见自定义策略语法示例