授权RAM用户编排工作流

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

背景信息

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

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

重要

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

操作步骤(RAM用户没有RAM读写权限)

  1. 创建RAM角色。这里可以创建一个名为AliyunLogicComposerDefaultRole的角色,如果您没有创建过角色,创建方法请参见 创建可信实体为阿里云服务的RAM角色

重要

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

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

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

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

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

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

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

这里Resource可以从角色中的ARN中获取。角色ARN是角色的全局资源描述符,用来指定具体角色。ARN遵循阿里云ARN的命名规范。例如,某个阿里云账号下的devops角色的ARN为:acs:ram::123456789012****:role/samplerole。创建角色后,单击角色名,可在基本信息页查看其ARN。

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

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

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

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

操作步骤(RAM用户有RAM读写权限)

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