配置委托权限
概述
大部分场景下,FunctionGraph都需要与其他云服务协同工作,通过创建云服务委托,让FunctionGraph以您的身份使用其他云服务,代替您进行一些资源运维工作。
应用场景
若您在FunctionGraph服务中使用如下场景,请先创建委托。创建委托时授予的权限类型请您根据实际业务需要进行调整,比如前期您在开发阶段授予Admin权限,后期在生产环境中建议您调整为细粒度最小使用权限,保证业务所需权限的同时,也降低权限过大的风险。具体对应授权项参见表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权限,仅在授权区域生效。
按照如下参数设置委托,创建委托的具体步骤请参见如何创建委托。
如果系统策略不满足授权要求,管理员可以通过“可视化视图”和“JSON视图”两种方式创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制,具体详情请参见创建自定义策略。
配置函数委托
- 在服务控制台左侧导航栏,选择“计算 > 函数工作流”。进入函数工作流控制台后在左侧导航栏选择“函数 > 函数列表”。
- 选择待配置的函数,单击进入函数详情页。
- 选择“设置 > 权限”,单击“创建委托”,参见2~5,根据实际业务场景,配置函数委托。
表3 配置函数委托参数说明 参数
说明
函数配置委托
选择已创建的函数委托。
函数执行委托
勾选“为函数执行单独设置委托”,需配置此参数。
- 在创建函数过程中选择委托时,勾选“为函数执行单独设置委托”时,弹出“函数执行委托”,函数执行委托与函数配置委托可独立设置,这将减小不必要的性能损耗;不勾选时,函数执行委托和函数配置委托将使用同一委托,即使用同一个选择的委托或不使用任何委托。如图5所示。
- 函数配置委托,比如函数需要创建DIS触发器,则需要配置具有DIS访问权限的委托。当没有使用任何函数配置委托或者函数配置委托不存在时,不能创建DIS触发器。
- 函数执行委托配置后用户可以通过函数执行入口方法中的context参数获取具有委托中权限的token、AK、SK,用于访问其他云服务。
- 配置完成后单击“保存”。
修改委托
修改委托:如果需要修改委托的权限、持续时间、描述等,可以在IAM控制台修改委托。
- FunctionGraph相关委托修改后,约10分钟生效(如context.getToken更新)。
- 通过context获取的委托相关信息有效期24h,需要注意在失效前及时刷新。