权限管理-九游平台
如果您需要对functiongraph的函数资源,给企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,您可以使用统一身份认证服务(identity and access management,简称iam)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全的控制公有云资源的访问。
通过iam,您可以在账号中给员工创建iam用户,并使用策略来控制员工对云资源的访问范围。例如您的员工中有负责软件开发的人员,您希望开发人员拥有functiongraph的使用权限,但是不希望开发人员拥有删除等高危操作的权限,那么您可以使用iam为开发人员创建用户,通过授予仅能使用functiongraph,但是不允许删除的权限策略,控制开发人员对functiongraph资源的使用范围。
如果账号已经能满足您的要求,不需要创建独立的iam用户进行权限管理,您可以跳过本章节,不影响您使用functiongraph服务的其它功能。
iam是提供权限管理的基础服务,无需付费即可使用,您只需要为您账号中的资源进行付费。关于iam的详细介绍,请参见《iam产品介绍》。
约束与限制
当添加了functiongraph fullaccess权限的子账号在创建触发器或使用其他功能时仍没有操作权限,是因为该服务或功能不支持细粒度鉴权,因此需要您单独添加对应服务或功能的admin权限。具体详情如下:
- cts、apig、dis当前不支持细粒度鉴权,需要添加对应admin权限。
- smn目前部分局点已支持细粒度鉴权,如您遇到无法细粒度鉴权情况,则需要添加对应admin权限。
- iotda是新增加的触发器,fullaccess中缺少对应权限。您在创建该触发器时会提示需要创建委托并添加相应权限,创建委托需要您先添加iam: agencies:list,iam:agencies:createagency 权限;
- tms、dns、bss、ces、eg、dms是新增加功能,fullaccess中缺少对应权限,需单独添加;
更多触发器及相关功能需要的权限,请参见表2所示。
企业项目授权后仍报权限不足的说明
iam项目(project)/企业项目(enterprise project):自定义策略的授权范围,包括iam项目与企业项目。授权范围如果同时支持iam项目和企业项目,表示此授权项对应的自定义策略,可以在iam和企业管理两个服务中给用户组授权并生效。如果仅支持iam项目,不支持企业项目,表示仅能在iam中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于iam项目与企业项目的区别,详情请参见:。
functiongraph当前仅函数资源接口支持企业项目方式授权,除函数资源外的部分接口仅支持iam项目方式授权,因此针对仅支持iam项目方式授权时需注意:
- 授权时选择“iam项目视图”。
图1 iam项目视图
- 选择授权范围时,建议根据最小化授权原则,选择“指定区域项目资源”,具体请根据实际业务情况选择授权范围。
functiongraph权限
默认情况下,新建的iam用户没有任何权限,您需要将其加入用户组,并给用户组授予策略,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于策略对云服务进行操作。
functiongraph资源通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在各区域(如华北-北京1)对应的项目(cn-north-1)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问functiongraph时,需要先切换至授权区域。
根据授权精细程度分为角色和策略。
- 角色:iam最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。
- 策略:iam最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。
如表1所示,包括了functiongraph的所有系统权限。
系统角色/策略名称 |
描述 |
类别 |
依赖关系 |
---|---|---|---|
functiongraph administrator |
函数工作流(functiongraph)管理员,具有管理函数、工作流、触发器以及调用函数的权限(该权限后期会下线,建议您不使用) |
系统角色 |
tenant guest |
functiongraph invoker |
函数工作流(functiongraph)调用者,具有查询函数、工作流、触发器以及调用函数的权限 |
系统角色 |
无 |
functiongraph fullaccess |
函数工作流服务所有权限 |
系统策略 |
无 |
functiongraph readonlyaccess |
函数工作流服务只读权限 |
系统策略 |
无 |
functiongraph commonoperations |
函数工作流(functiongraph)调用者,具有查询函数和触发器,以及调用函数的权限 |
系统策略 |
无 |
触发器/服务功能 |
权限 |
---|---|
apig |
apig:groups:get apig:groups:list apig:apis:create apig:apis:delete apig:apis:update apig:apis:publish apig:apis:list apig:apis:get apig:apis:offline apig:apps:list apig:envs:list |
apig专享版 |
apig:instances:get apig:instances:create apig:instances:update apig:instances:list apig:sharedinstance:operate |
cts |
cts:notification:create cts:notification:delete cts:notification:update cts:operation:list cts:tracker:list cts:trace:list |
dds |
dds:instance:get dds:instance:list |
dis |
dis:streams:list |
iotda |
iotda:routingrules:create iotda:routingrules:delete iotda:routingrules:querylist iotda:routingrules:query iotda:routingactions:create iotda:routingactions:delete iotda:routingactions:query iotda:routingactions:querylist iotda:subscriptions:querylist iotda:rules:modifystatus iotda:apps:querylist |
lts |
lts:groups:create lts:groups:get lts:groups:list lts:groups:put lts:logstreams:delete lts:logstreams:list lts:topics:get lts:subscriptions:create lts:subscriptions:delete lts:subscriptions:put lts:structconfig:create lts:structconfig:get |
obs |
obs:bucket:getbucketlocation obs:bucket:getbucketnotification obs:bucket:putbucketnotification obs:bucket:listbucket |
smn |
smn:topic:list smn:topic:update |
tms |
tms:predefinetags:list tms:tagvalues:list |
dns |
dns:recordset:create, dns:recordset:list, dns:recordset:update, dns:zone:create, dns:zone:delete, dns:zone:get, dns:zone:list |
bss |
bss:bill:view bss:renewal:view |
ces |
ces:alarms:get ces:alarms:list ces:alarms:create |
dms |
dms:instance:get |
eg |
eg:subscriptions:get eg:subscriptions:list eg:sources:list eg:sources:get eg:agency:create eg:subscriptions:create eg:subscriptions:delete eg:subscriptions:operate |
分布式消息服务 kafka版 |
dms:instance:list dms:instance:get dms:group:delete |
表3列出了functiongraph常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。
操作 |
functiongraph invoker |
functiongraph administrator |
functiongraph readonlyaccess |
functiongraph commonoperations |
functiongraph fullaccess |
---|---|---|---|---|---|
创建函数 |
× |
√ |
× |
× |
√ |
查询函数 |
√ |
√ |
√ |
√ |
√ |
修改函数 |
× |
√ |
× |
× |
√ |
删除函数 |
× |
√ |
× |
× |
√ |
调用函数 |
√ |
√ |
× |
√ |
√ |
查看函数日志 |
√ |
√ |
√ |
√ |
√ |
查看函数指标数据 |
√ |
√ |
√ |
√ |
√ |
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