在使用子账号(RAM账号)调用可信账本数据库API前,需要主账号通过创建授权策略对RAM账号进行授权。在授权策略中,使用资源描述符(Alibaba Cloud Resource Name,ARN)指定授权资源。
资源授权
默认子账号没有权限通过调用阿里云API去创建、修改云资源。使用子账号调用API时,您需要先创建一个授权策略,然后将这个授权策略关联给对应的子账号完成资源授权。
在创建授权策略时,您可以通过ARN(Alibaba Cloud Resource Name)指定要授权的资源。ARN是阿里云为每个资源定义的一个全局的阿里云资源名称。
ARN格式如下:
acs:service-name:region:account-id:resource-relative-id
其中:
- acs:Alibaba Cloud Service的首字母缩写,表示阿里云的公共云平台。
- service-name:阿里云云服务的名称,如ecs, oss, slb等。
- region:地域信息。如果不支持该项,可以使用通配符星号(*)来代替。
- account-id:账号ID,例如1234567890123456。
- resource-relative-id:资源描述。
示例如下:
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:[ECS RAM Action]",
"ecs:DescribeInstances"
],
"Resource": [
"[ECS RAM Action Resource]",
"acs:ecs:$regionid:15619224785*****:instance/i-bp1bzvz55uz27hf*****"
],
"Effect": "Allow"
}
]
}
可授权的可信账本数据库资源类型
在进行RAM子账号授权时,可信账本数据库资源的描述方式如下:
资源类型 | 授权策略中的资源描述方法 |
---|---|
Ledger | acs:ledgerdb:$regionid:$accountid:ledger/$ledgerid |
acs:ledgerdb:$regionid:$accountid:ledger/* | |
Member | acs:ledgerdb:$regionid:$accountid:member/$memberid |
acs:ledgerdb:$regionid:$accountid:member/* |
可授权的可信账本数据库接口
下表列举了可授权的API及其描述方式:
API | 资源描述 |
---|---|
CreateLedger | acs:ledgerdb:$regionid:$accountid:ledger/* |
DeleteLedger | acs:ledgerdb:$regionid:$accountid:ledger/$ledgerid |
DescribeLedger | acs:ledgerdb:$regionid:$accountid:ledger/$ledgerid |
DescribeLedgers | acs:ledgerdb:$regionid:$accountid:ledger/* |
ModifyLedgerAttribute | acs:ledgerdb:$regionid:$accountid:ledger/$ledgerid |
AcceptMember | acs:ledgerdb:$regionid:$accountid:member/* |
CreateMember | acs:ledgerdb:$regionid:$accountid:member/* |
DeleteMember | acs:ledgerdb:$regionid:$accountid:member/$memberid |
DisableMember | acs:ledgerdb:$regionid:$accountid:member/$memberid |
EnableMember | acs:ledgerdb:$regionid:$accountid:member/$memberid |
GetMember | acs:ledgerdb:$regionid:$accountid:member/$memberid |
GetMemberKey | acs:ledgerdb:$regionid:$accountid:member/* |
InviteMember | acs:ledgerdb:$regionid:$accountid:member/* |
ListMembers | acs:ledgerdb:$regionid:$accountid:member/* |
ModifyMemberACLs | acs:ledgerdb:$regionid:$accountid:member/$memberid |
ModifyMemberKey | acs:ledgerdb:$regionid:$accountid:member/* |