文档

鉴权规则

更新时间:

通过访问控制创建自定义策略,您可以实现精细化权限控制以满足业务需求。这些策略可以确保只有授权的团队成员或部门成员能够访问和执行特定的操作,并在跨云服务的场景下实现权限的精确控制。本文提供了在ECS通过访问控制实现团队或者部门成员鉴权、RAM用户授权、RAM角色授权、标签鉴权,以及跨云服务授权的Action列表和Resource列表,帮助您更好地了解如何配置这些权限。

背景信息

说明

如果您无需授权就能访问目标资源,可以跳过此章节。

默认情况下,主账号或者RAM账号均能使用ECS控制台或ECS API完整操作自己创建的ECS资源。在以下场景中,会涉及到操作授权问题:

  • RAM账号刚创建时没有权限操作主账号的资源时。

  • 从其他阿里云服务访问ECS资源,或者ECS访问其他阿里云服务时。

  • 操作具有权限控制的ECS资源前,需要资源拥有者授权目标资源和目标API行为权限。

  • 操作具有标签鉴权的ECS资源前,需要资源拥有者授权目标资源和目标API行为权限。

当其他账号通过ECS API访问主账号资源时,阿里云ECS首先向RAM发起权限检查,以确保资源拥有者已经将相关权限授予调用者。不同的ECS API会根据涉及的资源以及API语义确定需要检查哪些资源的权限。更多信息,请参见访问控制产品文档访问控制API文档

自定义策略

访问控制RAM可基于权限策略,管理用户身份,控制云资源的访问和操作权限。权限策略是一组访问权限的集合。结构包括版本号和授权语句列表,每条授权语句包括授权效果(Effect)、操作(Action)、资源(Resource)以及条件(Condition,可选项)。

标签可用于标识云资源,您可以利用标签将云资源进行分组管理和归类,实现资源的分类管理。

标签和RAM结合,将标签作为权限策略的匹配条件,可以实现云资源精细化权限管理。支持的标签鉴权条件如下:

标签鉴权条件

说明

acs:RequestTag

限制在请求中必须传入特定的标签。

如果API请求中没有标签参数,则不能使用acs:RequestTag,否则会导致鉴权失败。

acs:ResourceTag

限制指定的资源必须包含特定的标签。

如果API请求中没有资源ID参数,则不能使用acs:ResourceTag,否则会导致鉴权失败。

您可以通过RAM控制台或者调用RAM API的CreatePolicy接口创建一个自定义策略。在以下自定义策略中,您需要根据JSON模板文件填写。其中,ActionResource参数取值取自鉴权列表中的ARN(Aliyun Resource Name)值,Condition参数取值取自API接口标签鉴权说明。更多信息,请参见通过RAM用户控制资源访问权限策略基本元素

关于如何使用标签鉴权,请参见通过标签实现RAM用户鉴权

