使用RAM角色实现跨云账号的资源访问

如果您需要访问其他云账号的资源、或允许其他云账号访问您的资源,可以使用RAM角色实现,本文介绍创建和使用RAM角色的步骤。

方案概览

RAM角色是一种虚拟用户,可以被授予一组权限策略。与RAM用户不同,RAM角色没有永久身份凭证(登录密码或访问密钥),需要被一个可信实体扮演。扮演成功后,可信实体将获得RAM角色的临时身份凭证,即安全令牌(STS Token),使用该安全令牌就能以RAM角色身份访问被授权的资源。

假设企业A需要授权企业B的RAM用户访问其日志服务,则可以利用RAM角色来实现此目的。操作流程如下所示:

  1. 企业A创建RAM角色。

  2. 企业A为该RAM角色添加权限。

  3. 企业B创建RAM用户。

  4. 企业B为RAM用户添加AliyunSTSAssumeRoleAccess权限。

  5. 企业B的RAM用户获取RAM角色的临时安全令牌,从而实现对企业A的资源访问。

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

  1. 使用RAM管理员登录RAM控制台

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

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

  4. 创建角色页面,选择可信实体类型为阿里云账号,然后单击下一步

  5. 配置角色配置向导中,配置如下内容,然后单击完成

    参数

    说明

    角色名称

    输入角色名称,例如aliyunlogreadrole

    备注

    输入备注信息。

    选择信任的云账号

    选择其他云账号,输入企业B的阿里云账号(主账号)账号ID

  6. 单击关闭

步骤二:企业A为RAM角色授权

说明

成功创建RAM角色后,该RAM角色没有任何权限,您需要为该RAM角色授权。访问控制提供如下两种日志服务的系统策略,建议您遵循最小化原则,按需授予RAM角色必要的权限。

  • AliyunLogFullAccess:管理日志服务的权限。

  • AliyunLogReadOnlyAccess:只读访问日志服务的权限。

当系统策略无法满足您的需求,您可以通过创建自定义策略实现精细化权限管理。具体操作,请参见创建自定义权限策略。权限策略示例请参见RAM自定义授权场景日志服务RAM授权策略

  1. 使用RAM管理员登录RAM控制台

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

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

    image

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

  4. 新增授权面板,选中目标权限(如:AliyunLogReadOnlyAccess),单击确认新增授权

  5. 单击关闭

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

  1. 使用阿里云账号(主账号)或RAM管理员登录RAM控制台

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

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

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

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

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

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

    说明

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

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

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

    • 控制台访问

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

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

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

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

    • OpenAPI调用访问

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

      重要

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

  6. 单击确定

  7. 根据界面提示,完成安全验证。

步骤四:企业B为RAM用户授权

企业B必须为其RAM用户添加AliyunSTSAssumeRoleAccess权限,RAM用户才能扮演企业A创建的RAM角色。

  1. 使用RAM管理员登录RAM控制台

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

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

    image

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

  4. 新增授权页面,选中系统策略下的AliyunSTSAssumeRoleAccess,然后单击确认新增授权

  5. 单击关闭

步骤五:获取RAM角色的临时安全令牌

当企业B的RAM用户被授予AliyunSTSAssumeRoleAccess权限后,通过调用STS的AssumeRole接口获取临时安全令牌(SecurityToken),从而扮演您在步骤一:企业A创建RAM角色中创建的RAM角色,进而实现对企业A的资源访问。

说明
  • 关于AssumeRole API的调用方法,请参见Java示例

  • 使用STS SDK拿到AccessKey ID、AccessKey Secret、SecurityToken之后,通过使用日志服务的SDK访问日志服务,请参见SDK参考概述