zoukankan      html  css  js  c++  java
  • 阿里云API网关(12)为员工创建子账号,实现分权管理API:使用RAM管理API

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

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

    你可以使用 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 语法结构
    示例:

    1. {
    2. "Version": "1",
    3. "Statement": [
    4. {
    5. "Action": "apigateway:Describe*",
    6. "Resource": "*",
    7. "Effect": "Allow"
    8. }
    9. ]
    10. }

    此示例表示:允许所有的查看操作

    Action(操作名称列表)格式为:

    1. "Action":"<service-name>:<action-name>"

    其中:

    • service-name 为:阿里云产品名称,请填写 apigateway
    • action-name 为:API 接口名称,请参照下表, 支持通配符 *
    1. "Action": "apigateway:Describe*" 表示所有的查询操作
    2. " Action": "apigateway:*" 表示 API 网关所有操作

    第三部分:Resource(操作对象列表)

    Resource 通常指操作对象, API 网关中的 API 分组、流控策略、应用都被称为 Resource,书写格式:

    1. acs:<service-name>:<region>:<account-id>:<relative-id>

    其中:

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

    示例:

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

    书写:

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

    请结合 API 网关的 API 手册 来查看下表

    action-name资源( Resource )
    AbolishApi acs:apigateway:$regionid:$accountid:apigroup/$groupId
    AddTrafficSpecialControl acs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolid
    CreateApi acs:apigateway:$regionid:$accountid:apigroup/$groupId
    CreateApiGroup acs:apigateway:$regionid:$accountid:apigroup/*
    CreateTrafficControl acs:apigateway:$regionid:$accountid:trafficcontrol/*
    DeleteAllTrafficSpecialControl acs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolid
    DeleteApi acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DeleteApiGroup acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DeleteDomain acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DeleteDomainCertificate acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DeleteTrafficControl acs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolId
    DeleteTrafficSpecialControl acs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolId
    DeployApi acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeApi acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeApiError acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeApiGroupDetail acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeApiGroups acs:apigateway:$regionid:$accountid:apigroup/*
    DescribeApiLatency acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeApiQps acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeApiRules acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeApis acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeApisByRule acs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolId oracs:apigateway:$regionid:$accountid:secretkey/$secretKeyId
    DescribeApiTraffic acs:apigateway:$regionid:$accountid:apigroup/$groupid
    DescribeAppsByApi acs:apigateway:$regionid:$accountid:apigroup/$groupId
    AddBlackList acs:apigateway:$regionid:$accountid:blacklist/*
    DescribeBlackLists acs:apigateway:$regionid:$accountid:blacklist/*
    DescribeDeployedApi acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeDeployedApis acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeDomain acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeDomainResolution acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeHistoryApi acs:apigateway:$regionid:$accountid:apigroup/$groupId
    DescribeHistoryApis acs:apigateway:$regionid:$accountid:apigroup/*
    DescribeRulesByApi acs:apigateway:$regionid:$accountid:group/$groupId
    DescribeSecretKeys acs:apigateway:$regionid:$accountid:secretkey/*
    DescribeTrafficControls acs:apigateway:$regionid:$accountid:trafficcontrol/*
    ModifyApi acs:apigateway:$regionid:$accountid:apigroup/$groupId
    ModifyApiGroup acs:apigateway:$regionid:$accountid:apigroup/$groupId
    ModifySecretKey acs:apigateway:$regionid:$accountid:secretkey/$secretKeyId
    RecoverApiFromHistorical acs:apigateway:$regionid:$accountid:apigroup/$groupId
    RefreshDomain acs:apigateway:$regionid:$accountid:apigroup/$groupId
    RemoveAccessPermissionByApis acs:apigateway:$regionid:$accountid:apigroup/$groupId
    RemoveAccessPermissionByApps acs:apigateway:$regionid:$accountid:apigroup/$groupId
    RemoveAllBlackList acs:apigateway:$regionid:$accountid:blacklist/*
    RemoveApiRule acs:apigateway:$regionid:$accountid:apigroup/$groupId(acs:apigateway:$regionid:$accountid:secretkey/$secretKeyId oracs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolId)
    RemoveAppsFromApi acs:apigateway:$regionid:$accountid:apigroup/$groupId
    RemoveBlackList acs:apigateway:$regionid:$accountid:blacklist/$blacklistid
    SetAccessPermissionByApis acs:apigateway:$regionid:$accountid:apigroup/$groupId
    SetAccessPermissions acs:apigateway:$regionid:$accountid:apigroup/$groupId
    SetApiRule acs:apigateway:$regionid:$accountid:apigroup/$groupId(acs:apigateway:$regionid:$accountid:secretkey/$secretKeyId oracs:apigateway:$regionid:$accountid:trafficcontrol/$trafficcontrolId)
    SetDomain acs:apigateway:$regionid:$accountid:apigroup/$groupId
    SetDomainCertificate acs:apigateway:$regionid:$accountid:apigroup/$groupId
    SwitchApi acs:apigateway:$regionid:$accountid:apigroup/$groupId
    CreateSecretKey acs:apigateway:$regionid:$accountid:secretkey/*
    DeleteSecretKey acs:apigateway:$regionid:$accountid:secretkey/$secretKeyId

  • 相关阅读:
    SQL group by的困惑
    【翻译】优化基于ExtJS 4.1的应用
    DAO模式图解
    Add new rows to WebCombo in clientside javascript
    JavaScript页面刷新与弹出窗口问题解决方法
    Web开发:"父窗口"与"弹出子窗口"之间的刷新, 传值(转载)
    用"window.showModalDialog()"实现DIV模式弹出窗口
    [转]Infragistics NetAdvantage UltraWebGrid使用技巧
    JavaScript 和 .NET 中的 JavaScript Object Notation (JSON) 简介
    json2.js 使用详细教程
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/7228658.html
Copyright © 2011-2022 走看看