通过RAM授权子账号编排工作流

本文介绍了如何使用访问控制 RAM(Resource Access Management)在账号级别上实现对逻辑编排访问资源的授权。

背景信息

通过逻辑编排进行工作流编排的过程中,可能需要使用各种云产品的 OpenAPI 。对于主账号用户,用户可以通过授权 RAM 角色给逻辑编排调用相关的 OpenAPI。但是,逻辑编排服务有权访问这个 RAM 角色,并不代表执行逻辑编排的子账号,有权使用这个 RAM 角色。只有对子账号和目标 RAM 角色进行 PassRole 鉴权通过之后,该子账号才能通过逻辑编排服务,使用目标 RAM 角色。

主要的执行流程如下所示:

注意

用户仅需完成 1-5 步的操作,后续 6-9 步由被授权产品完成。

操作步骤(子账号没有 RAM 读写权限)

  1. 创建 RAM 角色。在 RAM 控制台的 RAM角色管理 页面可以查看您当前拥有的角色,这里可以创建一个名为 AliyunLogicComposerDefaultRole 的角色,如果您没有创建过角色,创建方法请参见 创建可信实体为阿里云服务的RAM角色

注意

这里创建的 角色名称 为 AliyunLogicComposerDefaultRole, 受信服务 请选择 逻辑编排

2. 为创建的角色添加权限。在 RAM 控制台的 权限策略管理 页面可以查看您当前的权限策略,这里需要创建自定义权限策略。如果您没有创建过自定义策略,创建方法请参见 创建自定义策略。这里具体的权限策略可参考以下示例,这里权限应该根据实际需要进行填写。

{    
  "Statement": [        
    {            
      "Action": [                
        "*:TagResources",
        "oss:PutBucketTags"
      ],
      "Effect": "Allow",   
      "Resource": "*"
    }    
  ],    
  "Version": "1"
}

接着给第一步创建的角色添加刚刚创建的权限。在 RAM 控制台的 RAM角色管理 中选择第一步创建的角色,授权方法请参见 为RAM用户授权。注意这里需要选择 自定义权限策略,选择之前创建的权限。

3. 使用主账号创建一个子账号,如果已经有子账号可以直接跳过。关于如何创建 RAM 用户,请参见 创建RAM用户。创建完成后,授予子账号 逻辑编排 的权限,请参见 使用RAM授权

4. 在第二步中我们为逻辑编排创建好了 AliyunLogicComposerDefaultRole 角色。接下来需要将该角色授予给第三步创建的子账号,首先创建一条新的 权限策略。方法与第二步创建权限方式一样,这里权限策略可参考如下示例:

{    
  "Statement": [       
   {            
     "Action": "ram:PassRole",            
     "Resource": "acs:ram::<parent uid>:role/aliyunlogiccomposerdefaultrole",            
     "Effect": "Allow",            
     "Condition": {                
        "StringEquals": {                    
          "acs:Service": "composer.aliyuncs.com"                
        }           
      }        
    }
  ],    
  "Version": "1"
}

注意

这里 Resource 可以从角色中的 ARN 中获取。

5. 给子用户授予这个权限策略,创建方法请参见 为RAM用户授权

6. 授权完毕,可以将 角色名 交给子账号用户,子账号此时可以前往 逻辑编排 进行工作流编辑,并在调用 OpenAPI 时给 逻辑编排 授权。

6.1 如果子账号没有 RAM 只读权限,子账号在授权时将该角色填入授权框内,点击“确定”完成授权操作。

6.2 如果子账号有 RAM 只读权限,子账号可以通过可视化的方式选择合适的角色。

操作步骤(子账号有 RAM 读写权限)

1. 根据授权面板提示,用户可以选择最合适的 权限策略 进行授权。