本文提供了在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模板文件填写策略内容。其中的ActionResource参数取值取自本文鉴权列表中的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
  • acs:ecs:$regionid:$accountid:instance/$instanceId
  • acs:ecs:$regionid:$accountid:instance/$diskId
为一台ECS实例挂载一块按量付费数据盘。
AttachKeyPair
  • acs:ecs:$regionid:$accountid:instance/$instanceId
  • acs:ecs:$regionid:$accountid:keypair/$keypairName
绑定一个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
  • acs:ecs:$fromRegionid:$accountid:image/$imageNo
  • acs:ecs:$toRegionid:$accountid:image/*
复制一个地域下的自定义镜像到其他地域。
ConvertNatPublicIpToEip acs:ecs:$regionid:$accountid:instance/$instanceId 将一台网络类型为专有网络VPC的ECS实例的公网IP(PublicIp)转化为弹性公网IP(EIP)。
CreateAutoSnapshotPolicy acs:ecs:*:$accountid:snapshot/* 创建一条自动快照策略。
CreateDisk
  • acs:ecs:$regionid:$accountid:disk/*
  • acs:ecs:$regionid:$accountid:snapshot/$snapshotId
创建一块按量付费或包年包月数据盘。
CreateImage
  • acs:ecs:$regionid:$accountid:image/*
  • acs:ecs:$regionid:$accountid:snapshot/$snapshotId
  • acs:ecs:$regionid:$accountid:instance/$instanceId
创建一份自定义镜像。
CreateInstance
  • acs:ecs:$regionid:$accountid:instance/*
  • acs:ecs:$regionid:$accountid:image/$imageNo
  • acs:ecs:$regionid:$accountid:securitygroup/$groupNo
  • acs:ecs:$regionid:$accountid:snapshot/$snapshotId
  • (可选)acs:ecs:$regionid:$accountid:keypair/$keyPairName
  • acs:vpc:$regionid:$accountid:vswitch/$vswitchId
  • acs:vpc:$regionid:$accountid:vpc/$vpcId
创建一台包年包月或者按量付费ECS实例。
CreateKeyPair acs:ecs:$regionid:$accountid:keypair/* 创建一对SSH密钥对。
CreateSecurityGroup acs:ecs:$regionid:$accountid:securitygroup/* 新建一个安全组。新建的安全组,默认只允许安全组内的实例互相访问,安全组外的一切通信请求会被拒绝。若您想允许其他安全组实例的通信请求,或者来自互联网的访问请求,需要授权安全组权限(AuthorizeSecurityGroup)。
CreateSnapshot
  • acs:ecs:$regionid:$accountid:snapshot/*
  • acs:ecs:$regionid:$accountid:disk/$diskId
  • acs:ecs:$regionid:$accountid:volume/$volumeId
为一块云盘创建一份快照。
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
  • acs:ecs:$regionid:$accountid:disk/$diskId
  • acs:ecs:$regionid:$accountid:disk/*
查询一块或多块您已经创建的云盘以及本地盘。
DescribeImages
  • acs:ecs:$regionid:$accountid:image/$imageNo
  • acs:ecs:$regionid:$accountid:image/*
查询您可以使用的镜像资源。
DescribeInstanceMonitorData acs:ecs:$regionid:$accountid:instance/$instanceId 查询一台ECS实例的监控信息。
DescribeInstances
  • acs:ecs:$regionid:$accountid:instance/$instanceId
  • acs:ecs:$regionid:$accountid:instance/*
查询一台或多台ECS实例的详细信息。
DescribeInstanceStatus acs:ecs:$regionid:$accountid:instance/* 获取一台或多台ECS实例的状态信息。
DescribeInstanceVncUrl acs:ecs:$regionid:$accountid:instance/$instanceId 查询一台ECS实例的Web管理终端地址。
DescribeKeyPairs
  • acs:ecs:$regionid:$accountid:keypair/$keyPairName
  • acs:ecs:$regionid:$accountid:keypair/*
查询一个或多个密钥对。
DescribePrice acs:ecs:*:$accountid:* 查询云服务器ECS资源的最新价格。
DescribeRenewalPrice acs:ecs:$regionid:$accountid:instance/$instanceId 查询云服务器ECS资源的续费价格。仅支持查询包年包月资源的续费价格。
DescribeSecurityGroupAttribute acs:ecs:$regionid:$accountid:securitygroup/$groupNo 查询一个安全组的安全组规则。
DescribeSecurityGroups
  • acs:ecs:$regionid:$accountid:securitygroup/$groupNo
  • acs:ecs:$regionid:$accountid:securitygroup/*
查询您创建的安全组的基本信息。
DescribeSnapshotLinks
  • acs:ecs:$regionid:$accountid:disk/$diskId
  • acs:ecs:$regionid:$accountid:disk/*
查询云盘快照链。
DescribeSnapshotMonitorData acs:ecs:*:$accountid:snapshot/* 查询一个地域下近30天内的快照容量变化监控数据。
DescribeSnapshots
  • acs:ecs:$regionid:$accountid:snapshot/$snapshotId
  • acs:ecs:$regionid:$accountid:snapshot/*
查询一台ECS实例或一块云盘所有的快照列表。
DetachClassicLinkVpc acs:ecs:$regionid:$accountid:instance/$instanceId 取消经典网络类型实例与专有网络VPC的连接(ClassicLink)。
DetachDisk
  • acs:ecs:$regionid:$accountid:instance/$instanceId
  • acs:ecs:$regionid:$accountid:disk/$diskId
从一台实例上卸载一块按量付费磁盘。
DetachKeyPair
  • acs:ecs:$regionid:$accountid:instance/$instanceId
  • acs:ecs:$regionid:$accountid:keypair/$keypairName
为一台或者多台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
  • acs:ecs:$regionid:$accountid:instance/$instanceId
  • acs:ecs:$regionid:$accountid:securitygroup/$groupNo
将一台ECS实例加入到指定的安全组。
LeaveSecurityGroup
  • acs:ecs:$regionid:$accountid:instance/$instanceId
  • acs:ecs:$regionid:$accountid:securitygroup/$groupNo
将一台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
  • acs:ecs:$regionid:$accountid:instance/$instanceId
  • acs:ecs:$regionid:$accountid:vswitch/$vSwitchId
修改一台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
  • acs:ecs:$regionid:$accountid:instance/$instanceId
  • acs:ecs:$regionid:$accountid:image/$imageNo
更换一台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
  • acs:ecs:$regionid:$accountid:instance/*
  • acs:ecs:$regionid:$accountid:image/$imageNo
  • acs:ecs:$regionid:$accountid:securitygroup/$groupNo
  • acs:ecs:$regionid:$accountid:snapshot/$snapshotId
  • acs:ecs:$regionid:$accountid:keypair/$keyPairName
创建一台或多台按量付费或者包年包月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资源列表统一解绑并删除标签。