赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. Serverless应用引擎(新版)
  4. 操作指南
  5. 企业级特性
  6. 权限管理
  7. 为RAM角色授权

为RAM角色授权

  • 权限管理
  • 发布于 2025-04-17
  • 0 次阅读
文档编辑
文档编辑

您可以为可信实体为阿里云账号、阿里云服务或身份提供商的RAM角色授权。本文介绍如何创建可信实体为阿里云账号的RAM角色,来实现跨账号授权访问Serverless 应用引擎 SAE(Serverless App Engine)的资源。

应用场景

企业A开通了SAE服务,并希望将部分业务授权给企业B。需求如下:

  • 企业A希望能专注于业务系统,仅作为SAE的资源所有者;而将部分业务授权给企业B,例如应用发布、应用管理、自动弹性、一键启停应用和应用监控等服务。

  • 企业A希望当企业B的员工加入或离职时,无需做任何权限变更。企业B可以进一步将A的资源访问权限分配给企业B的RAM用户,并可以精细控制其员工或应用对资源的访问和操作权限。

  • 企业A希望如果双方合同终止,企业A随时可以撤销对企业B的授权。

步骤一:企业A创建RAM角色

假设企业A和企业B名下分别有一个阿里云账号A和阿里云账号B。

  • 企业A的阿里云账号ID为123456789098****,账号别名(企业别名)为company-a。

  • 企业B的阿里云账号ID为234567890987****,账号别名(企业别名)为company-b。

  1. 企业A使用阿里云账号A登录RAM控制台。

  2. 在左侧导航栏,选择身份管理 > 角色。

  3. 在角色页面,单击创建角色。

    image

  4. 在创建角色页面,配置相关信息。

    1. 在选择类型配置向导,选择选择可信实体类型为阿里云账号,然后单击下一步。

    2. 在配置角色配置向导,输入角色名称为sae-admin,输入备注,选择选择信任的云账号为其他云账号,并输入企业B的阿里云账号B。

      重要

      如果您仅允许指定的RAM用户扮演该RAM角色,而不是阿里云账号(主账号)下的所有RAM用户,您可以采取以下两种方式:

      • 修改RAM角色的信任策略。具体操作,请参见示例一:修改RAM角色的可信实体为阿里云账号。

      • 修改RAM用户的角色扮演权限策略。具体操作,请参见能否指定RAM用户具体可以扮演哪个RAM角色?。

  5. 配置完成后,单击完成。

    如果页面跳转至创建完成配置向导页面,表示成功创建角色。您可以在该角色的基本信息页面,查看包括RAM角色名称、创建时间和ARN等具体信息。

    • RAM角色名称:sae-admin。

    • ARN:acs:ram::123456789098****:role/sae-admin。

    • 信任策略:

      说明

      以下策略表示仅允许阿里云账号B下的RAM用户来扮演该RAM角色。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "RAM": [
                "acs:ram::234567890987****:root"
              ]
            }
          }
        ],
        "Version": "1"
      }

步骤二:企业A为RAM角色添加权限

  1. 企业A使用阿里云账号A登录RAM控制台。

  2. 在左侧导航栏,选择身份管理 > 角色。

  3. 在角色页面,单击目标RAM角色操作列的新增授权。

    image

    您也可以选中多个RAM角色,单击角色列表下方的新增授权,为RAM角色批量授权。

  4. 在新增授权面板,为RAM角色授权。

    1. 选择资源范围。

      • 账号级别:权限在当前阿里云账号内生效。

      • 资源组级别:权限在指定的资源组内生效。

        说明

        指定资源组授权生效的前提是该云服务及资源类型已支持资源组,详情请参见支持资源组的云服务。

    2. 选择授权主体。

      授权主体即需要添加权限的RAM角色。系统会自动选择当前的RAM角色。

    3. 选择权限策略。

      权限策略是一组访问权限的集合。支持批量选中多条权限策略。

      • 系统策略:由阿里云创建,策略的版本更新由阿里云维护,用户只能使用不能修改。更多信息,请参见支持RAM的云服务。

        说明

        系统会自动标识出高风险系统策略(例如:AdministratorAccess、AliyunRAMFullAccess等),授权时,尽量避免授予不必要的高风险权限策略。

      • 自定义策略:由用户管理,策略的版本更新由用户维护。用户可以自主创建、更新和删除自定义策略。更多信息,请参见创建自定义权限策略。

    4. 单击确认新增授权。

  5. 单击关闭。

