配置委托权限
概述
大部分场景下,FunctionGraph都需要与其他云服务协同工作,通过创建云服务委托,让FunctionGraph以您的身份使用其他云服务,代替您进行一些资源运维工作。
应用场景
若您在FunctionGraph服务中使用如下场景,请先创建委托。创建委托时授予的权限类型请您根据实际业务需要进行调整,比如前期您在开发阶段授予Admin权限,后期在生产环境中建议您调整为细粒度最小使用权限,保证业务所需权限的同时,也降低权限过大的风险。具体对应授权项参见表1 常见授权项选择进行选择。
场景 |
Admin权限 |
细粒度最小使用权限 |
说明 |
---|---|---|---|
使用自定义镜像 |
SWR Admin |
暂不支持 |
SWR Admin:容器镜像服务(SWR)管理员,拥有该服务下的所有权限。 如何创建自定义镜像,请参见使用容器镜像部署函数。 |
挂载sfs turbo文件系统 |
SFS Administrator |
sfsturbo:shares:getShare(查询单个文件系统详细信息) |
SFS Administrator:弹性文件服务(SFS)管理员,拥有该服务下的所有权限。 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共享目录。 |
配置跨域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 Administrator |
obs:bucket:GetBucketLocation(获取桶区域位置) obs:bucket:ListAllMyBuckets(获取桶列表) obs:bucket:GetBucketNotification(获取桶的消息通知配置) obs:bucket:PutBucketNotification(设置桶的消息通知配置) |
OBS Administrator:对象存储服务管理员。 OBS细粒度最小使用权限:你拥有OBS服务下获取桶区域位置、获取桶列表、获取桶的消息通知配置、设置桶的消息通知配置的权限。 |
创建委托
如下示例表示:为FuntionGraph赋予Tenant Administrator权限,仅在授权区域生效。
按照如下参数设置委托,创建委托的具体步骤请参见如何创建委托。
配置函数委托
- 在服务控制台左侧导航栏,选择“计算 > 函数工作流”。进入函数工作流控制台后在左侧导航栏选择“函数 > 函数列表”。
- 选择待配置的函数,单击进入函数详情页。
- 选择“设置 > 权限”,单击“创建委托”,参见2~5,根据实际业务场景,配置函数委托。
表3 配置函数委托参数说明 参数
说明
函数配置委托
选择已创建的函数委托。
函数执行委托
勾选“为函数执行单独设置委托”,需配置此参数。
- 在创建函数过程中选择委托时,勾选“为函数执行单独设置委托”时,弹出“函数执行委托”,函数执行委托与函数配置委托可独立设置,这将减小不必要的性能损耗;不勾选时,函数执行委托和函数配置委托将使用同一委托,即使用同一个选择的委托或不使用任何委托。如图4所示。
- 函数配置委托,比如函数需要创建DIS触发器,则需要配置具有DIS访问权限的委托。当没有使用任何函数配置委托或者函数配置委托不存在时,不能创建DIS触发器。
- 函数执行委托配置后用户可以通过函数执行入口方法中的context参数获取具有委托中权限的token、AK、SK,用于访问其他云服务。
- 配置完成后单击“保存”。
修改委托
修改委托:如果需要修改委托的权限、持续时间、描述等,可以在IAM控制台修改委托。
- FunctionGraph相关委托修改后,约10分钟生效(如context.getToken更新)。
- 通过context获取的委托相关信息有效期24h,需要注意在失效前及时刷新。