更新时间:2023-11-21 GMT+08:00

配置委托权限

概述

大部分场景下,FunctionGraph都需要与其他云服务协同工作,通过创建云服务委托,让FunctionGraph以您的身份使用其他云服务,代替您进行一些资源运维工作。

应用场景

若您在FunctionGraph服务中使用如下场景,请先创建委托。创建委托时授予的权限类型请您根据实际业务需要进行调整,比如前期您在开发阶段授予Admin权限,后期在生产环境中建议您调整为细粒度最小使用权限,保证业务所需权限的同时,也降低权限过大的风险。具体对应授权项参见表1 常见授权项选择进行选择。

表1 常见授权项选择

场景

Admin权限

细粒度最小使用权限

说明

使用自定义镜像

SWR Admin

暂不支持

SWR Admin:容器镜像服务(SWR)管理员,拥有该服务下的所有权限。

如何创建自定义镜像,请参见使用容器镜像部署函数

挂载sfs turbo文件系统

SFS Administrator或Tenant administrator

sfsturbo:shares:getShare(查询单个文件系统详细信息)

SFS Administrator:弹性文件服务(SFS)管理员,拥有该服务下的所有权限。

Tenant administrator:全部云服务管理员(除IAM管理权限),拥有该权限的用户可以对企业拥有的所有云资源执行任意操作。

sfsturbo:shares:getShare:您拥有SFS服务下查询单个文件系统信息的权限。

如何挂载挂载sfs turbo文件系统,请参见添加sfs turbo文件系统

挂载ECS共享目录

Tenant Guest及VPC Administrator

ecs:cloudServers:get(查询云服务器详情)

Tenant Guest:全部云服务只读权限(除IAM权限)

VPC Administrator:网络管理员

ecs:cloudServers:get:您拥有ECS服务下查询云服务器信息的权限。

如何挂载ECS共享目录,请参见添加ECS共享目录

使用DIS触发器

DIS Administrator

暂不支持

数据接入服务(DIS)管理员,拥有该服务下的所有权限。

如何创建DIS触发器,请参见使用DIS触发器

配置跨域VPC访问

VPC Administrator

vpc:ports:delete(删除端口)

vpc:ports:get(查询端口)

vpc:ports:create(创建端口)

vpc:vpcs:get(查询VPC)

vpc:subnets:get(查询子网)

拥有VPC Administrator权限的用户可以对VPC内所有资源执行任意操作。在函数配置跨VPC访问时,则函数必须配置具备VPC管理权限的委托。

VPC细粒度最小使用权限:您拥有VPC服务下删除端口、查询端口、创建端口、查询VPC、查询子网的权限。

如何配置跨域VPC访问,请参见配置网络

创建OBS桶和OBS触发器

Tenant Administrator

obs:bucket:GetBucketLocation(获取桶区域位置)

obs:bucket:ListAllMyBuckets(获取桶列表)

obs:bucket:GetBucketNotification(获取桶的消息通知配置)

obs:bucket:PutBucketNotification(设置桶的消息通知配置)

Tenant administrator:全部云服务管理员(除IAM管理权限),拥有该权限的用户可以对企业拥有的所有云资源执行任意操作。

OBS细粒度最小使用权限:你拥有OBS服务下获取桶区域位置、获取桶列表、获取桶的消息通知配置、设置桶的消息通知配置的权限。

如何创建OBS触发器,请参见使用OBS触发器

创建委托

如下示例表示:为FuntionGraph赋予Tenant Administrator权限,仅在授权区域生效。

按照如下参数设置委托,创建委托的具体步骤请参见如何创建委托

  1. 登录统一身份认证服务(IAM)控制台。
  2. 在统一身份认证服务(IAM)的左侧导航窗格中,选择“委托”页签,单击右上方的“+创建委托”。
    图1 创建委托
  3. 开始配置委托。
    图2 填写基本信息
    • 委托名称:serverless-trust。
    • 委托类型:选择“云服务”。
    • 云服务:选择“函数工作流 FunctionGraph”。
    • 持续时间:选择“永久”。
    • 描述:填写描述信息。
  1. 单击“下一步”,进入委托选择页面,在右方搜索框中搜索需要添加的权限并勾选。此处以添加Tenant Administrator权限为例。
    图3 选择策略
    表2 委托权限示例

    权限名称

    使用描述/场景

    Tenant Administrator

    全部云服务管理员(除IAM管理权限),拥有该权限的用户可以对企业拥有的所有云资源执行任意操作。

  2. 单击“下一步”,选择权限的作用范围。

配置函数委托

  1. 在服务控制台左侧导航栏,选择“计算 > 函数工作流”。进入函数工作流控制台后在左侧导航栏选择“函数 > 函数列表”。
  2. 选择待配置的函数,单击进入函数详情页。
  3. 选择“设置 > 权限”,单击“创建委托”,参见2~5,根据实际业务场景,配置函数委托。
    表3 配置函数委托参数说明

    参数

    说明

    函数配置委托

    选择已创建的函数委托。

    函数执行委托

    勾选“为函数执行单独设置委托”,需配置此参数。

    • 在创建函数过程中选择委托时,勾选“为函数执行单独设置委托”时,弹出“函数执行委托”,函数执行委托与函数配置委托可独立设置,这将减小不必要的性能损耗;不勾选时,函数执行委托和函数配置委托将使用同一委托,即使用同一个选择的委托或不使用任何委托。如图4所示。
      图4 设置委托

    • 函数配置委托,比如函数需要创建DIS触发器,则需要配置具有DIS访问权限的委托。当没有使用任何函数配置委托或者函数配置委托不存在时,不能创建DIS触发器。
    • 函数执行委托配置后用户可以通过函数执行入口方法中的context参数获取具有委托中权限的token、AK、SK,用于访问其他云服务。
  1. 配置完成后单击“保存”。

修改委托

修改委托:如果需要修改委托的权限、持续时间、描述等,可以在IAM控制台修改委托。

  • FunctionGraph相关委托修改后,约10分钟生效(如context.getToken更新)。
  • 通过context获取的委托相关信息有效期24h,需要注意在失效前及时刷新。