步骤三:企业B创建RAM用户

  1. 企业B使用阿里云账号B登录RAM控制台。

  2. 在左侧导航栏,选择身份管理 > 用户。

  3. 在用户页面,单击创建用户。

    image

  4. 在创建用户页面的用户账号信息区域,设置用户基本信息。

    • 登录名称:可包含英文字母、数字、半角句号(.)、短划线(-)和下划线(_),最多64个字符。

    • 显示名称:最多包含128个字符或汉字。

    • 标签:单击edit,然后输入标签键和标签值。为RAM用户绑定标签,便于后续基于标签的用户管理。

    说明

    单击添加用户,可以批量创建多个RAM用户。

  5. 在访问方式区域,选择访问方式,然后设置对应参数。

    为了账号安全,建议您只选择以下访问方式中的一种,将人员用户和应用程序用户分离,避免混用。

    • 控制台访问

      如果RAM用户代表人员,建议启用控制台访问,使用用户名和登录密码访问阿里云。您需要设置以下参数:

      • 控制台登录密码:选择自动生成密码或者自定义密码。自定义登录密码时,密码必须满足密码复杂度规则。更多信息,请参见设置RAM用户密码强度。

      • 密码重置策略:选择RAM用户在下次登录时是否需要重置密码。

      • 多因素认证(MFA)策略:选择是否为当前RAM用户启用MFA。启用MFA后,还需要绑定MFA设备。更多信息,请参见为RAM用户绑定MFA设备。

    • 使用永久AccessKey访问

      如果RAM用户代表应用程序,您可以使用永久访问密钥(AccessKey)访问阿里云。启用后,系统会自动为RAM用户生成一个AccessKey ID和AccessKey Secret。更多信息,请参见创建AccessKey。

      重要
      • RAM用户的AccessKey Secret只在创建时显示,不支持查看,请妥善保管。

      • 访问密钥(AccessKey)是一种长期有效的程序访问凭证。AccessKey泄露会威胁该账号下所有资源的安全。建议优先采用STS Token临时凭证方案,降低凭证泄露的风险。更多信息,请参见使用访问凭据访问阿里云OpenAPI最佳实践。

  6. 单击确定。

步骤四:企业B为RAM用户添加权限

  1. 企业B使用阿里云账号B登录RAM控制台。

  2. 在左侧导航栏,选择身份管理 > 用户。

  3. 在用户页面,单击目标RAM用户操作列的添加权限。

    image

    您也可以选中多个RAM用户,单击用户列表下方的添加权限,为RAM用户批量授权。

  4. 在新增权限面板的权限策略区域,在搜索框输入AliyunSTSAssumeRoleAccess ,选中该权限策略将其添加至右侧的已选择权限策略列表中,然后单击确认新增授权。

  5. 单击关闭。

步骤五:跨云账号访问资源

阿里云临时安全令牌STS(Security Token Service)是阿里云提供的一种临时访问权限管理服务。通过STS服务,您所授权的身份主体(RAM用户或RAM角色)可以获取一个自定义时效和访问权限的临时访问令牌。STS令牌持有者可以通过以下方式访问阿里云资源:

方式一:通过控制台访问资源

企业B的RAM用户可按照以下步骤登录控制台,访问企业A的SAE资源。

  1. 使用阿里云账号B的RAM用户登录RAM控制台。

    更多信息,请参见RAM用户登录阿里云控制台。

  2. 在阿里云控制台页面,将鼠标悬停至右上角头像,单击切换身份。

  3. 在角色切换页面,输入企业A的企业别名和角色名,然后单击提交。

    成功登录后,企业B的RAM用户就可以操作企业A的Serverless应用引擎资源。

