在使用子账号(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/* |