MSE支持阿里云账号给RAM用户授予云原生网关的操作权限,避免因暴露阿里云账号密钥造成的安全风险。本文介绍如何创建RAM用户并给RAM用户授权,授权后您就可以通过RAM用户使用MSE云原生网关。

使用场景

某企业开通了微服务引擎MSE云原生网关服务,由于员工工作职责不同,对资源操作所需权限也不同,现有如下需求:

  • 鉴于安全或信任原因,不希望将云账号密钥直接透露给员工,期望可以为员工相应的账号授予权限。
  • 用户账号只能在授权的前提下操作资源,不需要进行独立的计量计费,所有开销均计入企业账号名下。
  • 随时可以撤销用户账号的权限,也可以随时删除其创建的用户账号。
  • MSE云原生网关作为一个托管型产品有开发和运维两个角色,运维人员负责集群和权限的管理,开发人员负责配置和服务管理。

使用说明

您可以使用阿里云账号通过控制台和API为RAM用户授权,本文介绍如何通过控制台操作。

步骤一:创建RAM用户

使用阿里云账号登录RAM控制台并创建RAM用户。

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏选择身份管理 > 用户
  3. 用户页面单击创建用户
  4. 用户账号信息区域输入登录名称显示名称
  5. 访问方式区域选中控制台访问OpenAPI调用访问
    • 控制台访问:完成对登录安全的基本设置,包括自动生成或自定义登录密码、是否要求下次登录时重置密码以及是否要求开启多因素认证。
      说明 自定义登录密码时,密码必须满足您在人员管理 > 设置中设置的密码复杂度规则。关于如何设置密码复杂度规则,请参见设置RAM用户密码强度
    • OpenAPI调用访问:自动为RAM用户生成访问密钥(AccessKey),支持通过API或其他开发工具访问阿里云。
    说明 为了保障账号安全,建议仅为RAM用户选择一种登录方式,避免RAM用户离开组织后仍可以通过访问密钥访问阿里云资源。
  6. 单击确定

步骤二:为RAM用户添加权限

在使用RAM用户之前,需要为其添加相应权限。

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏选择身份管理 > 用户
  3. 用户页面,找到需要授权的用户,单击操作列中的添加权限
  4. 添加权限面板,为RAM用户添加权限,然后单击确定
    1. 选择授权应用范围。
      • 整个云账号:权限在当前阿里云账号内生效。
      • 指定资源组:权限在指定的资源组内生效。
        说明 指定资源组授权生效的前提是该云服务已支持资源组。更多信息,请参见支持资源组的云服务
    2. 输入被授权主体。
      被授权主体即需要授权的RAM用户,系统会自动填入当前的RAM用户,您也可以添加其他RAM用户。
    3. 选择权限策略。
      选择权限策略类型,在文本框中输入要添加的权限策略关键字,然后单击搜索到的权限策略,添加到右侧的已选择列表中。

      权限类型包括系统权限策略和自定义权限策略:

      • 系统权限策略(粗粒度授权)

        微服务引擎MSE目前支持两种粗粒度的系统权限策略。

        权限策略名称 说明
        AliyunMSEFullAccess 管理微服务引擎MSE的权限,等同于阿里云账号的权限,被授予该权限的RAM用户拥有控制台所有功能的操作权限。
        AliyunMSEReadOnlyAccess 微服务引擎MSE的只读权限,被授予该权限的RAM用户具有阿里云账号所有资源的只读权限。
        说明 建议给运维人员授予AliyunMSEFullAccess权限策略,由运维人员去创建和删除资源。给开发人员授予AliyunMSEReadOnlyAccess权限策略,可以查看这些资源,但是不能删除和创建。如果想更细粒度地控制开发人员的权限,您可使用以下自定义权限策略。
      • 自定义权限策略(细粒度授权)

        如果您需要更细粒度地授权,您可以通过创建自定义策略来进行访问控制。创建自定义策略的具体步骤,请参见创建自定义策略

        • 示例一:授予RAM用户对云原生网关实例gw-f23fcdca44c84769a6652245ecc****的读写权限。
          {
            "Statement": [
              {
                "Action": [
                  "mse:*"
                ],
                "Resource": "acs:mse:*:*:instance/gw-f23fcdca44c84769a6652245ecc****",
                "Effect": "Allow"
              }
            ],
            "Version": "1"
          }
        • 示例二:授予RAM用户对所有云原生网关实例的读权限。
          {
            "Statement": [
              {
                  "Action": [
                  "mse:List*",
                  "mse:Query*",
                  "mse:Get*",
                  "mse:Pull*"
                ],
                "Resource": "acs:mse:*:*:*",
                "Effect": "Allow"
              }
            ],
            "Version": "1"
          }
        • 示例三:授予RAM用户控制台提示的资源操作权限。
          错误提示
           {
            "Statement": [
              {
                  "Action": [
                  "mse:UpdateGatewayName"
                ],
                "Resource": "acs:mse:cn-hangzhou:{主账号ID}:instance/{网关实例ID} ",
                "Effect": "Allow"
              }
            ],
            "Version": "1"
          }
  5. 添加权限的授权结果页面上,查看授权信息摘要,并单击完成