方式二:通过SDK访问资源

  1. 通过Java SDK示例代码获取访问凭证。

    更多信息,请参见Java示例和AssumeRole。

    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.IAcsClient;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.exceptions.ServerException;
    import com.aliyuncs.profile.DefaultProfile;
    import com.google.gson.Gson;
    import java.util.*;
    import com.aliyuncs.sts.model.v20150401.*;
    
    public class AssumeRole {
    
        public static void main(String[] args) {
            //构建一个阿里云客户端,用于发起请求。
            //请确保代码运行环境设置了环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
            DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            IAcsClient client = new DefaultAcsClient(profile);
    
            //构造请求,设置参数。关于参数含义和设置方法,请参见API参考。
            AssumeRoleRequest request = new AssumeRoleRequest();
            request.setRegionId("cn-hangzhou");
            request.setRoleArn("<RoleArn>");
            request.setRoleSessionName("<RoleSessionName>");
            
            //发起请求,并得到响应。
            try {
                AssumeRoleResponse response = client.getAcsResponse(request);
                System.out.println(new Gson().toJson(response));
            } catch (ServerException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                System.out.println("ErrCode:" + e.getErrCode());
                System.out.println("ErrMsg:" + e.getErrMsg());
                System.out.println("RequestId:" + e.getRequestId());
            }
    
        }
    }            
    说明

    SAE的API支持HTTP调用、SDK调用和OpenAPI开发者门户调用。 更多信息,请参见API概览。

    预期输出。

    {
      "RequestId": "964E0EC5-575B-4FF5-8FD0-D4BD8025****",
      "AssumedRoleUser": {
        "Arn": "acs:ram::*************",
        "AssumedRoleId": "*************"
      },
      "Credentials": {
        "SecurityToken": "*************",
        "AccessKeyId": "STS.*************",
        "AccessKeySecret": "*************",
        "Expiration": "2021-05-28T11:23:19Z"
      }
    }
  2. 依据所返回的访问密钥等信息,在阿里云账号B的代码中,生成新的Client,使其RAM用户有权限查看阿里云账号A下SAE华东1(杭州)地域的所有命名空间服务。

    public class CreateNamespace {
        public static void main(String[] args) {
            DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            IAcsClient client = new DefaultAcsClient(profile);
    
            CommonRequest request = new CommonRequest();
            request.setMethod(MethodType.POST);
            request.setDomain("sae.cn-hangzhou.aliyuncs.com");
            request.setVersion("2019-05-06");
            request.setUriPattern("/pop/v1/paas/namespace");
    
            request.putHeadParameter("Content-Type", "application/json");
            String requestBody = "" + "{}";
            request.setHttpContent(requestBody.getBytes(), "utf-8", FormatType.JSON);
            try {
                CommonResponse response = client.getCommonResponse(request);
                System.out.println(response.getData());
            } catch (ServerException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                e.printStackTrace();
            }
        }
    }

撤销授权

若企业A与企业B的合作终止,企业A只需移除为阿里云账号B创建的RAM角色的权限并删除该角色,那么阿里云账号B下的所有RAM用户将失去以RAM角色的身份访问阿里云账号A资源的能力。

说明

在删除RAM角色前,需要先为RAM角色移除授权。具体操作,请参见为RAM角色移除权限。

  1. 企业A使用阿里云账号A登录RAM控制台。

  2. 在左侧导航栏,选择身份管理 > 角色。

  3. 在角色页面,单击目标RAM角色操作列的删除角色。

  4. 在删除角色对话框,输入RAM角色名称,然后单击删除角色。

    如果RAM角色被授予了权限策略,删除角色时,会同时解除授权。

    对于删除失败的任务,您可以在角色列表的右上方,单击角色删除任务,查看详情。

相关文章

权限策略和示例 2025-04-17 10:59

Serverless 应用引擎 SAE(Serverless App Engine)的权限管理通过阿里云的访问控制RAM(Resource Access Management)实现,避免多用户共享阿里云账号密码或访问密钥(AccessKey ID和AccessKey Secret),从而降低安全风险

SAE权限助手 2025-04-17 10:59

Serverless 应用引擎 SAE(Serverless App Engine)提供权限助手功能,简化SAE相关的RAM权限策略配置。本文介绍如何通过SAE权限助手快速创建权限语句,并在RAM控制台完成最终的权限策略配置。

为RAM用户授权 2025-04-17 10:59

借助访问控制RAM的RAM用户,您可以实现阿里云账号和RAM用户权限分割,按需为RAM用户授予最小权限,避免暴露阿里云账号密钥,从而降低企业的信息安全风险。本文介绍如何为阿里云账号创建RAM用户并按需为其授权。 应用场景

为RAM角色授权 2025-04-17 10:59

您可以为可信实体为阿里云账号、阿里云服务或身份提供商的RAM角色授权。本文介绍如何创建可信实体为阿里云账号的RAM角色,来实现跨账号授权访问Serverless 应用引擎 SAE(Serverless App Engine)的资源。

联系人管理 2025-04-17 10:59

SAE允许您为指定联系人设置权限规则,并配置通知发送等功能。当需要进行权限审批或触发报警时,SAE会通过邮件、钉钉机器人或企业微信机器人等方式向相关联系人发送通知。本文详细说明如何在SAE控制台中完成联系人的创建、查看、编辑及删除操作。

操作审批 2025-04-17 10:59

当企业内部的阿里云账号(主账号)有多个子账号(RAM用户)时,为了降低运维风险,可以设置权限审批规则,使得RAM用户对SAE平台上的重要功能的操作需要经过主账号或

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号