配置函数的委托权限
本章节介绍如何创建、配置和修改函数的委托权限。
操作场景
当函数工作流服务需与其他云服务协同工作时,应创建云服务委托,授权FunctionGraph使用这些云服务,并在FunctionGraph中为函数配置委托权限,以实现与其他云服务的协同工作。
对于常见函数应用场景的委托配置,可参考常见应用场景授权项配置。
默认委托
为方便创建和使用函数,当华为云账号下无函数默认委托时,函数工作流服务提供快速创建默认委托的功能。
默认委托包含了函数工作流服务需要访问的部分云资源权限,如表1所示,其中相关服务的细粒度最小使用权限介绍请参见表4。
权限名称 |
描述 |
---|---|
fgs_default_region_role |
函数默认委托使用的项目级服务策略,包含虚拟私有云服务(VPC)、弹性文件服务(SFS)等的最小权限集。 |
fgs_default_global_role |
函数默认委托使用的全局服务策略,包含统一身份认证服务(IAM)和对象存储服务(OBS)的最小权限集。 |
SWR Admin |
容器镜像服务(SWR)管理员,拥有该服务下的所有权限。 |
DIS User |
数据接入服务(DIS)通道使用权限。 |
创建默认委托的3种方式:

已创建默认委托后,以上3种方式不会再有创建默认委托的提示。
创建函数委托
以函数工作流服务获取VPC访问权限为例,当配置函数访问VPC内资源时,需为函数工作流服务创建委托并授予VPC访问权限,授权函数工作流服务使用VPC服务,实现云服务间的协同工作。
- 登录统一身份认证服务(IAM)控制台。
- 在左侧导航窗格中,选择“委托”页签,单击右上方的“创建委托”。
图4 创建委托
- 配置委托参数,完成参数配置后如图5所示,单击“完成”,系统弹出“创建成功”提示,单击“立即授权”。
- 委托名称:自定义填写,以“serverless-trust”为例。
- 委托类型:选择“云服务”。
- 云服务:选择“函数工作流 FunctionGraph”。
- 持续时间:以选择“永久”为例,实际使用时请根据业务需求填写。
- 描述(可选):填写描述信息。
- 进入“选择策略”页面,如图6所示,在右方搜索框中搜索需要添加的权限并勾选,此处以添加VPC Administrator权限为例。勾选完成后单击“下一步”。
表2 委托权限示例 权限名称
使用描述/场景
VPC Administrator
虚拟私有云服务管理员。
- 进入“设置最小授权范围”页面,如图7所示,建议根据业务部署的区域选择“指定区域项目资源”,并勾选所需区域。勾选完成后单击“确定”,进入“授权成功”界面。
配置函数委托
- 登录函数工作流控制台,在左侧导航栏选择“函数 > 函数列表”。
- 选择待配置委托的函数,单击进入函数详情页。
- 选择“设置 > 权限”,参考表3配置函数委托。配置完成后单击“保存”。
表3 配置函数委托参数说明 参数
说明
函数配置委托
在下拉框中选择已创建的函数委托。若无可用委托,可单击右侧“创建委托”进入统一身份认证服务IAM创建,具体操作步骤请参见创建函数委托。
函数执行委托
勾选“为函数执行单独设置委托”时,将弹出此参数进行配置,如图8所示,配置后可以通过函数执行入口方法中的context参数获取具有委托中权限的Token或者SecurityAccessKey、SecuritySecretKey、SecurityToken,用于访问其他云服务,代码示例可参考6.4-环境变量应用示例。
函数执行委托与函数配置委托可独立设置,以确保业务使用过程中委托权限的明确管理。
修改函数委托
如需修改委托的权限、持续时间和描述参数,如图9所示,需在统一身份认证服务(IAM)控制台中对相应的FunctionGraph委托进行修改。
FunctionGraph相关委托修改后,约10分钟生效(如context.getSecurityToken()更新)。通过context获取的委托相关信息有效期为24h,请注意在失效前及时刷新。
常见应用场景授权项
如需使用表4中的场景,即需与其他服务协同工作,应先创建函数委托,并配置函数委托。
创建委托时,授予的权限类型应根据实际业务需要进行调整,生产环境中建议调整为细粒度最小使用权限,以确保业务运行所需的同时,有效降低权限过大的潜在风险。
场景 |
策略名称 |
策略说明 |
细粒度最小使用权限 |
---|---|---|---|
使用自定义镜像 |
SWR Admin |
容器镜像服务(SWR)管理员,拥有该服务下的所有权限。 创建自定义镜像请参见使用容器镜像创建函数。 |
暂不支持 |
挂载SFS文件系统(仅存量用户支持) |
SFS Administrator |
弹性文件服务(SFS)管理员,拥有该服务下的所有权限。 挂载SFS文件系统请参见挂载SFS容量型文件系统(仅存量用户支持使用)。 |
暂不支持 |
挂载SFS Turbo文件系统 |
SFS Turbo ReadOnlyAccess |
弹性文件服务SFS Turbo的只读权限。 挂载挂载sfs turbo文件系统请参见挂载SFS Turbo文件系统。 |
|
挂载ECS共享目录 |
ECS ReadOnlyAccess |
弹性云服务器(ECS)的只读访问权限。 挂载ECS共享目录请参见挂载ECS共享目录。 |
ecs:cloudServers:get(查询云服务器详情) |
配置预留实例策略 |
AOM ReadOnlyAccess |
应用运维管理服务(AOM)的只读权限。 |
|
FunctionGraph ReadOnlyAccess |
函数工作流服务(FunctionGraph)的只读权限。 |
functiongraph:function:getConfig(查询函数配置) |
|
使用DIS触发器 |
DIS Administrator |
数据接入服务(DIS)管理员,拥有该服务下的所有权限。 创建DIS触发器请参见使用数据接入服务(DIS)触发器。 |
暂不支持 |
使用分布式消息触发器 |
DMS ReadOnlyAccess |
分布式消息服务(DMS)的只读权限。 |
dms:instance:get(查看实例详情) |
配置跨域VPC访问 |
VPC Administrator |
虚拟私有云VPC管理员, 拥有对VPC内所有资源执行任意操作的权限。 配置跨域VPC访问请参见函数访问VPC内资源。 |
|
DNS域名解析 |
DNS ReadOnlyAccess |
云解析服务(DNS)的只读权限,拥有该权限的用户仅能查看云解析服务资源。 调用DNS服务的接口解析内网域名请参见解析DNS内网域名。 |
|
开启异步通知 |
目标服务为OBS时: OBS Administrator |
对象存储服务(OBS)管理员,拥有该服务下的所有权限。 配置异步通知请参见配置函数的异步调用策略。 |
|
目标服务为SMN时: SMN Administrator |
消息通知服务(SMN)管理员,拥有该服务下的所有权限。 配置异步通知请参见配置函数的异步调用策略。 |
|
|
目标服务为DIS时: DIS Administrator |
数据接入服务(DIS)管理员,拥有该服务下的所有权限。 配置异步通知请参见配置函数的异步调用策略。 |
暂不支持 |
|
使用OBS桶 |
OBS Administrator |
对象存储服务(OBS)管理员,拥有该服务下的所有权限。 |
|