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

背景信息

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

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

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

创建权限策略

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏,选择权限管理 > 权限策略
  3. 权限策略页面,单击创建权限策略
  4. 创建权限策略页面,单击脚本编辑页签。
  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/*
  6. 输入权限策略名称备注
  7. 检查并优化权限策略内容。
    • 基础权限策略优化

      系统会对您添加的权限策略语句自动进行基础优化。基础权限策略优化会完成以下任务:

      • 删除不必要的条件。
      • 删除不必要的数组。
    • 可选:高级权限策略优化

      您可以将鼠标悬浮在可选:高级策略优化上,单击执行,对权限策略内容进行高级优化。高级权限策略优化功能会完成以下任务:

      • 拆分不兼容操作的资源或条件。
      • 收缩资源到更小范围。
      • 去重或合并语句。
  8. 单击确定

创建执行角色

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏,选择身份管理 > 角色
  3. 角色页面,单击创建角色
  4. 创建角色面板的各页签,配置以下参数,然后单击完成
    • 当前可信实体类型选择阿里云服务
    • 设置角色类型为普通服务角色
    • 设置角色名称为FnFExecutionRole
    • 选择受信服务为函数工作流
  5. 添加上面创建的权限策略到角色FnFExecutionRole
    具体操作步骤,请参见为RAM角色授权
  6. 单击已创建的角色,在基本信息区域复制角色ARN,以便在创建流程或者更新流程时使用。