{
    "Version": "1",
    "Statement": [
        {
        "Effect": "Allow"
            "Action": [
                "ecs:[ECS RAM Action]",
                "ecs:DescribeInstances"
            ],
            "Resource": [
                "[ECS RAM Action Resource]",
                "acs:ecs:$regionid:15619224785*****:instance/i-bp1bzvz55uz27hf*****"
            ],
        "Condition": {
                "StringEquals": {
                    "acs:RequestTag/${key}":"${value}"
                }
        },
        {
        "Effect": "Allow"
            "Action": [
                "ecs:[ECS RAM Action]",
                "ecs:DescribeInstances"
            ],
            "Resource": [
                "[ECS RAM Action Resource]",
                "acs:ecs:$regionid:15619224785*****:instance/i-bp1bzvz55uz27hf*****"
            ],
        "Condition": {
                "StringEquals": {
                    "acs:ResourceTag/${key}":"${value}"
                }
        }
    ]
}

鉴权列表

说明

Resource格式说明,请参见相关术语

实例

Action

Resource

Action说明

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实例。

DeleteInstance

acs:ecs:$regionid:$accountid:instance/$instanceId

释放一台按量付费实例或者到期的包年包月实例。

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管理终端地址。

ModifyInstanceAttribute

  • acs:ecs:$regionid:$accountid:instance/$instanceId

  • acs:ecs:$regionid:$accountid:securitygroup/$groupNo

修改一台ECS实例的部分信息,包括实例密码、名称、描述、安全组、主机名和自定义数据等。如果是突发性能实例,可以切换这台实例的性能突发模式。

ModifyInstanceAutoReleaseTime

acs:ecs:$regionid:$accountid:instance/$instanceId

为一台按量付费ECS实例设定或者取消自动释放时间。设置自动释放时请谨慎操作,配置的时间到期后将自动释放ECS实例。

ModifyInstanceChargeType

acs:ecs:$regionid:$accountid:instance/$instanceId

更换一台或多台ECS实例的计费方式。支持在按量付费实例和包年包月实例之间相互转换,同时可以将实例挂载的所有按量付费云盘转换为包年包月云盘。

ModifyInstanceVncPasswd

acs:ecs:$regionid:$accountid:instance/$instanceId

修改一台ECS实例的Web管理终端密码。

ModifyPrepayInstanceSpec

acs:ecs:$regionid:$accountid:

升级或降低一台包年包月ECS实例的实例规格,新实例规格将会覆盖实例的整个生命周期。

RebootInstance

acs:ecs:$regionid:$accountid:instance/$instanceId

重启一台处于运行中(Running)状态的ECS实例。

RenewInstance

acs:ecs:$regionid:$accountid:instance/$instanceId

续费一台包年包月ECS实例。

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

停止运行一台实例。

块存储

Action

Resource

Action说明

CreateDisk

  • acs:ecs:$regionid:$accountid:disk/*

  • acs:ecs:$regionid:$accountid:snapshot/$snapshotId

创建一块按量付费或包年包月数据盘。

AttachDisk

  • acs:ecs:$regionid:$accountid:instance/$instanceId

  • acs:ecs:$regionid:$accountid:instance/$diskId

为一台ECS实例挂载一块按量付费数据盘。

DescribeDisks

  • acs:ecs:$regionid:$accountid:disk/$diskId

  • acs:ecs:$regionid:$accountid:disk/*

查询一块或多块您已经创建的云盘以及本地盘。

ModifyDiskAttribute

acs:ecs:$regionid:$accountid:disk/$diskId

修改您的磁盘的属性或明细。

ResetDisk

acs:ecs:$regionid:$accountid:disk/$diskId

使用磁盘的历史快照回滚至某一阶段的磁盘状态。

ResizeDisk

acs:ecs:$regionid:$accountid:disk/$diskId

扩容一块云盘,支持扩容系统盘和数据盘。

ReplaceSystemDisk

  • acs:ecs:$regionid:$accountid:instance/$instanceId

  • acs:ecs:$regionid:$accountid:image/$imageNo

更换一台ECS实例的系统盘或操作系统。

DetachDisk

  • acs:ecs:$regionid:$accountid:instance/$instanceId

  • acs:ecs:$regionid:$accountid:disk/$diskId

从一台实例上卸载一块按量付费磁盘。

DeleteDisk

acs:ecs:$regionid:$accountid:disk/$diskId

释放一块按量付费数据盘。

预留实例券

Action

Resource

Action说明

PurchaseReservedInstancesOffering

acs:ecs:$regionid:$accountid:reservedinstance

购买一张预留实例券。

DescribeReservedInstances

acs:ecs:$regionid:$accountid:reservedinstance

查询已经购买的预留实例券。

ModifyReservedInstances

acs:ecs:$regionid:$accountid:reservedinstance

拆分、合并或修改预留实例券。

镜像

Action

Resource

Action说明

CreateImage

  • acs:ecs:$regionid:$accountid:image/*

  • acs:ecs:$regionid:$accountid:snapshot/$snapshotId

  • acs:ecs:$regionid:$accountid:instance/$instanceId

创建一份自定义镜像。

ImportImage

acs:ecs:$regionid:$accountid:image/*

导入您已有的镜像文件到云服务器ECS,并作为自定义镜像出现在相应地域中。

CopyImage

  • acs:ecs:$fromRegionid:$accountid:image/$imageNo

  • acs:ecs:$toRegionid:$accountid:image/*

复制一个地域下的自定义镜像到其他地域。

CancelCopyImage

acs:ecs:$regionid:$accountid:image/$imageNo

取消正在进行中的复制镜像(CopyImage)任务。

ExportImage

acs:ecs:$regionid:$accountid:image/$imageNo

导出您的自定义镜像到与该自定义镜像同一地域的OSS Bucket里。

DescribeImages

  • acs:ecs:$regionid:$accountid:image/$imageNo

  • acs:ecs:$regionid:$accountid:image/*

查询您可以使用的镜像资源。

ModifyImageAttribute

acs:ecs:$regionid:$accountid:image/$imageNo

修改一份自定义镜像的名称或描述信息。

DeleteImage

acs:ecs:$regionid:$accountid:image/$imageNo

删除一份自定义镜像。

快照

Action

Resource

Action说明

CreateSnapshot

  • acs:ecs:$regionid:$accountid:snapshot/*

  • acs:ecs:$regionid:$accountid:disk/$diskId

  • acs:ecs:$regionid:$accountid:volume/$volumeId

为一块云盘创建一份快照。

DescribeSnapshots

  • acs:ecs:$regionid:$accountid:snapshot/$snapshotId

  • acs:ecs:$regionid:$accountid:snapshot/*

查询一台ECS实例或一块云盘所有的快照列表。

ModifySnapshotAttribute

acs:ecs:$regionid:$accountid:snapshot/$snapshotId

修改一份快照的名称或描述。

DeleteSnapshot

acs:ecs:$regionid:$accountid:snapshot/$snapshotId

删除指定的快照。

CreateAutoSnapshotPolicy

acs:ecs:*:$accountid:snapshot/*

创建一条自动快照策略。

CancelAutoSnapshotPolicy

acs:ecs:*:$accountid:snapshot/*

取消一块或多块云盘的自动快照策略。

DescribeSnapshotLinks

  • acs:ecs:$regionid:$accountid:disk/$diskId

  • acs:ecs:$regionid:$accountid:disk/*

查询云盘快照链。

DeleteAutoSnapshotPolicy

acs:ecs:*:$accountid:snapshot/*

删除一条自动快照策略。

ApplyAutoSnapshotPolicy

acs:ecs:*:$accountid:snapshot/*

为一块或多块云盘应用自动快照策略或者更换云盘当前应用的自动快照策略。

安全组

Action

Resource

Action说明

CreateSecurityGroup

acs:ecs:$regionid:$accountid:securitygroup/*

新建一个安全组。新建的安全组,默认只允许安全组内的实例互相访问,安全组外的一切通信请求会被拒绝。若您想允许其他安全组实例的通信请求,或者来自互联网的访问请求,需要授权安全组权限(AuthorizeSecurityGroup)。

AuthorizeSecurityGroup

acs:ecs:$regionid:$accountid:securitygroup/$groupNo

增加一条安全组入方向规则。

AuthorizeSecurityGroupEgress

acs:ecs:$regionid:$accountid:securitygroup/$groupNo

增加一条安全组出方向规则。

RevokeSecurityGroup

acs:ecs:$regionid:$accountid:securitygroup/$groupNo

删除一条安全组入方向规则,撤销安全组入方向的权限设置。

RevokeSecurityGroupEgress

acs:ecs:$regionid:$accountid:securitygroup/$groupNo

删除一条安全组出方向规则,撤销安全组出方向的访问权限。

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实例移出指定的安全组。

DescribeSecurityGroupAttribute

acs:ecs:$regionid:$accountid:securitygroup/$groupNo

查询一个安全组的安全组规则。

DescribeSecurityGroups

  • acs:ecs:$regionid:$accountid:securitygroup/$groupNo

  • acs:ecs:$regionid:$accountid:securitygroup/*

查询您创建的安全组的基本信息。

ModifySecurityGroupAttribute

acs:ecs:$regionid:$accountid:securitygroup/$groupNo

修改指定安全组的属性,包括修改安全组名称和描述。

ModifySecurityGroupRule

acs:ecs:$regionid:$accountid:securitygroup/$groupNo

修改安全组入方向规则的描述信息。

ModifySecurityGroupEgressRule

acs:ecs:$regionid:$accountid:securitygroup/$groupNo

修改安全组出方向规则的描述信息。

DeleteSecurityGroup

acs:ecs:$regionid:$accountid:securitygroup/$groupNo

删除一个安全组。

部署集

Action

Resource

Action说明

CreateDeploymentSet

acs:ecs:{#regionId}:{#accountId}:deploymentset/*

创建一个部署集。

ModifyDeploymentSetAttribute

acs:ecs:{#regionId}:{#accountId}:deploymentset/{#deploymentSetId}

修改一个部署集的名称和描述信息。

DeleteDeploymentSet

acs:ecs:{#regionid}:{#accountId}:deploymentset/{#deploymentSetId}

删除一个部署集。

DescribeDeploymentSets

acs:ecs:{#regionId}:{#accountId}:deploymentset/{#deploymentSetId}

查询一个或多个部署集的属性列表。

SSH密钥对

Action

Resource

Action说明

CreateKeyPair

acs:ecs:$regionid:$accountid:keypair/*

创建一对SSH密钥对。

ImportKeyPair

acs:ecs:$regionid:$accountid:keypair/*

导入由其他工具产生的RSA密钥对的公钥部分。导入密钥对后,阿里云为您保管公钥部分,您需要自行妥善保存密钥对的私钥部分。

DescribeKeyPairs

  • acs:ecs:$regionid:$accountid:keypair/$keyPairName

  • acs:ecs:$regionid:$accountid:keypair/*

查询一个或多个密钥对。

AttachKeyPair

  • acs:ecs:$regionid:$accountid:instance/$instanceId

  • acs:ecs:$regionid:$accountid:keypair/$keypairName

绑定一个SSH密钥对到一台或多台Linux实例。

DetachKeyPair

  • acs:ecs:$regionid:$accountid:instance/$instanceId

  • acs:ecs:$regionid:$accountid:keypair/$keypairName

为一台或者多台Linux实例解绑SSH密钥对。

DeleteKeyPairs

acs:ecs:$regionid:$accountid:keypair/$keyPairName

删除一对或者多对SSH密钥对。

网络

Action

Resource

Action说明

ModifyInstanceVpcAttribute

  • acs:ecs:$regionid:$accountid:instance/$instanceId

  • acs:ecs:$regionid:$accountid:vswitch/$vSwitchId

修改一台ECS实例的专有网络VPC属性。

AllocatePublicIpAddress

acs:ecs:$regionid:$accountid:instance/$instanceId

为一台ECS实例分配一个固定公网IP地址。

ConvertNatPublicIpToEip

acs:ecs:$regionid:$accountid:instance/$instanceId

将一台网络类型为专有网络VPC的ECS实例的公网IP(PublicIp)转换为弹性公网IP(EIP)。

AttachClassicLinkVpc

acs:ecs:$regionid:$accountid:instance/$instanceId

将一台经典网络类型实例连接到专有网络VPC中,使经典网络类型实例可以和VPC中的云资源私网互通。

DetachClassicLinkVpc

acs:ecs:$regionid:$accountid:instance/$instanceId

取消经典网络类型实例与专有网络VPC的连接(ClassicLink)。

DescribeClassicLinkInstances

acs:ecs:$regionid:$accountid:instance/*

查询一台或多台与专有网络VPC建立了连接的经典网络类型实例。

ModifyInstanceNetworkSpec

acs:ecs:$regionid:$accountid:instance/$instanceId

修改实例的带宽配置。

运维与监控

Action

Resource

Action说明

DescribeSnapshotMonitorData

acs:ecs:*:$accountid:snapshot/*

查询一个地域下近30天内的快照容量变化监控数据。

DescribeInstanceMonitorData

acs:ecs:$regionid:$accountid:instance/$instanceId

查询一台ECS实例的监控信息。

DescribeDiskMonitorData

acs:ecs:$regionid:$accountid:disk/$diskId

查询一块云盘指定时间内的使用信息。

标签

Action

Resource

Action说明

TagResources

acs:ecs:$regionid:$accountid:$resourceType/$resourceId

为指定的ECS资源列表统一创建并绑定标签。

ListTagResources

acs:ecs:$regionid:$accountid:$resourceType/$resourceId

查询一个或多个ECS资源已经绑定的标签列表。

UntagResources

acs:ecs:$regionid:$accountid:$resourceType/$resourceId

为指定的ECS资源列表统一解绑并删除标签。

询价

Action

Resource

Action说明

DescribePrice

acs:ecs:*:$accountid:*

查询云服务器ECS资源的最新价格。

DescribeRenewalPrice

acs:ecs:$regionid:$accountid:instance/$instanceId

查询云服务器ECS资源的续费价格。仅支持查询包年包月资源的续费价格。

UntagResources

acs:ecs:$regionid:$accountid:$resourceType/$resourceId

为指定的ECS资源列表统一解绑并删除标签。

API接口标签鉴权说明

为某一RAM用户授予含有标签鉴权的权限策略后,该RAM用户调用各API接口时的鉴权情况如下表所示:

接口

说明

RunInstancesCreateDisk等创建接口

该类接口无需指定资源ID,则匹配acs:RequestTag

  • 没有传入标签,或者传入的标签不包含授权标签,则鉴权不通过。

  • 传入完全匹配的标签,或者传入的标签包含了授权的tag,则鉴权通过。

DescribeInstancesDescribeDisks等查询接口

该类接口按需指定资源ID,则匹配acs:ResourceTagacs:RequestTag

  • 传入资源ID和标签,如果指定资源绑定的标签和传入的标签均能够匹配acs:ResourceTag,则鉴权通过;反之则鉴权不通过。

  • 传入资源ID,没有传入标签,如果指定资源绑定的标签能够匹配acs:ResourceTag,则鉴权通过,反之则鉴权不通过。

  • 没有传入资源ID,传入标签,如果传入的标签能够匹配acs:RequestTag,则鉴权通过;反之则鉴权不通过。

  • 没有传入资源ID,也没有传入标签,则鉴权不通过。

说明

查询接口在鉴权不通过时,返回结果为空,并不会报错。

ModifyInstanceAttributeModifyDiskAttribute等修改类接口

该类接口必须指定资源ID,则匹配acs:ResourceTag

  • 不传入标签,如果指定资源绑定的标签能够匹配,则鉴权通过,反之则鉴权不通过。

  • 传入标签(即更新标签),如果指定资源绑定的标签能够匹配,并且同时具备所传入标签的权限,则鉴权通过;反之则鉴权不通过。

StartInstanceRebootInstanceStopInstance等操作类接口

该类接口必须指定资源ID,则匹配acs:ResourceTag

  • 如果指定资源绑定的标签不能匹配,则鉴权不通过。

  • 如果指定资源绑定的标签能够匹配,则鉴权通过。

  • 本页导读 (1)
文档反馈