本文介绍了执行角色的相关内容,包括创建权限策略和创建执行角色。
背景信息
使用云工作流构建应用时,您需要创建执行角色并授予相关权限。云工作流在执行流程时将扮演该角色,代表您访问云服务,例如执行函数、发送消息和执行流程。
云工作流控制台让您可以快速创建执行角色并赋予系统权限。如果您想更细粒度的控制访问权限,例如只允许流程访问函数计算的某个或者某些函数,可以参考下面的介绍。
云工作流使用访问控制RAM(Resource Access Management)基于角色的权限管理机制。授权的基本原理如下:策略表示访问某个服务的能力,为角色绑定指定策略,那么角色就具有了访问该服务的能力。当有第三方需要访问这个服务的时候,只需要扮演具有访问能力的角色即可。从而避免使用长期密钥,让系统变得更加安全。
创建权限策略
-
使用RAM管理员登录RAM控制台。
在左侧导航栏,选择。
在权限策略页面,单击创建权限策略。
在创建权限策略页面,单击脚本编辑页签。
页面显示 JSON 编辑器,默认策略模板包含
Version(值为"1")和Statement数组,其中每条语句包括Effect(默认"Allow")、Action(待填写)、Resource(待填写)和Condition字段。请根据实际需求在Action和Resource中填入对应的操作和资源。输入权限策略内容,然后单击确定。
关于权限策略语法结构的详情,请参见权限策略语法和结构。下表提供一些常用权限示例。
说明
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/*
检查并优化权限策略内容。
基础权限策略优化
系统会对您添加的权限策略语句自动进行基础优化。基础权限策略优化会完成以下任务:
删除不必要的条件。
删除不必要的数组。
可选:高级权限策略优化
您可以将鼠标悬浮在可选:高级策略优化上,单击执行,对权限策略内容进行高级优化。高级权限策略优化功能会完成以下任务:
拆分不兼容操作的资源或条件。
收缩资源到更小范围。
去重或合并语句。
输入权限策略名称和备注,然后单击确定。
创建执行角色
-
使用RAM管理员登录RAM控制台。
-
在左侧导航栏,选择。
-
在角色页面,单击创建角色。
-
在创建角色页面,选择信任主体类型为云服务,然后选择具体的阿里云服务,最后单击确定。
说明信任主体名称中可以选择的阿里云服务请以控制台界面显示为准。
-
在创建角色对话框,输入角色名称,然后单击确定。
添加上面创建的权限策略到角色FnFExecutionRole。
具体操作,请参见管理RAM角色的权限。
单击已创建的角色,在基本信息区域复制角色ARN,以便在创建流程或者更新流程时使用。