一、概述
你最初创建的腾讯云主账号,拥有整个账号全部腾讯云服务和资源的完全访问权限,建议你保护好主账号的凭证信息,日常使用子用户或角色进行访问,并开启多因素校验和定时轮换密钥。
当你在使用 CAM 时,可以将策略与一个用户或一组用户关联起来进行权限控制。
弹性伸缩已接入 CAM,你可以使用 CAM 对弹性伸缩服务的相关资源进行权限控制。
二、CAM 用户
CAM 用户 是你在腾讯云中创建的一个实体,每一个 CAM 用户仅同一个腾讯云账户关联。你注册的腾讯云账号身份为主账号,你可以通过 用户管理 来创建拥有不同权限的子账号进行协作。子账号的类型分为 子用户、协作者 以及 消息接收人。
三、策略
策略 是用于定义和描述一条或多条权限的语法规范,腾讯云的策略类型分为预设策略和自定义策略。
·预设策略: 由腾讯云创建和管理的策略,是被用户高频使用的一些常见权限集合,如资源全读写权限等。预设策略操作对象范围广,操作粒度粗,且为系统预设,不可被用户编辑。
·自定义策略:由用户创建的策略,允许进行细粒度的权限划分。例如,为子账号关联一条使用策略,使其有权管理弹性伸缩的伸缩组,而无权管理云数据库实例。
四、资源
资源(resource) 是策略的元素,描述一个或多个操作对象,例如弹性伸缩的启动配置和伸缩组。
五、弹性伸缩预设策略介绍
| 预设策略名 | 授权范围描述 |
| QcloudASFullAccess | 关联后,获得弹性伸缩(AS)全读写访问权限 |
| QcloudASReadOnlyAccess | 关联后,获得弹性伸缩(AS)只读访问权限 |
六、可授权的资源类型
资源级权限指的是能够指定用户对哪些资源具有执行操作的能力。例如,你可以授权用户拥有广州地域伸缩组的操作权限。
在访问管理中对弹性伸缩可授权的资源类型如下:
| 资源类型 | 授权策略中的资源描述方法 |
| 启动配置相关 | qcs::as:$region:$account:launch-configuration/* |
| 伸缩组相关 | qcs::as:$region:$account:auto-scaling-group/* |
下表列出弹性伸缩支持资源级权限操作的各个 API,以及每个操作支持的资源路径。
设置资源路径时,你需要将 $region、$account、$LaunchConfigurationId、$AutoScalingGroupId 等变量参数修改为你实际的参数信息,同时你也可以在路径中使用 * 通配符。
访问管理策略中的 region、action、account、resource 等相关概念请参见 资源描述方式。
| API 接口:action | 资源路径:resource |
| CreateLaunchConfiguration | qcs::as:$region:$account:launch-configuration/* |
| DeleteLaunchConfiguration | qcs::as:$region:$account:launch-configuration/$LaunchConfigurationId |
| DescribeLaunchConfigurations | qcs::as:$region:$account:launch-configuration/*qcs::as:$region:$account:launch-configuration/$LaunchConfigurationId |
| ModifyLaunchConfigurationAttributes | qcs::as:$region:$account:launch-configuration/$LaunchConfigurationId |
| UpgradeLaunchConfiguration | qcs::as:$region:$account:launch-configuration/$LaunchConfigurationId |
| CreateAutoScalingGroup | qcs::as:$region:$account:auto-scaling-group/* |
| CreateAutoScalingGroupFromInstance | qcs::as:$region:$account:auto-scaling-group/* |
| DeleteAutoScalingGroup | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DescribeAutoScalingGroups | qcs::as:$region:$account:auto-scaling-group/*qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| ModifyAutoScalingGroup | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| ModifyLoadBalancers | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| EnableAutoScalingGroup | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DisableAutoScalingGroup | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| ModifyDesiredCapacity | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DescribeAutoScalingActivities | qcs::as:$region:$account:auto-scaling-group/*qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| AttachInstances | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DetachInstances | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| RemoveInstances | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DescribeAutoScalingInstances | qcs::as:$region:$account:auto-scaling-group/*qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| SetInstancesProtection | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| CreateScheduledAction | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DeleteScheduledAction | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DescribeScheduledActions | qcs::as:$region:$account:auto-scaling-group/*qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| ModifyScheduledAction | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| CreateScalingPolicy | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DeleteScalingPolicy | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DescribeScalingPolicies | qcs::as:$region:$account:auto-scaling-group/*qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| ModifyScalingPolicy | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| ExecuteScalingPolicy | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| CreateNotificationConfiguration | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DeleteNotificationConfiguration | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DescribeNotificationConfigurations | qcs::as:$region:$account:auto-scaling-group/*qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| ModifyNotificationConfiguration | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| CreateLifecycleHook | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DeleteLifecycleHook | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DescribeLifecycleHooks | qcs::as:$region:$account:auto-scaling-group/*qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| UpgradeLifecycleHook | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| CompleteLifecycleAction | qcs::as:$region:$account:auto-scaling-group/$AutoScalingGroupId |
| DescribeAccountLimits | * |
七、弹性伸缩访问管理策略示例
下面以具体的示例展示如何通过访问管理对弹性伸缩资源进行权限控制:
·创建策略:广州地域允许对所有伸缩组的访问权限。
# 其中$account需要替换成账号信息{ "version": "2.0", "statement": [ { "effect": "allow", "action": [ "name/as:*" ], "resource": [ "qcs::as:ap-guangzhou:$account:auto-scaling-group/*" ] } ]}
·创建策略:广州地域禁止对某个伸缩组的访问权限。
# 其中$account需要替换成账号信息, $AutoScalingGroupId 需要替换成相应的AutoScalingGroupId{ "version": "2.0", "statement": [ { "effect": "deny", "action": [ "name/as:*" ], "resource": [ "qcs::as:ap-guangzhou:$account:auto-scaling-group/$AutoScalingGroupId" ] } ]}
·创建策略:对全部地域所有读接口拥有访问权限。
{ "version": "2.0", "statement": [ { "effect": "allow", "action": [ "name/as:Describe*" ], "resource": [ "*" ] } ]}