本文提供了在ECS通过访问控制实现团队或者部门成员鉴权、RAM用户授权、RAM角色授权、以及跨云服务授权的Action列表和Resource列表,适用于创建自定义策略实现精细化权限控制的业务需求。
背景信息
说明 如果您无需授权就能访问目标资源,可以跳过此章节。
默认情况下,主账号或者RAM账号均能使用ECS控制台或ECS API完整操作自己创建的ECS资源。在以下场景中,会涉及到操作授权问题:
- RAM账号刚创建时没有权限操作主账号的资源时。
- 从其他阿里云服务访问ECS资源,或者ECS访问其他阿里云服务时。
- 操作具有权限控制的ECS资源前,需要资源拥有者授权目标资源和目标API行为权限。
当其他账号通过ECS API访问主账号资源时,阿里云ECS首先向RAM发起权限检查,以确保资源拥有者已经将相关权限授予调用者。不同的ECS API会根据涉及的资源以及API语义确定需要检查哪些资源的权限。更多信息,请参见访问控制产品文档和访问控制API文档。
自定义策略
您可以通过RAM控制台或者调用RAM API
CreatePolicy创建一个自定义策略,在
脚本配置方式的自定义策略中,您需要根据JSON模板文件填写
策略内容。其中的
Action和
Resource参数取值取自本文鉴权列表中的ARN值。更多信息,请参见
账号访问控制和
权限策略基本元素。
{ "Version": "1", "Statement": [ { "Action": [ "ecs:[ECS RAM Action]", "ecs:DescribeInstances" ], "Resource": [ "[ECS RAM Action Resource]", "acs:ecs:$regionid:15619224785*****:instance/i-bp1bzvz55uz27hf*****" ], "Effect": "Allow" } ] }
鉴权列表
说明
Resource格式说明,请参见
相关术语。
Action | Resource | Action说明 |
---|---|---|
AllocatePublicIpAddress | acs:ecs:$regionid:$accountid:instance/$instanceId | 为一台ECS实例分配一个固定公网IP地址。 |
ApplyAutoSnapshotPolicy | acs:ecs:*:$accountid:snapshot/* | 为一块或者多块云盘应用自动快照策略或者更换云盘当前应用的自动快照策略。 |
AttachClassicLinkVpc | acs:ecs:$regionid:$accountid:instance/$instanceId | 将一台经典网络类型实例连接到专有网络VPC中,使经典网络类型实例可以和VPC中的云资源私网互通。 |
AttachDisk |
|
为一台ECS实例挂载一块按量付费数据盘。 |
AttachKeyPair |
|
绑定一个SSH密钥对到一台或多台Linux实例。 |
AuthorizeSecurityGroup | acs:ecs:$regionid:$accountid:securitygroup/$groupNo | 增加一条安全组入方向规则。 |
AuthorizeSecurityGroupEgress | acs:ecs:$regionid:$accountid:securitygroup/$groupNo | 增加一条安全组出方向规则。 |
CancelAutoSnapshotPolicy | acs:ecs:*:$accountid:snapshot/* | 取消一块或者多块云盘的自动快照策略。 |
CancelCopyImage | acs:ecs:$regionid:$accountid:image/$imageNo | 取消正在进行中的复制镜像(CopyImage)任务。 |
CopyImage |
|
复制一个地域下的自定义镜像到其他地域。 |
ConvertNatPublicIpToEip | acs:ecs:$regionid:$accountid:instance/$instanceId | 将一台网络类型为专有网络VPC的ECS实例的公网IP(PublicIp)转化为弹性公网IP(EIP)。 |
CreateAutoSnapshotPolicy | acs:ecs:*:$accountid:snapshot/* | 创建一条自动快照策略。 |
CreateDisk |
|
创建一块按量付费或包年包月数据盘。 |
CreateImage |
|
创建一份自定义镜像。 |
CreateInstance |
|
创建一台包年包月或者按量付费ECS实例。 |
CreateKeyPair | acs:ecs:$regionid:$accountid:keypair/* | 创建一对SSH密钥对。 |
CreateSecurityGroup | acs:ecs:$regionid:$accountid:securitygroup/* | 新建一个安全组。新建的安全组,默认只允许安全组内的实例互相访问,安全组外的一切通信请求会被拒绝。若您想允许其他安全组实例的通信请求,或者来自互联网的访问请求,需要授权安全组权限(AuthorizeSecurityGroup)。 |
CreateSnapshot |
|
为一块云盘创建一份快照。 |
DeleteAutoSnapshotPolicy | acs:ecs:*:$accountid:snapshot/* | 删除一条自动快照策略。 |
DeleteDisk | acs:ecs:$regionid:$accountid:disk/$diskId | 释放一块按量付费数据盘。 |
DeleteImage | acs:ecs:$regionid:$accountid:image/$imageNo | 删除一份自定义镜像。 |
DeleteInstance | acs:ecs:$regionid:$accountid:instance/$instanceId | 释放一台按量付费实例或者到期的包年包月实例。 |
DeleteKeyPairs | acs:ecs:$regionid:$accountid:keypair/$keyPairName | 删除一对或者多对SSH密钥对。 |
DeleteSecurityGroup | acs:ecs:$regionid:$accountid:securitygroup/$groupNo | 删除一个安全组。 |
DeleteSnapshot | acs:ecs:$regionid:$accountid:snapshot/$snapshotId | 删除指定的快照。 |
DescribeClassicLinkInstances | acs:ecs:$regionid:$accountid:instance/* | 查询一台或多台与专有网络VPC建立了连接的经典网络类型实例。 |
DescribeDiskMonitorData | acs:ecs:$regionid:$accountid:disk/$diskId | 查询一块云盘指定时间内的使用信息。 |
DescribeDisks |
|
查询一块或多块您已经创建的云盘以及本地盘。 |
DescribeImages |
|
查询您可以使用的镜像资源。 |
DescribeInstanceMonitorData | acs:ecs:$regionid:$accountid:instance/$instanceId | 查询一台ECS实例的监控信息。 |
DescribeInstances |
|
查询一台或多台ECS实例的详细信息。 |
DescribeInstanceStatus | acs:ecs:$regionid:$accountid:instance/* | 获取一台或多台ECS实例的状态信息。 |
DescribeInstanceVncUrl | acs:ecs:$regionid:$accountid:instance/$instanceId | 查询一台ECS实例的Web管理终端地址。 |
DescribeKeyPairs |
|
查询一个或多个密钥对。 |
DescribePrice | acs:ecs:*:$accountid:* | 查询云服务器ECS资源的最新价格。 |
DescribeRenewalPrice | acs:ecs:$regionid:$accountid:instance/$instanceId | 查询云服务器ECS资源的续费价格。仅支持查询包年包月资源的续费价格。 |
DescribeSecurityGroupAttribute | acs:ecs:$regionid:$accountid:securitygroup/$groupNo | 查询一个安全组的安全组规则。 |
DescribeSecurityGroups |
|
查询您创建的安全组的基本信息。 |
DescribeSnapshotLinks |
|
查询云盘快照链。 |
DescribeSnapshotMonitorData | acs:ecs:*:$accountid:snapshot/* | 查询一个地域下近30天内的快照容量变化监控数据。 |
DescribeSnapshots |
|
查询一台ECS实例或一块云盘所有的快照列表。 |
DetachClassicLinkVpc | acs:ecs:$regionid:$accountid:instance/$instanceId | 取消经典网络类型实例与专有网络VPC的连接(ClassicLink)。 |
DetachDisk |
|
从一台实例上卸载一块按量付费磁盘。 |
DetachKeyPair |
|
为一台或者多台Linux实例解绑SSH密钥对。 |
ExportImage | acs:ecs:$regionid:$accountid:image/$imageNo | 导出您的自定义镜像到与该自定义镜像同一地域的OSS Bucket里。 |
ImportImage | acs:ecs:$regionid:$accountid:image/* | 导入您已有的镜像文件到云服务器ECS,并作为自定义镜像出现在相应地域中。 |
ImportKeyPair | acs:ecs:$regionid:$accountid:keypair/* | 导入由其他工具产生的RSA密钥对的公钥部分。导入密钥对后,阿里云为您保管公钥部分,您需要自行妥善保存密钥对的私钥部分。 |
JoinSecurityGroup |
|
将一台ECS实例加入到指定的安全组。 |
LeaveSecurityGroup |
|
将一台ECS实例移出指定的安全组。 |
ListTagResources | acs:ecs:$regionid:$accountid:$resourceType/$resourceId | 查询一个或多个ECS资源已经绑定的标签列表。 |
ModifyDiskAttribute | acs:ecs:$regionid:$accountid:disk/$diskId | 修改您的磁盘的属性或者明细。 |
ModifyImageAttribute | acs:ecs:$regionid:$accountid:image/$imageNo | 修改一份自定义镜像的名称或描述信息。 |
ModifyInstanceAttribute | acs:ecs:$regionid:$accountid:instance/$instanceId | 修改一台ECS实例的部分信息,包括实例密码、名称、描述、主机名和自定义数据等。如果是突发性能实例,可以切换这台实例的性能突发模式。 |
ModifyInstanceAutoReleaseTime | acs:ecs:$regionid:$accountid:instance/$instanceId | 为一台按量付费ECS实例设定或者取消自动释放时间。设置自动释放时请谨慎操作,配置的时间到期后将自动释放ECS实例。 |
ModifyInstanceChargeType | acs:ecs:$regionid:$accountid:instance/$instanceId | 更换一台或者多台ECS实例的计费方式。支持在按量付费实例和包年包月实例间相互转换,同时可以将实例挂载的所有按量付费云盘转换为包年包月云盘。 |
ModifyInstanceNetworkSpec | acs:ecs:$regionid:$accountid:instance/$instanceId | 修改实例的带宽配置。 |
ModifyInstanceVncPasswd | acs:ecs:$regionid:$accountid:instance/$instanceId | 修改一台ECS实例的Web管理终端密码。 |
ModifyInstanceVpcAttribute |
|
修改一台ECS实例的专有网络VPC属性。 |
ModifySecurityGroupAttribute | acs:ecs:$regionid:$accountid:securitygroup/$groupNo | 修改指定安全组的属性,包括修改安全组名称和描述。 |
ModifySecurityGroupEgressRule | acs:ecs:$regionid:$accountid:securitygroup/$groupNo | 修改安全组出方向规则的描述信息。 |
ModifySecurityGroupRule | acs:ecs:$regionid:$accountid:securitygroup/$groupNo | 修改安全组入方向规则的描述信息。 |
ModifyPrepayInstanceSpec | acs:ecs:$regionid:$accountid: | 升级或者降低一台包年包月ECS实例的实例规格,新实例规格将会覆盖实例的整个生命周期。 |
ModifySnapshotAttribute | acs:ecs:$regionid:$accountid:snapshot/$snapshotId | 修改一份快照的名称或描述。 |
RebootInstance | acs:ecs:$regionid:$accountid:instance/$instanceId | 重启一台处于运行中(Running)状态的ECS实例。 |
ReInitDisk | acs:ecs:$regionid:$accountid:disk/$diskId | 重新初始化一块云盘到创建时的初始状态。 |
RenewInstance | acs:ecs:$regionid:$accountid:instance/$instanceId | 续费一台包年包月ECS实例。 |
ReplaceSystemDisk |
|
更换一台ECS实例的系统盘或者操作系统。 |
ResetDisk | acs:ecs:$regionid:$accountid:disk/$diskId | 使用磁盘的历史快照回滚至某一阶段的磁盘状态。 |
ResizeDisk | acs:ecs:$regionid:$accountid:disk/$diskId | 扩容一块云盘,支持扩容系统盘和数据盘。 |
RevokeSecurityGroup | acs:ecs:$regionid:$accountid:securitygroup/$groupNo | 删除一条安全组入方向规则,撤销安全组入方向的权限设置。 |
RevokeSecurityGroupEgress | acs:ecs:$regionid:$accountid:securitygroup/$groupNo | 删除一条安全组出方向规则,撤销安全组出方向的访问权限。 |
RunInstances |
|
创建一台或多台按量付费或者包年包月ECS实例。 |
StartInstance | acs:ecs:$regionid:$accountid:instance/$instanceId | 启动一台实例。 |
StopInstance | acs:ecs:$regionid:$accountid:instance/$instanceId | 停止运行一台实例。 |
TagResources | acs:ecs:$regionid:$accountid:$resourceType/$resourceId | 为指定的ECS资源列表统一创建并绑定标签。 |
UntagResources | acs:ecs:$regionid:$accountid:$resourceType/$resourceId | 为指定的ECS资源列表统一解绑并删除标签。 |