当子账号通过 ECS Open API 对主账号的 ECS 资源进行访问时,ECS 后台向 RAM 进行权限检查,以确保资源拥有者的确将相关资源的相关权限授予了调用者。
每个不同的 ECS API 会根据涉及到的资源以及 API 的语义来确定需要检查哪些资源的权限。具体地,每个 API 的鉴权规则见下表。
| Action | 鉴权规则 |
| AllocatePublicIpAddress | acs:ecs:$regionid:$accountid:instance/$instanceid |
| AttachDisk | acs:ecs:$regionid:$accountid:disk/$diskid acs:ecs:$regionid:$accountid:instance/$instanceid |
| AttachKeyPair | acs:ecs:$regionid:$accountid:keypair/$KeyPairName acs:ecs:$regionid:$accountid:instance/$instanceid |
| AuthorizeSecurityGroup | acs:ecs:$regionid:$accountid:securitygroup/$securitygroupid [and acs:ecs:$regionid:$accountid:securitygroup/$sourcegroupid(如果指定了 SourceGroupId)] |
| CreateDisk | acs:ecs:$regionid:$accountid:disk/* [and acs:ecs:$regionid:$accountid:snapshot/$snapshotid(如果指定了 SnapshotId)] |
| CreateImage | acs:ecs:$regionid:$accountid:image/* acs:ecs:$regionid:$accountid:snapshot/$snapshotid |
| CreateInstance | acs:ecs:$regionid:$accountid:instance/* acs:ecs:$regionid:$accountid:securitygroup/$securitygroupid acs:ecs:$regionid:$accountid:image/$imageid [and acs:ecs:$regionid:$accountid:snapshot/$snapshotid(如果指定了 DataDisk.n.SnapshotId)]如果有 acs:ecs:$regionid:$accountid:keypair/$KeyPairName |
| CreateKeyPair | acs:ecs:$regionid:$accountid:keypair/ |
| CreateSecurityGroup | acs:ecs:$regionid:$accountid:securitygroup/\ |
| CreateSnapshot | acs:ecs:$regionid:$accountid:disk/$diskid acs:ecs:$regionid:$accountid:snapshot/* |
| DeleteDisk | acs:ecs:$regionid:$accountid:disk/$diskid |
| DeleteImage | acs:ecs:$regionid:$accountid:image/$imageid |
| DeleteInstance | acs:ecs:$regionid:$accountid:instance/$instanceid |
| DeleteKeyPairs | acs:ecs:$regionid:$accountid:keypair/$KeyPairName |
| DeleteSecurityGroup | acs:ecs:$regionid:$accountid:securitygroup/$securitygroupid |
| DeleteSnapshot | acs:ecs:$regionid:$accountid:snapshot/$snapshotid |
| DescribeAutoSnapshotPolicy | acs:ecs:*:$accountid:snapshot/* |
| DescribeDisks | acs:ecs:$regionid:$accountid:disk/* |
| DescribeImages | acs:ecs:$regionid:$accountid:image/* |
| DescribeInstanceMonitorData | acs:ecs:$regionid:$accountid:instance/$instanceid |
| DescribeInstanceStatus | acs:ecs:$regionid:$accountid:instance/* |
| DescribeInstanceTypes | acs:ecs:*:$accountid:* |
| DescribeKeyPairs | acs:ecs:$regionid:$accountid:keypair/ |
| DescribeRegions | acs:ecs:\:$accountid:* |
| DescribeSecurityGroupAttribute | acs:ecs:$regionid:$accountid:securitygroup/$securitygroupid |
| DescribeSecurityGroups | acs:ecs:$regionid:$accountid:securitygroup/* |
| DescribeSnapshots | acs:ecs:$regionid:$accountid:snapshot/* |
| DescribeZones | acs:ecs:*:$accountid:* |
| DetachDisk | acs:ecs:$regionid:$accountid:disk/$diskid acs:ecs:$regionid:$accountid:instance/$instanceid |
| DetachKeyPair | acs:ecs:$regionid:$accountid:keypair/$KeyPairName acs:ecs:$regionid:$accountid:instance/$instanceid |
| ImportKeyPair | acs:ecs:$regionid:$accountid:keypair/ |
| JoinSecurityGroup | acs:ecs:$regionid:$accountid:instance/$instanceid acs:ecs:$regionid:$accountid:securitygroup/$securitygroupid |
| LeaveSecurityGroup | acs:ecs:$regionid:$accountid:instance/$instanceid acs:ecs:$regionid:$accountid:securitygroup/$securitygroupid |
| ModifyAutoSnapshotPolicy | acs:ecs:\:$accountid:snapshot/* |
| ModifyDiskAttribute | acs:ecs:$regionid:$accountid:disk/$diskid |
| ModifyInstanceAttribute | acs:ecs:$regionid:$accountid:instance/$instanceid |
| ModifyInstanceNetworkSpec | acs:ecs:$regionid:$accountid:instance/$instanceid |
| RebootInstance | acs:ecs:$regionid:$accountid:instance/$instanceid |
| ReplaceSystemDisk | acs:ecs:$regionid:$accountid:instance/$instanceid [and acs:ecs:$regionid:$accountid:image/$imageid (如果是使用了自定义镜像或者镜像市场的镜像)] |
| ReInitDisk | acs:ecs:$regionid:$accountid:disk/$diskid |
| ResetDisk | acs:ecs:$regionid:$accountid:snapshot/$snapshotid acs:ecs:$regionid:$accountid:disk/$diskid |
| RevokeSecurityGroup | acs:ecs:$regionid:$accountid:securitygroup/$securitygroupid [and acs:ecs:$regionid:$accountid:securitygroup/$sourcegroupid(如果指定了 sourcegroupid)] |
| StartInstance | acs:ecs:$regionid:$accountid:instance/$instanceid |
| StopInstance | acs:ecs:$regionid:$accountid:instance/$instanceid |
| DescribeInstances | acs:ecs:$regionid:$accountid:instance/*acs:ecs:$regionid:$accountid:keypair/ |
| CreateVpc | acs:ecs:$regionid:$accountid:vpc/\ |
| ModifyVpcAttribute | acs:ecs:$regionid:$accountid:vpc/$vpcid |
| DescribeVRouters | acs:ecs:$regionid:$accountid:vrouter/* |
| CreateVSwitch | acs:ecs:$regionid:$accountid:vswitch/* |
| CreateRouteTable | acs:ecs:$regionid:$accountid:routetable/* |
| CreateRouteEntry | acs:ecs:$regionid:$accountid:routetable/$routetableid |
| AllocateEipAddress | acs:ecs:$regionid:$accountid:eip/* |
| AssociateEipAddress | acs:ecs:$regionid:$accountid:eip/$allocationid acs:ecs:$regionid:$accountid:instance/$instanceid |
| ReleaseEipAddress | acs:ecs:$regionid:$accountid:eip/$allocationid |
| RenewInstance | acs:ecs:$regionid:$accountid:instance/$instanceid |
| DescribeVpcs | acs:ecs:$regionid:$accountid:vpc/* |
| DeleteVpc | acs:ecs:$regionid:$accountid:vpc/$vpcid |
| ModifyVRouterAttribute | acs:ecs:$regionid:$accountid:vrouter/$vrouterid |
| DescribeVSwitches | acs:ecs:$regionid:$accountid:vswitch/* |
| DeleteVSwitch | acs:ecs:$regionid:$accountid:vswitch/$vswitchid |
| DescribeRouteTables | acs:ecs:$regionid:$accountid:routetable/* |
| DeleteRouteEntry | acs:ecs:$regionid:$accountid:routetable/$routetableid |
| DescribeEipAddresses | acs:ecs:$regionid:$accountid:eip/* |
| UnassociateEipAddresses | acs:ecs:$regionid:$accountid:eip/$eipid acs:ecs:$regionid:$accountid:instance/$instanceid |
| ModifySecurityGroupAttribute | acs:ecs:$regionid:$accountid:securitygroup/$securitygroupid |
| DescribeEipMonitorData | acs:ecs:$regionid:$accountid:eip/$allocationid |
| ModifyVSwitchAttribute | acs:ecs:$regionid:$accountid:vswitch/$vswitchid |
| DescribeInstanceVncUrl | acs:ecs:$regionid:$accountid:instance/$instanceid |
| ModifySnapshotAttribute | acs:ecs:$regionid:$accountid:snapshot/$snapshotid |
| ModifyInstanceVpcAttribute | acs:ecs:$regionid:$accountid:instance/$instanceid |
| ModifyEipAddressAttribute | acs:ecs:$regionid:$accountid:eip/$allocationid |
| DescribeDiskMonitorData | acs:ecs:$regionid:$accountid:disk/$diskid |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这段信息详细列出了ECS(Elastic Compute Service,弹性计算服务)API操作与阿里云资源访问管理(RAM, Resource Access Management)权限检查的对应关系。当子账号通过ECS Open API尝试访问或操作主账号的ECS资源时,RAM会依据这些鉴权规则来验证子账号是否有足够的权限执行特定的操作。
每个API操作(Action)都需要特定的权限才能成功执行。权限以acs:ecs:$regionid:$accountid:resourceType/resourceIdentifier的形式表示,其中: - acs:是阿里云服务的前缀。 - ecs:指明是ECS服务相关的权限。 - $regionid代表操作涉及的区域ID。 - $accountid是阿里云账户ID。 - resourceType指的是资源类型,如instance(实例)、disk(磁盘)、securitygroup(安全组)等。 - resourceIdentifier是具体资源的标识符,例如实例ID、磁盘ID等;星号*表示对所有该类型的资源有权限。
例如,对于AllocatePublicIpAddress操作,需要检查的权限为acs:ecs:$regionid:$accountid:instance/$instanceid,意味着执行此操作的用户必须拥有针对指定实例分配公网IP地址的权限。
这些规则帮助理解在使用ECS API进行自动化管理和操作时,如何在RAM中设置合适的策略,确保只有被正确授权的子账号能够执行相应的资源操作,从而维护账号的安全性和资源的合规使用。