资源(Resource) 元素内包含着权限声明定义的资源范围,使用TRN 表达式定义。TRN(The Resource Name) 是火山引擎上资源的全局唯一标识,由服务、地域、账号、资源路径等信息组成,格式如下:
字段 | 说明 | 示例值 | 必填 |
---|---|---|---|
trn | TRN的固定前缀 | trn | 是 |
${ServiceCode} | 云服务的英文代码,例如云服务器的ServiceCode为ecs ,不同云产品的ServiceCode可从服务的API文档中查询。 | ecs | 是 |
| 资源所属的地域,全局资源该字段值应为空。以下是不同地域的RegionCode
| cn-beijing | 否 |
${AccountId} | 资源所属的账号ID | 2000000001 | 是 |
${ResourcePath} | 资源路径,例如云服务器的资源路径为instance/${InstanceId} ,instance 为云服务实例的固定资源类型名,${InstanceId} 为云服务器实例的ID。不同资源类型的路径格式可参考文档末尾的表格。 | instance/i-abc123 | 是 |
示例1:AccountID为2000000001的账号在cn-beijing创建的实例id=i-100的云服务器,对应的资源TRN为
trn:ecs:cn-beijing:2000000001:instance/i-100
示例2:AccountID为2000000001的账号创建的用户名为Bob的IAM用户,对应的资源TRN为
trn:iam::2000000001:user/Bob
(IAM为全局服务,不区分地域,因此这里的地域值为空)
Resource元素支持整体以通配符*
表达,或在TRN从第2段至后续的每一段中使用通配符:
*
:匹配0个、1个或多个字符。?
:匹配一个字符(不能为0个)。以下是一条包含Resource的策略:
{ "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DeleteInstance" ], "Resource": [ "trn:ecs:cn-beijing:2000000001:instance/i-100", "trn:ecs:cn-beijing:2000000001:instance/i-200" ] }, { "Effect": "Allow", "Action": [ "iam:GetUser" ], "Resource": [ "*" ] } ] }
解读: 该条策略定义了允许删除实例ID为i-100和i-200的云服务器实例以及允许查询全部IAM用户的权限。
您可参考具体的云服务产品文档了解支持的资源类型,以下给出了一些常用服务的资源TRN格式:
产品 | ServiceCode | 资源类型 | ResourceType | trn格式 |
---|---|---|---|---|
云服务器 | ecs | 实例 | instance | trn:ecs:{region}:{account}:instance/{instanceid} |
密钥对 | keypair | trn:ecs:{region}:{account}:keypair/{keypairname} | ||
镜像 | image | trn:ecs:{region}:{account}:image/{imageid} | ||
弹性块存储 | storage_ebs | volume | volume | trn:storage_ebs:{region}:{account}:volume/{volumeid} |
云数据库 RDS MySQL | rds_mysql | 实例 | instance | trn:rds_mysql:{region}:{account}:instance/{instanceid} |
缓存数据库Redis版 | Redis | 实例 | instance | trn:Redis:{region}:{account}:instance/{instanceid} |
内容分发网络 | CDN | 域名 | Domain | trn:CDN:{region}:{account}:Domain/{domain} |
应用型负载均衡 | alb | 实例 | loadbalancer | trn:alb:{region}:{account}:loadbalancer/{id} |
监听器 | listener | trn:alb:{region}:{account}:listener/{id} | ||
服务器组 | servergroup | trn:alb:{region}:{account}:servergroup/{id} | ||
个性化配置 | customizedcfg | trn:alb:{region}:{account}:customizedcfg/{id} | ||
证书 | certificate | trn:alb:{region}:{account}:certificate/{id} | ||
访问控制 | acl | trn:alb:{region}:{account}:acl/{id} | ||
公网IP | vpc | 实例 | eip | trn:vpc:{region}:{account}:eip/{eipid} |
共享带宽包 | vpc | 实例 | bandwidthpackage | trn:vpc:{region}:{account}:bandwidthpackage/{bandwidthpackageid} |
私有网络 | vpc | 私有网络实例 | vpc | trn:vpc:{region}:{account}:vpc/{vpcid} |
子网 | subnet | trn:vpc:{region}:{account}:subnet/{subnetid} | ||
网卡 | eni | trn:vpc:{region}:{account}:eni/{eniid} | ||
安全组 | securitygroup | trn:vpc:{region}:{account}:securitygroup/{securitygroupid} | ||
路由表 | routetable | trn:vpc:{region}:{account}:routetable/{routetableid} | ||
网络ACL | networkacl | trn:vpc:{region}:{account}:networkacl/{networkaclid} | ||
NAT网关 | natgateway | 实例 | ngw | trn:natgateway:{region}:{account}:ngw/{ngwid} |
VPN连接 | vpn | VPN网关 | vpngateway | trn:vpn:{region}:{account}:vpngateway/{vpngatewayid} |
用户网关 | customergateway | trn:vpn:{region}:{account}:customergateway/{customergatewayid} | ||
IPSec连接 | vpnconnection | trn:vpn:{region}:{account}:vpnconnection/{vpnconnectionid} | ||
VPN网关路由 | vpngatewayroute | trn:vpn:{region}:{account}:vpngatewayroute/{vpngatewayrouteid} | ||
专线连接 | directconnect | 物理专线 | connection | trn:directconnect:{region}:{account}:connection/{id} |
专线网关 | directconnectgateway | trn:directconnect:{region}:{account}:directconnectgateway/{id} | ||
中转路由器 | transitrouter | TR实例 | transitrouter | trn:transitrouter:{region}:{account}:transitrouter/{transitrouterid} |
TR连接 | transitrouterattachment | trn:transitrouter:{region}:{account}:transitrouterattachment/{transitrouterattachmentid} | ||
TR路由表 | transitrouterroutetable | trn:transitrouter:{region}:{account}:transitrouterroutetable/{transitrouterroutetableid} | ||
TR路由条目 | transitrouterrouteentry | trn:transitrouter:{region}:{account}:transitrouterrouteentry/{transitrouterrouteentryid} | ||
TR带宽包 | transitrouterbandwidthpackage | trn:transitrouter::{account}:transitrouterbandwidthpackage/{transitrouterbandwidthpackageid} | ||
负载均衡 | clb | 负载均衡实例 | clb | trn:clb:{region}:{account}:clb/{clbid} |
访问控制策略组 | acl | trn:clb:{region}:{account}:acl/{aclid} | ||
证书 | certificate | trn:clb:{region}:{account}:certificate/{certificateid} | ||
独占集群 | ec | trn:clb:{region}:{account}:ec/{{ecid} | ||
容器服务 | vke | 集群 | cluster | trn:vke:{region}:{account}:cluster/{id} |
对象存储 | tos | 桶 | bucket | trn:tos:{region}:{account}:{bucket} |
对象 | object | trn:tos:{region}:{account}:{bucket}/{object} | ||
访问控制 | iam | 用户 | user | trn:iam::{account}:user/{UserName} |
用户组 | group | trn:iam::{account}:group/{GroupName} | ||
角色 | role | trn:iam::{account}:role/{RoleName} | ||
策略 | policy | trn:iam::{account}:policy/{PolicyName} | ||
项目 | project | trn:iam::{account}:project/{ProjectName} |