在使用RAM账号调用蚂蚁区块链服务API前,需要主账号通过创建授权策略对RAM账号进行授权。在授权策略中,使用资源描述符(Alibaba Cloud Resource Name,ARN)指定授权资源。 本文提供了在蚂蚁区块链服务中通过访问控制实现团队或者部门成员鉴权、跨账号资源授权以及跨云服务授权的RAM鉴权规则。在了解如何使用访问控制RAM授权和访问区块链服务之前,确保您已阅读了RAM产品文档和RAM API文档。 可授权的蚂蚁区块链资源类型 在进行RAM子账号授权时,蚂蚁区块链资源的描述方式如下:
资源类型 授权策略中的资源描述方法 联盟 acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId 区块链 acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId 合约工程 acs:baas:*:$consortiumOwnerUid:antChainConsortium/$consortiumId/contractProject/$projectId 其中,$consortiumId为联盟Id,$blockchainId为区块链Id,$projectId为联盟内的合约工程Id。 可授权的蚂蚁区块链接口 下表列举了蚂蚁区块链中可授权的API及其描述方式:
API 资源描述 CreateAntChainConsortium acs:baas::$accountId:antChainConsortium/ DescribeAntChainConsortiums acs:baas::$accountId:antChainConsortium/ UpdateAntChainConsortium acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId DeleteAntChainConsortium acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId InviteAntChainMember acs:baas::$accountId: AgreeAntChainInvitation acs:baas::$accountId: DescribeAntChainMembers acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId UpdateAntChainMember acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId DescribeAntChains acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/ CreateAntChain acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/ UpdateAntChain acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId ApplyAntChainCertificate acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId ApplyAntChainCertificateWithKeyAutoCreation acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainDownloadPaths acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId ResetAntChainCertificate acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainLatestBlocks acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainLatestTransactionDigests acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainInformation acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainTransactionStatistics acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainBlock acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainTransaction acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainTransactionReceipt acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId ResetAntChainUserCertificate acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainAccounts acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainNodes acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId CreateAntChainAccount acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId CreateAntChainAccountWithKeyPairAutoCreation acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId FreezeAntChainAccount acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId UnfreezeAntChainAccount acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainCertificateApplications acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId CreateAntChainContractProject acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/contractProject/ CopyAntChainContractProject acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/contractProject/ DeleteAntChainContractProject acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/contractProject/$projectId UpdateAntChainContractProject acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/contractProject/$projectId DescribeAntChainContractProjects acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/contractProject/ DescribeAntChainContractProjectContentTree acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/contractProject/$projectId CreateAntChainContractContent acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/contractProject/$projectId DeleteAntChainContractContent acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/contractProject/$projectId UpdateAntChainContractContent acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/contractProject/$projectId DescribeCloudIDEEnvConfigs acs:baas::$accountId: ProcessCloudIDEContractTransaction acs:baas::$accountId: 概览页面体验链相关接口 符合不鉴权条件,不进行RAM鉴权。 DescribeAntChainRegions 该接口不进行RAM鉴权。 DescribeAntChainQRCodeAuthorization acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId UpdateAntChainQRCodeAuthorization acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainMiniAppBrowserQRCodeAuthorizedUsers acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId BatchAddAntChainMiniAppQRCodeAuthorizedUsers acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DeleteAntChainMiniAppQRCodeAuthorizedUser acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainMiniAppBrowserQRCodeAccessLog acs:baas::$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId DescribeAntChainMiniAppBrowserTransactionQRCode acs:baas:*:$consortiumOwnerUid:antChainConsortium/$consortiumId/blockchain/$blockchainId 蚂蚁区块链RAM规则示例 例1 :授权BaaS服务只读类操作。这种类型的权限能够允许用户通过控制台或API查看区块链状态,下载SDK。
{
"Statement": [{
"Action": ["baas:DescribeAntChain*"],
"Effect": "Allow",
"Resource": "acs:baas:*:*:*"
}],
"Version": "1"
} 例2:授权联盟管理类操作(查询,创建、更新、删除)。这种类型的权限允许用户通过控制台或API管理联盟。
{
"Statement": [{
"Action": "baas:*AntChainConsortium*",
"Effect": "Allow",
"Resource": ["acs:baas:*:*:antChainConsortium/*"]
}],
"Version": "1"
} 例3:更精细化的链码开发者授权。该权限通常需要全部的读类型操作,以及特定联盟的资源管理类操作。按照最小权限原则,以合约管理功能为例,需要限制该用户仅能对用于指定联盟的指定合约工程进行操作。将下面的antChainConsortium/$consortiumId/contractProject/$projectId替换为具体资源在区块链服务中的资源Id。
{
"Statement": [{
"Action": ["baas:DescribeAntChain*"],
"Effect": "Allow",
"Resource": "acs:baas:*:*:*"
},
{
"Action": "baas:*AntChainContract*",
"Effect": "Allow",
"Resource": ["acs:baas:*:*:antChainConsortium/$consortiumId/contractProject/$projectId"]
}],
"Version": "1"
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。