本文介绍了执行角色的相关内容,包括创建权限策略和创建执行角色。

背景信息

使用Serverless工作流构建应用时,您需要创建执行角色并授予相关权限。Serverless工作流在执行流程时将扮演该角色,代表您访问云服务,例如执行函数、发送消息和执行流程。

Serverless工作流控制台让您可以快速创建执行角色并赋予系统权限。如果您想更细粒度的控制访问权限,例如只允许流程访问某个或者某些函数计算Function,可以参考下面的介绍。

Serverless工作流使用访问控制RAM(Resource Access Management)基于角色的权限管理机制。授权的基本思想如下:策略表示访问某个服务的能力,为角色绑定指定策略,那么角色就具有了访问该服务的能力。当有第三方需要访问这个服务的时候,只需要扮演具有访问能力的角色即可。从而避免使用长期密钥,让系统变得更加安全。

创建权限策略

  1. 登录RAM访问控制服务控制台
  2. 在左侧导航栏的权限管理菜单下,单击权限策略管理
  3. 单击创建权限策略
  4. 输入策略名称和备注,例如FnFExecutionRolePolicy
  5. 配置模式选择脚本配置,请参见权限策略语法和结构编辑策略内容。下表提供一些常用权限示例。
说明 Effect Action Resource
允许访问Test1服务下的Function函数 Allow fc:InvokeFunction acs:fc:::services/Test1/functions/Func1
允许访问Test2服务下的所有函数 Allow fc:InvokeFunction acs:fc:::services/Test2/functions/*
允许访问以Public开始的服务下的所有函数 Allow fc:InvokeFunction acs:fc:::services/Public*/functions/*
允许向Test1队列发送消息 Allow mns:SendMessage acs:mns:*:*:/queues/Test1/messages
允许执行流程Test1 Allow fnf:StartExecution acs:fnf:::flows/Test1/executions/*

创建执行角色

  1. 登录RAM访问控制服务控制台
  2. 选择RAM角色管理 > 新建RAM角色,配置以下参数:
    • 当前可信实体类型选择阿里云服务
    • 选择受信服务为函数工作流
    • 设置RAM角色为FnFExecutionRole
  3. 添加FnFExecutionRolePolicy权限策略到上面创建好的角色FnFExecutionRole上。
  4. 复制创建好的角色ARN,以便在创建流程或者更新流程时使用。