更新时间:2024-12-16 GMT+08:00
分享

配置函数的委托权限

概述

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

应用场景

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

表1 常见授权项选择

场景

Admin权限

细粒度最小使用权限

说明

使用自定义镜像

SWR Administrator

暂不支持

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

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

挂载SFS文件系统

SFS Administrator

暂不支持

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

如何挂载SFS文件系统,请参见添加SFS容量型文件系统

挂载sfs turbo文件系统

SFS Turbo ReadOnlyAccess

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

sfsturbo:shares:showFsDir(查询目录是否存在)

SFS Turbo ReadOnlyAccess:弹性文件服务SFS Turbo的只读权限。

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

sfsturbo:shares:showFsDir:您拥有SFS服务下查询目录是否存在的权限。

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

挂载ECS共享目录

ECS ReadOnlyAccess

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

ECS ReadOnlyAccess:弹性云服务器的只读访问权限。

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

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

配置预留实例策略

AOM ReadOnlyAccess

aom:metric:get(查询指标)

aom:metric:list(查询指标列表)

AOM ReadOnlyAccess:应用运维管理服务只读权限。

aom:metric:get:您拥有AOM服务下查询某个指标信息的权限。

aom:metric:list:您拥有AOM服务下查询指标列表详情的权限。

使用DIS触发器

DIS Administrator

暂不支持

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

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

使用DMS触发器

DMS ReadOnlyAccess

dms:instance:get(查看实例详情信息)

DMS ReadOnlyAccess:分布式消息服务只读权限。

dms:instance:get:您拥有DMS服务下查看实例详情信息的权限。

配置跨域VPC访问

VPC Administrator

vpc:ports:get(查询端口)

vpc:ports:create(创建端口)

vpc:vpcs:get(查询VPC)

vpc:subnets:get(查询子网)

vpc:vips:delete(虚IP解绑VM)

vpc:securityGroups:get(查询安全组列表或详情)

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

VPC细粒度最小使用权限:您拥有VPC服务下虚IP解绑VM、查询端口、创建端口、查询VPC、查询子网、查询安全组列表或详情的权限。

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

DNS域名解析

DNS ReadOnlyAccess

dns:recordset:get(查询租户Record Set资源)

dns:zone:get(查询租户zone)

dns:recordset:list(查询Record Set列表)

dns:zone:list(查询zone列表)

DNS ReadOnlyAccess:云解析服务只读权限,拥有该权限的用户仅能查看云解析服务资源。在函数配置调用DNS服务的接口解析内网域名时,则函数必须具备读取DNS资源权限的委托。

DNS细粒度最小使用权限:您拥有DNS服务下查询租户Record Set资源列表和查询租户zone列表的权限。

如何调用DNS服务的接口解析内网域名,请参见解析DNS内网域名

开启异步通知

目标服务为OBS时:

OBS Administrator

obs:bucket:HeadBucket(获取桶元数据)

obs:bucket:CreateBucket(创建桶)

obs:object:PutObject(PUT上传、POST上传、复制对象、追加写对象、初始化上传段任务、上传段、合并段)

OBS Administrator:对象存储服务管理员,拥有该服务下的所有权限。

OBS细粒度最小使用权限:您拥有OBS服务下获取桶元数据、创建桶、PUT上传、POST上传、复制对象、追加写对象、初始化上传段任务、上传段、合并段的权限。

如何配置异步通知请参见配置函数的异步调用策略

目标服务为SMN时:

SMN Administrator

smn:topic:publish(发布消息)

smn:topic:list(查询主题列表)

SMN Administrator:消息通知服务管理员,拥有该服务下的所有权限。

SMN细粒度最小使用权限:您拥有SMN服务下发布消息、查询主题列表的权限。

如何配置异步通知请参见配置函数的异步调用策略

目标服务为DIS时:

DIS Administrator

暂不支持

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

如何配置异步通知请参见配置函数的异步调用策略

创建委托

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

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

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

    权限名称

    使用描述/场景

    VPC Administrator

    虚拟私有云服务管理员。

  2. 单击“下一步”,选择权限的作用范围。
    图4 根据业务需要选择对应的权限

如果系统策略不满足授权要求,管理员可以通过“可视化视图”和“JSON视图”两种方式创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制,具体详情请参见创建自定义策略

配置函数委托

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

    参数

    说明

    函数配置委托

    选择已创建的函数委托。

    函数执行委托

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

    • 在创建函数过程中选择委托时,勾选“为函数执行单独设置委托”时,弹出“函数执行委托”,函数执行委托与函数配置委托可独立设置,这将减小不必要的性能损耗;不勾选时,函数执行委托和函数配置委托将使用同一委托,即使用同一个选择的委托或不使用任何委托。如图5所示。
      图5 设置委托
    • 函数配置委托,比如函数需要创建DIS触发器,则需要配置具有DIS访问权限的委托。当没有使用任何函数配置委托或者函数配置委托不存在时,不能创建DIS触发器。
    • 函数执行委托配置后用户可以通过函数执行入口方法中的context参数获取具有委托中权限的token、AK、SK,用于访问其他云服务。
  1. 配置完成后单击“保存”。

修改委托

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

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

相关文档