后续操作

使用阿里云账号创建好RAM用户后,即可将RAM用户的登录名称及密码或者AccessKey信息分发给其他用户。其他用户可以按照以下步骤使用RAM用户登录控制台或调用API。
  • 登录控制台
    1. 打开RAM用户登录页面。
    2. RAM用户登录页面,输入RAM用户登录名称,单击下一步,并输入RAM用户密码,然后单击登录
      说明 RAM用户登录名称的格式为<$username>@<$AccountAlias><$username>@<$AccountAlias>.onaliyun.com<$AccountAlias>为账号别名,如果没有设置账号别名,则默认值为阿里云账号的ID。
    3. 子用户用户中心页面上单击有权限的产品,即可访问控制台。
  • 调用API

    使用RAM用户的AccessKey调用API。在代码中使用RAM用户的AccessKey ID和AccessKey Secret即可。

相关内容

为了方便您自定义RAM权限策略,本文提供了MSE云原生网关的授权映射表。

  • 网关相关
    Action 权限说明 是否为只读类权限
    AddGateway 创建按量付费的云原生网关
    ListGateway 查询网关集群列表
    GetGatewayDetail 查看单个网关详情
    GetGateway 查询单个网关信息
    ListGatewaySlb 查询网关入口SLB
    SelectGatewaySlb 查询已有的SLB
    AddGatewaySlb 新关联一个网关入口SLB
    DeleteGatewaySlb 解绑一个网关入口SLB
    DeleteGateway 删除按量付费的云原生网关
  • 服务来源相关
    Action 权限说明 是否为只读类权限
    ListServiceSource 查询服务来源列表
    GetKubernetesSource 查询已有的ACK集群
    GetMseSource 查询已有的MSE注册中心
    AddServiceSource 关联服务来源
    DeleteServiceSource 解绑服务来源
    PullServices 查询已有的服务列表
    ImportServices 创建或导入服务
    ListGatewayService 查询已订阅服务列表
    GetGatewayServiceDetail 查询服务详情
    AddGatewayServiceVersion 添加服务版本
    UpdateGatewayServiceVersion 更新服务版本
    DeleteGatewayServiceVersion 删除服务版本
    UpdateGatewayServiceTrafficPolicy 修改服务负载均衡策略
  • 路由相关
    Action 权限说明 是否为只读类权限
    ListGatewayRoute 查询网关路由列表
    AddGatewayRoute 创建网关路由
    ApplyGatewayRoute 发布网关路由
    OfflineGatewayRoute 下线网关路由
    DeleteGatewayRoute 删除网关路由
    GetGatewayRouteDetail 查询路由详情
    GetRateLimit 查询路由限流配置
    AddRateLimit 增加路由限流配置
    UpdateRateLimit 删除路由限流配置
    UpdateGatewayRouteHTTPRewrite 更新路由重写策略
    UpdateGatewayRouteHeaderOp 更新路由Header设置
    UpdateGatewayRouteCORS 更新路由跨域策略
    UpdateGatewayRouteTimeout 更新路由超时策略
    UpdateGatewayRouteRetry 更新路由重试策略
  • 证书域名相关
    Action 权限说明 是否为只读类权限
    ListGatewayDomain 查询关联域名列表
    AddGatewayDomain 关联域名
    GetGatewayDomainDetail 查询域名关联详情
    UpdateGatewayDomain 更新域名关联信息
    DeleteGatewayDomain 解绑关联域名
    ListSSLCert 查询已有证书
    AddSSLCert 关联域名证书
    UpdateSSLCert 更新域名证书
  • 其他
    Action 权限说明 是否为只读类权限
    GetBlackWhiteList 查询黑白名单
    AddBlackWhiteList 添加黑白名单
    UpdateBlackWhiteList 更新黑白名单
    AddGatewayAuth 添加鉴权
    ListGatewayAuth 查询鉴权列表
    UpdateGatewayAuth 更新鉴权
    DeleteGatewayAuth 删除鉴权
    AddAuthResource 添加鉴权Path
    DeleteAuthResource 删除鉴权Path