开发者社区> 问答> 正文

如何使用 RAM 管理 API?

API 网关结合阿里云访问控制(RAM)来实现企业内多职员分权管理 API。API 提供者可以为员工建立子账户,并控制不同职员负责不同的 API 管理。

  • 使用 RAM 可以允许子帐号,查看、创建、管理、删除 API 分组、API、授权、流控策略等。但子帐号不是资源的所有者,其操作权限随时都可以被主帐号收回。
  • 在查看本文前,请确保您已经祥读了 RAM 帮助手册 API 网关 API 手册.
  • [backcolor=transparent]若您不无此业务场景, 请跳过此章节。

你可以使用 RAM 的控制台 或者 API 来添加操作。

第一部分:策略管理


授权策略(Policy),来描述授权的具体内容,授权内容主要包含效力( Effect )、资源( Resource )、对资源所授予的操作权限( Action )以及限制条件( Condition )这几个基本元素。

系统授权策略


API 网关已经预置了两个系统权限,AliyunApiGatewayFullAccess和AliyunApiGatewayReadOnlyAccess,可以到 RAM 的在 RAM 控制台-策略管理 进行查看。
  • AliyunApiGatewayFullAccess: 管理员权限,拥有主帐号下包含 API 分组、API、流控策略、应用等所有资源的管理权限。
  • AliyunApiGatewayReadOnlyAccess:可以查看主帐号下包含 API 分组、API、流控策略、应用等所有资源,但不可以操作。


自定义授权策略


您可以根据需要自定义管理权限,支持更为精细化的授权,可以为某个操作,也可以是某个资源。如:API GetUsers 的编辑权限。可以在 RAM 控制台-策略管理-自定义授权策略查看已经定义好的自定义授权:自定义授权查看、创建、修改、删除方法请参照: 授权策略管理。授权策略内容填写方法请参照: Policy 基本元素 Policy 语法结构 和下文的授权策略。

第二部分:授权策略


授权策略是一组权限的集合,它以一种策略语言来描述。通过给用户或群组附加授权策略,用户或群组中的所有用户就能获得授权策略中指定的访问权限。授权策略内容填写方法请参照: Policy 基本元素 Policy 语法结构。[backcolor=transparent]示例:
[backcolor=transparent]

其中:
  • [backcolor=transparent]acs: Alibaba Cloud Service 的首字母缩写,表示阿里云的公有云平台
  • [backcolor=transparent]service-name 为:阿里云产品名称,请填写 apigateway
  • [backcolor=transparent]region: 地区信息,可以使用通配符[backcolor=transparent]*号来代替,[backcolor=transparent]*表示所有区域
  • [backcolor=transparent]account-id: 账号 ID,比如 1234567890123456,也可以用[backcolor=transparent]*代替
  • [backcolor=transparent]relative-id: 与 API 网关相关的资源描述部分,这部分的格式描述支持类似于一个文件路径的树状结构。

示例:
  1. acs:apigateway:$regionid:$accountid:apigroup/$groupId

书写:
  1. acs:apigateway:*:$accountid:apigroup/

请结合 API 网关的 API 手册 来查看下表
[backcolor=transparent]
[backcolor=transparent]action-name[backcolor=transparent]资源( Resource )
AbolishApiacs:apigateway:$regionid:$accountid:apigroup/$groupId
AddTrafficSpecialControlacs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolid
CreateApiacs:apigateway:$regionid:$accountid:apigroup/$groupId
CreateApiGroupacs:apigateway:$regionid:$accountid:apigroup/*
CreateTrafficControlacs:apigateway:$regionid:$accountid:trafficcontrol/*
DeleteAllTrafficSpecialControlacs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolid
DeleteApiacs:apigateway:$regionid:$accountid:apigroup/$groupId
DeleteApiGroupacs:apigateway:$regionid:$accountid:apigroup/$groupId
DeleteDomainacs:apigateway:$regionid:$accountid:apigroup/$groupId
DeleteDomainCertificateacs:apigateway:$regionid:$accountid:apigroup/$groupId
DeleteTrafficControlacs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolId
DeleteTrafficSpecialControlacs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolId
DeployApiacs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeApiacs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeApiErroracs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeApiGroupDetailacs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeApiGroupsacs:apigateway:$regionid:$accountid:apigroup/*
DescribeApiLatencyacs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeApiQpsacs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeApiRulesacs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeApisacs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeApisByRuleacs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolId oracs:apigateway:$regionid:$accountid:secretkey/$secretKeyId
DescribeApiTrafficacs:apigateway:$regionid:$accountid:apigroup/$groupid
DescribeAppsByApiacs:apigateway:$regionid:$accountid:apigroup/$groupId
AddBlackListacs:apigateway:$regionid:$accountid:blacklist/*
DescribeBlackListsacs:apigateway:$regionid:$accountid:blacklist/*
DescribeDeployedApiacs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeDeployedApisacs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeDomainacs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeDomainResolutionacs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeHistoryApiacs:apigateway:$regionid:$accountid:apigroup/$groupId
DescribeHistoryApisacs:apigateway:$regionid:$accountid:apigroup/*
DescribeRulesByApiacs:apigateway:$regionid:$accountid:group/$groupId
DescribeSecretKeysacs:apigateway:$regionid:$accountid:secretkey/*
DescribeTrafficControlsacs:apigateway:$regionid:$accountid:trafficcontrol/*
ModifyApiacs:apigateway:$regionid:$accountid:apigroup/$groupId
ModifyApiGroupacs:apigateway:$regionid:$accountid:apigroup/$groupId
ModifySecretKeyacs:apigateway:$regionid:$accountid:secretkey/$secretKeyId
RecoverApiFromHistoricalacs:apigateway:$regionid:$accountid:apigroup/$groupId
RefreshDomainacs:apigateway:$regionid:$accountid:apigroup/$groupId
RemoveAccessPermissionByApisacs:apigateway:$regionid:$accountid:apigroup/$groupId
RemoveAccessPermissionByAppsacs:apigateway:$regionid:$accountid:apigroup/$groupId
RemoveAllBlackListacs:apigateway:$regionid:$accountid:blacklist/*
RemoveApiRuleacs:apigateway:$regionid:$accountid:apigroup/$groupId(acs:apigateway:$regionid:$accountid:secretkey/$secretKeyId oracs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolId)
RemoveAppsFromApiacs:apigateway:$regionid:$accountid:apigroup/$groupId
RemoveBlackListacs:apigateway:$regionid:$accountid:blacklist/$blacklistid
SetAccessPermissionByApisacs:apigateway:$regionid:$accountid:apigroup/$groupId
SetAccessPermissionsacs:apigateway:$regionid:$accountid:apigroup/$groupId
SetApiRuleacs:apigateway:$regionid:$accountid:apigroup/$groupId(acs:apigateway:$regionid:$accountid:secretkey/$secretKeyId oracs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolId)
SetDomainacs:apigateway:$regionid:$accountid:apigroup/$groupId
SetDomainCertificateacs:apigateway:$regionid:$accountid:apigroup/$groupId
SwitchApiacs:apigateway:$regionid:$accountid:apigroup/$groupId
CreateSecretKeyacs:apigateway:$regionid:$accountid:secretkey/*
[tr=rgb(239, 251, 255)][td]DeleteSecretKey acs:apigateway:$regionid:$accountid:secretkey/$secretKeyId

展开
收起
轩墨 2017-10-26 11:58:17 1988 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
Spring Boot2.0实战Redis分布式缓存 立即下载
CUDA MATH API 立即下载
API PLAYBOOK 立即下载