RAM跨云账号授权

更新时间:
复制为 MD 格式

借助访问控制RAMRAM角色,您可以跨云账号授权,使某个企业访问另一个企业的云消息队列 Kafka 版

背景信息

企业A开通了云消息队列 Kafka 版,该企业需要企业B代为操作云消息队列 Kafka 版的资源,例如实例、Topic、Group。企业A的需求如下:

  • 企业A希望能专注于业务系统,仅作为云消息队列 Kafka 版所有者。企业A希望可以授权企业B来操作部分业务,例如:云消息队列 Kafka 版的运维、监控以及管理等。

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

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

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

使用企业A的阿里云账号登录RAM控制台为企业B的阿里云账号创建RAM角色。

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

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

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

    image

  4. 创建角色页面,选择信任主体类型云账号,然后设置具体的阿里云账号,最后单击确定

    image

    • 当前云账号:当您允许当前阿里云账号下的所有RAM用户和RAM角色扮演当前正在创建的RAM角色时,您可以选择当前云账号

    • 其他云账号:当您允许其他阿里云账号下的所有RAM用户和RAM角色扮演当前正在创建的RAM角色时,您可以选择其他云账号,然后输入其他阿里云账号(主账号)ID。该项主要针对跨阿里云账号的资源授权访问场景,相关教程,请参见跨阿里云账号访问资源您可以在安全设置页面查看阿里云账号(主账号)ID。

  5. 角色名称文本框,输入RAM角色名称,在选择信任的云账号区域,选择其他云账号,输入企业B的阿里云账号的账号ID,然后单击完成

    说明
    • RAM角色名称允许英文字母、数字和短划线(-),长度不超过64个字符。

    • 账号ID可以在账号管理控制台的安全设置页面查看。

步骤二:企业ARAM角色添加权限

RAM角色添加需要授予给企业B的访问云消息队列 Kafka 版的权限。

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

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

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

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

    说明

    支持授予的访问云消息队列 Kafka 版的权限策略请参见RAM权限策略

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

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

操作步骤

控制台

  1. 使用阿里云账号(主账号)或拥有RAM管理员权限(AliyunRAMFullAccess)的RAM用户登录RAM控制台

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

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

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

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

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

    • 标签(选填):单击edit,然后输入标签键和标签值,便于后续基于标签的用户管理。

    说明

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

  5. 访问方式区域,根据用户类型进行配置:

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

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

    给员工使用(控制台访问

    勾选控制台访问

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

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

    • MFA 多因素认证:账号默认设置为强制所有用户登录时必须使用 MFA。如需修改,请参考管理RAM用户安全设置。RAM用户首次登录时需要绑定MFA设备,请参考RAM用户绑定MFA设备

    给程序使用(使用永久AccessKey访问

    勾选使用永久AccessKey访问

    启用后,系统会自动为RAM用户生成一个AccessKey IDAccessKey Secret

    重要

    RAM用户的AccessKey Secret只在创建时显示,不支持后续查看,请务必立即下载或复制保存AccessKey Secret。泄露AccessKey将严重威胁您账号下所有资源的安全。更多信息详见创建AccessKey

OpenAPI

创建控制台用户

  1. 调用GetDefaultDomain获取账号的默认域名,格式为<AccountAlias>.onaliyun.com

  2. 调用CreateUser创建RAM用户,其中必传的参数建议如下:

    1. UserPrincipalName:RAM 用户的登录名称。格式为<username>@<AccountAlias>.onaliyun.com,其中<username>为 RAM 用户名称,<AccountAlias>.onaliyun.com为默认域名。

    2. DisplayName:RAM用户的显示名称,可以与上面<username>不同。

  3. 调用CreateLoginProfile修改访问方式和MFA要求等,其中部分参数的建议如下:

    1. UserPrincipalName:上一步已创建的用户信息。

    2. Password:根据账号的密码强度要求配置。可以调用GetPasswordPolicy查询当前账号的RAM用户密码强度策略。

    3. MFABindRequired:建议设置强制要求RAM用户开启MFA,参数建议为true

    4. Status:是否开启控制台密码登录,保持默认值Active

创建程序用户

  1. 调用GetDefaultDomain获取账号的默认域名,格式为<AccountAlias>.onaliyun.com

  2. 调用CreateUser创建RAM用户,其中必传的参数建议如下:

    1. UserPrincipalName:RAM 用户的登录名称。格式为<username>@<AccountAlias>.onaliyun.com,其中<username>为 RAM 用户名称,<AccountAlias>.onaliyun.com为默认域名。

    2. DisplayName:RAM用户的显示名称,可以与上面<username>不同。

  3. 调用CreateAccessKey创建访问密钥AccessKey),仅需传入UserPrincipalName,即上一步已创建的用户信息即可完成AccessKey创建。

    重要

    调用CreateAccessKey接口的返回结果中会包含AccessKeyIdAccessKeySecretAccessKeySecret仅在本次返回中提供,无法后续查询,请务必立即保存。泄露AccessKey将严重威胁您账号下所有资源的安全。更多信息详见创建AccessKey

步骤四:企业BRAM用户添加权限

RAM用户添加AliyunSTSAssumeRoleAccess的权限。

  1. 登录RAM控制台

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

  3. 用户页面,找到已经创建好的RAM用户,单击操作列的新增授权

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

后续步骤

企业BRAM用户可以通过以下方式访问企业A云消息队列 Kafka 版

  • 控制台

    1. 在浏览器打开RAM用户登录入口

    2. RAM用户登录页面,输入RAM用户名称,单击下一步,输入RAM用户密码,然后单击登录

      说明

      RAM用户登录名称的格式为<$username>@<$AccountAlias><$username>@<$AccountAlias>.onaliyun.com<$AccountAlias>为账号别名,如果没有设置账号别名,则默认值为阿里云账号的ID。

    3. RAM用户的首页,将鼠标指针移到右上角头像,在浮层单击切换身份

    4. 角色切换页面,输入企业A的企业别名或默认域名,以及角色名,然后单击提交

      说明
      • 企业别名:使用企业A的阿里云账号在阿里云账号费用与成本页面,将鼠标指针移到右上角头像,在浮层查看。

      • 默认域名:使用企业A的阿里云账号在RAM控制台的设置页面,单击高级设置页签查看。

  • API

    1. 调用AssumeRole接口获取AccessKey ID、AccessKey SecretSecurityToken(临时安全令牌)。更多信息,请参见AssumeRole

    2. 在代码中使用获取的AccessKey ID、AccessKey SecretSecurityToken(临时安全令牌)调用API访问云消息队列 Kafka 版