访问控制(RAM)是阿里云提供的管理用户身份与资源访问权限的服务。使用RAM可以让您避免与其他用户共享阿里云账号密钥,并可按需为用户授予最小权限。RAM中使用权限策略描述授权的具体内容。
本文为您介绍云服务器 ECS(ECS)为RAM权限策略定义的操作(Action)、资源(Resource)和条件(Condition)。云服务器 ECS(ECS)的RAM代码(RamCode)为[{"popCode":"Ecs","ramCodes":["ecs","vpc"]},{"popCode":"ecs-workbench","ramCodes":["ecs-workbench"]}],支持的授权粒度为RESOURCE。
权限策略通用结构
权限策略支持JSON格式,其通用结构如下:
{
"Version": "1",
"Statement": [
{
"Effect": "<Effect>",
"Action": "<Action>",
"Resource": "<Resource>",
"Condition": {
"<Condition_operator>": {
"<Condition_key>": [
"<Condition_value>"
]
}
}
}
]
}
- Effect:权限策略效果。取值:Allow(允许)、Deny(拒绝)。
- Action:授予允许或拒绝权限的具体操作。具体信息,请参见操作(Action)。
- Resource:受操作影响的具体对象,您可以使用资源ARN来描述指定资源。具体信息,请参见资源(Resource)。
- Condition:指授权生效的条件。可选字段。具体信息,请参见条件(Condition)。
- Condition_operator:条件运算符,不同类型的条件对应不同的条件运算符。具体信息,请参见权限策略基本元素。
- Condition_key:条件关键字。
- Condition_value:条件关键字对应的值。
操作(Action)
下表是云服务器 ECS(ECS)定义的操作,这些操作可以在RAM权限策略语句的Action
元素中使用,用来授予执行该操作的权限。下面对表中的具体项提供说明:- 操作:是指具体的权限点。
- API:是指操作对应的API接口。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。该列不体现适用于任何操作的通用条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | API | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|---|
ecs:DescribeDedicatedHostClusters | DescribeDedicatedHostClusters | get | DedicatedHostCluster acs:ecs:{#regionId}:{#accountId}:ddhcluster/{#ddhclusterId}DedicatedHostCluster acs:ecs:{#regionId}:{#accountId}:ddhcluster/* | 无 | 无 |
ecs:ModifyInstanceDeployment | ModifyInstanceDeployment | update | DedicatedHost acs:ecs:{#regionId}:{#accountId}:ddh/{#ddhId}Instance acs:ecs:{#regionId}:{#accountId}:instance/{#instanceId} | 无 | 无 |
ecs:ModifyDedicatedHostClusterAttribute | ModifyDedicatedHostClusterAttribute | update | ddhcluster acs:ecs:{#regionId}:{#accountId}:ddhcluster/{#ddhclusterId} | 无 | 无 |
ecs:ModifyDedicatedHostAutoRenewAttribute | ModifyDedicatedHostAutoRenewAttribute | update | DedicatedHost acs:ecs:{#regionId}:{#accountId}:ddh/{#ddhId} | 无 | 无 |
ecs:CreateDedicatedHostCluster | CreateDedicatedHostCluster | create | 全部资源 * | 无 | 无 |
ecs:ModifyDedicatedHostAutoReleaseTime | ModifyDedicatedHostAutoReleaseTime | update | DedicatedHost acs:ecs:{#regionId}:{#accountId}:ddh/{#ddhId} | 无 | 无 |
ecs:AllocateDedicatedHosts | AllocateDedicatedHosts | create | DedicatedHost acs:ecs:{#regionId}:{#accountId}:ddh/* | 无 | 无 |
ecs:DeleteDedicatedHostCluster | DeleteDedicatedHostCluster | delete | DedicatedHostCluster acs:ecs:{#regionId}:{#accountId}:ddhcluster/{#ddhclusterId} | 无 | 无 |
ecs:ModifyDedicatedHostsChargeType | ModifyDedicatedHostsChargeType | update | 全部资源 * | 无 | 无 |
ecs:RedeployDedicatedHost | RedeployDedicatedHost | update | DedicatedHost acs:ecs:{#regionId}:{#accountId}:ddh/{#ddhId} | 无 | 无 |
ecs:DescribeDedicatedHostAutoRenew | DescribeDedicatedHostAutoRenew | get | DedicatedHost acs:ecs:{#regionId}:{#accountId}:ddh/{#ddhId} | 无 | 无 |
ecs:ModifyDedicatedHostAttribute | ModifyDedicatedHostAttribute | update | DedicatedHost acs:ecs:{#regionId}:{#accountId}:ddh/{#ddhId}DedicatedHostCluster acs:ecs:{#regionId}:{#accountId}:ddhcluster/{#ddhclusterId} | 无 | 无 |
ecs:ReleaseDedicatedHost | ReleaseDedicatedHost | delete | DedicatedHost acs:ecs:{#regionId}:{#accountId}:ddh/{#ddhId} | 无 | 无 |
ecs:DescribeDedicatedHosts | DescribeDedicatedHosts | get | DedicatedHost acs:ecs:{#regionId}:{#accountId}:ddh/*DedicatedHost acs:ecs:{#regionId}:{#accountId}:ddh/{#ddhId} | 无 | 无 |
ecs:RenewDedicatedHosts | RenewDedicatedHosts | update | DedicatedHost acs:ecs:{#regionId}:{#accountId}:ddh/{#ddhId} | 无 | 无 |
资源(Resource)
下表是云服务器 ECS(ECS)定义的资源,这些资源可以在RAM权限策略语句的Resource
元素中使用,用来授予对该资源执行具体操作的权限。 其中,资源ARN是资源在阿里云上的唯一标识。具体说明如下:{#}
为变量标识,需要您替换为实际值。例如:{#ramcode}
需要您替换为实际的云服务RAM代码。-
*
表示全部。例如:{#resourceType}
为*
时:表示全部资源。{#regionId}
为*
时:表示全部地域。{#accountId}
为*
时:表示全部阿里云账号。
资源类型 | 资源ARN |
---|---|
Activation | acs:ecs:{#regionId}:{#accountId}:activation/* |
Activation | acs:ecs:{#regionId}:{#accountId}:activation/{#activationId} |
SecurityGroup | acs:ecs:{#regionId}:{#accountId}:securitygroup/* |
SecurityGroup | acs:ecs:{#regionId}:{#accountId}:securitygroup/{#securitygroupId} |
ImagePipeline | acs:ecs:{#regionId}:{#accountId}:imagepipeline/* |
ImagePipeline | acs:ecs:{#regionId}:{#accountId}:imagepipeline/{#imagepipelineId} |
DedicatedHost | acs:ecs:{#regionId}:{#accountId}:ddh/{#ddhId} |
Disk | acs:ecs:{#regionId}:{#accountId}:disk/* |
Disk | acs:ecs:{#regionId}:{#accountId}:disk/{#diskId} |
NetworkInterface | acs:ecs:{#regionId}:{#accountId}:eni/* |
NetworkInterface | acs:ecs:{#regionId}:{#accountId}:eni/{#eniId} |
Image | acs:ecs:{#regionId}:{#accountId}:image/* |
Image | acs:ecs:{#regionId}:{#accountId}:image/{#imageId} |
Instance | acs:ecs:{#regionId}:{#accountId}:instance/* |
Instance | acs:ecs:{#regionId}:{#accountId}:instance/{#instanceId} |
KeyPair | acs:ecs:{#regionId}:{#accountId}:keypair/* |
KeyPair | acs:ecs:{#regionId}:{#accountId}:keypair/{#keypairId} |
ReservedInstance | acs:ecs:{#regionId}:{#accountId}:reservedinstance/* |
ReservedInstance | acs:ecs:{#regionId}:{#accountId}:reservedinstance/{#reservedinstanceId} |
Snapshot | acs:ecs:{#regionId}:{#accountId}:snapshot/* |
Snapshot | acs:ecs:{#regionId}:{#accountId}:snapshot/{#snapshotId} |
DedicatedHost | acs:ecs:{#regionId}:{#accountId}:ddh/* |
HpcCluster | acs:ecs:{#regionId}:{#accountId}:hpc/* |
DedicatedHostCluster | acs:ecs:{#regionId}:{#accountId}:ddhcluster/* |
AutoSnapshotPolicy | acs:ecs:{#regionId}:{#accountId}:snapshotpolicy/* |
VPC | acs:vpc:{#regionId}:{#accountId}:vpc/{#vpcId} |
LaunchTemplate | acs:ecs:{#regionId}:{#accountId}:launchtemplate/{#launchtemplateId} |
AutoSnapshotPolicy | acs:ecs:{#regionId}:{#accountId}:snapshotpolicy/{#SnapshotPolicyId} |
DeploymentSet | acs:ecs:{#regionId}:{#accountId}:deploymentset/{#DeploymentSetId} |
Fleet | acs:ecs:{#regionId}:{#accountId}:fleet/* |
PrefixList | acs:ecs:{#regionId}:{#accountId}:prefixlist/{#PrefixListId} |
Command | acs:ecs:{#regionId}:{#accountId}:command/* |
DedicatedHostCluster | acs:ecs:{#regionId}:{#accountId}:ddhcluster/{#ddhclusterId} |
ddhcluster | acs:ecs:{#regionId}:{#accountId}:ddhcluster/{#ddhclusterId} |
LaunchTemplate | acs:ecs:{#regionId}:{#accountId}:launchtemplate/* |
Invocation | acs:ecs:{#regionId}:{#accountId}:invocation/{#InvocationId} |
ElasticityAssurance | acs:ecs:{#regionId}:{#accountId}:elasticityassurance/* |
ddhcluster | acs:ecs:{#regionId}:{#accountId}:ddhcluster/* |
Volume | acs:ecs:{#regionId}:{#accountId}:volume/{#volumeId} |
CapacityReservation | acs:ecs:{#regionId}:{#accountId}:capacityreservation/* |
KeyPair | acs:ecs:{#regionId}:{#accountId}:keypair/{#keypairName} |
VSwitch | acs:vpc:{#regionId}:{#accountId}:vswitch/{#vswitchId} |
ServiceSettings | acs:ecs:{#regionId}:{#accountId}:servicesettings/{#servicesettingId} |
Role | acs:ram:*:{#accountId}:role/{#roleName} |
VSwitch | acs:vpc:{#regionId}:{#accountId}:vswitch/* |
DeploymentSet | acs:ecs:{#regionId}:{#accountId}:deploymentset/* |
snapshotpolicy | acs:ecs:{#regionId}:{#accountId}:snapshotpolicy/{#snapshotpolicyId} |
activation | acs:ecs:{#regionId}:{#accountId}:activation/{#activationId} |
ImageComponent | acs:ecs:{#regionId}:{#accountId}:imagecomponent/{#imagecomponentId} |
Command | acs:ecs:{#regionId}:{#accountId}:command/{#commandId} |
autoprovisioninggroup | acs:ecs:{#regionId}:{#accountId}:autoprovisioninggroup/{#autoprovisioninggroupId} |
AutoProvisioningGroup | acs:ecs:{#regionId}:{#accountId}:autoprovisioninggroup/{#autoprovisioninggroupId} |
ElasticityAssurance | acs:ecs:{#regionId}:{#accountId}:elasticityassurance/{#ElasticityAssuranceId} |
Demand | acs:ecs:*:{#accountId}:* |
AutoSnapshotPolicy | acs:ecs:{#regionId}:{#accountId}:autosnapshotpolicy/* |
StorageCapacityUnit | acs:ecs:{#regionId}:{#accountId}:scu/* |
SnapshotGroup | acs:ecs:{#regionId}:{#accountId}:snapshotgroup/{#snapshotgroupId} |
StorageCapacityUnit | acs:ecs:{#regionId}:{#accountId}:scu/{#scuId} |
Demand | acs:ecs:{#regionId}:{#accountId}:ecsdemand/* |
AutoProvisioningGroup | acs:ecs:{#regionId}:{#accountId}:autoprovisioninggroup/* |
ImageComponent | acs:ecs:{#regionId}:{#accountId}:imagecomponent/* |
Volume | acs:ecs:{#regionId}:{#accountId}:volume/* |
SnapshotGroup | acs:ecs:{#regionId}:{#accountId}:snapshotgroup/* |
BandwidthPackage | acs:vpc:{#regionId}:{#accountId}:bandwidthpackage/{#BandwidthPackageId} |
VirtualBorderRouter | acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VirtualBorderRouterId} |
Address | acs:vpc:{#regionId}:{#accountId}:eip/{#AllocationId} |
VirtualBorderRouter | acs:vpc:{#regionId}:{#accountId}:virtualborderrouter/{#VbrId} |
RouterInterface | acs:vpc:{#regionId}:{#accountId}:routerinterface/* |
RouterInterface | acs:vpc:{#regionId}:{#accountId}:routerinterface/{#RouterInterfaceId} |
ForwardTable | acs:vpc:{#regionId}:{#accountId}:forwardtable/{#ForwardTableId} |
NatGateway | acs:vpc:{#regionId}:{#accountId}:natgateway/{#natgatewayid} |
VRouter | acs:vpc:{#regionId}:{#accountId}:vrouter/{#VRouterId} |
PhysicalConnection | acs:vpc:{#regionId}:{#accountId}:physicalconnection/{#PhysicalConnectionId} |
BandwidthPackage | acs:vpc:{#regionId}:{#accountId}:bandwidthpackage/* |
HaVip | acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId} |
HaVip | acs:vpc:{#regionId}:{#accountId}:havip/* |
Instance | acs:vpc:{#regionId}:{#accountId}:instance/{#InstanceId} |
VRouter | acs:vpc:{#regionId}:{#accountId}:vrouter/* |
VPC | acs:vpc:{#regionId}:{#accountId}:vpc/* |
RouteTable | acs:vpc:{#regionId}:{#accountId}:routetable/{#RouteTableId} |
PhysicalConnection | acs:vpc:{#regionId}:{#accountId}:physicalconnection/* |
Association | acs:vpc:{#regionId}:{#accountId}:havip/{#HaVipId} |
NatGateway | acs:vpc:{#regionId}:{#accountId}:natgateway/* |
VirtualBorderRouter | acs:vpc:{#regionId}:{#AccountId}:virtualborderrouter/* |
Address | acs:vpc:{#regionId}:{#accountId}:eip/* |
条件(Condition)
下表是云服务器 ECS(ECS)定义的产品级条件关键字,这些条件关键字可以在RAM权限策略语句的
Condition
元素中使用,用来描述授予权限的条件。以下仅列举产品级的条件关键字,阿里云定义的通用条件关键字也同样适用云服务器 ECS(ECS)。其中,数据类型决定了您可以使用哪些条件运算符将请求中的值与权限策略语句中的值进行比较。您必须使用与数据类型匹配的条件运算符,否则无法匹配策略语句,授权行为无效。数据类型与条件运算符的对应关系,请参见条件操作类型。
条件关键字 | 描述 | 类型 |
---|---|---|
vpc:VPC | VPC信息 | String |
vpc:IsDefaultVSwitch | 是否为默认VSwitch,是否可以使用默认VSwitch | Boolean |
vpc:IsDefaultVpc | 是否为默认VPC | Boolean |
ecs:IsDiskEncrypted | 是否为加密数据盘 | String |
ecs:InstanceType | 实例规格 | String |
ecs:InstanceTypeFamily | 实例规格族 | String |
ecs:ImagePlatform | 镜像的操作系统类型 | String |
ecs:ImageSource | 镜像来源 | String |
ecs:CommandRunAs | 执行云助手命令的操作系统内用户 | String |
ecs:IsSystemDiskEncrypted | 是否为加密系统盘 | String |
ecs:ImageOwnerId | 镜像的所有者UID。 | String |
ecs:AssociatePublicIpAddress | 是否支持资源在创建和变配过程中进行公网IP分配,即是否允许操作资源使公网带宽大于0。 | Boolean |
ecs:PasswordCustomized | 是否使用了自定义密码 | Boolean |
ecs:PasswordInherit | 实例是否继承镜像密码 | Boolean |
ecs:SecurityEnhancementStrategy | 是否开启安全加固。 | String |
ecs:SecurityHardeningMode | 访问实例元数据时是否强制使用加固模式(IMDSv2) | Boolean |
vpc:CreateDefaultVpc | 是否可以创建默认VPC | Boolean |
ecs:SecurityGroupIpProtocols | 安全组开放的传输层协议 | String |
ecs:SecurityGroupSourceCidrIps | 安全组设置访问权限的源端IPv4 CIDR地址段 | String |
ecs:NotSpecifySecurityGroupId | 是否没有指定安全组ID | Boolean |