云函数 SCF 策略语法

创建自定义策略流程可参考 CAM 的 创建自定义策略。SCF 的策略语法遵循 CAM 的 语法结构 和 资源描述方式,策略语法以 JSON 格式为基础,所有资源均可采用下述的六段式描述方式,示例如下。

相关产品
云函数 产品页,含版本规格、价格与购买入口。

一、策略语法

qcs::scf:region:uin/uin—id:namespace/namespace-name/function/function-name

注意:在配置策略语法时,还需要配合使用 monitor 相关的接口以获得账号下的监控信息,使用方法请参考 策略示例。

二、策略示例

{ "version":"2.0", "statement": [ { "effect":"allow", "action": [ "scf:ListFunctions", "scf:GetAccountSettings", "monitor:*" ], "resource":["*"] }, { "effect": "allow", "action": [ "scf:DeleteFunction", "scf:CreateFunction", "scf:InvokeFunction", "scf:UpdateFunction", "scf:GetFunctionLogs", "scf:SetTrigger", "scf:DeleteTrigger", "scf:GetFunction", "scf:ListVersion" ], "resource": [ "qcs::scf:ap-guangzhou:uin/******:namespace/default/function/Test1", "qcs::scf:ap-guangzhou:uin/******:namespace/default/function/Test2" ] } ] }

·操作(action)为需要关联资源的操作时,resource 定义为*,表示关联所有资源。

·操作(action)为不需要关联资源的操作时,resource 都需要定义为*。

·该示例可以实现子账号拥有主账号下某些函数的操作权限,resource 中的资源描述为主账号下的某个函数。

三、指定条件

访问策略语言可使你在授予权限时指定条件。例如,限制用户访问来源或限制授权时间等。下面列出了目前支持的条件操作符列表、通用的条件键和示例等信息。

条件操作符 含义 条件名 示例
ip_equal IP 等于 qcs:ip {"ip_equal":{"qcs:ip ":"10.121.2.0/24"}}
ip_not_equal IP 不等于 qcs:ip {"ip_not_equal":{"qcs:ip ":["10.121.1.0/24", "10.121.2.0/24"]}}
date_not_equal 时间不等于 qcs:current_time {"date_not_equal":{"qcs:current_time":"2016-06-01T00:01:00Z"}}
date_greater_than 时间大于 qcs:current_time {"date_greater_than":{"qcs:current_time":"2016-06-01T00:01:00Z"}}
date_greater_than_equal 时间大于等于 qcs:current_time {"date_greater_than_equal":{"qcs:current_time":"2016-06-01T00:01:00Z"}}
date_less_than 时间小于 qcs:current_time {"date_less_than":{"qcs:current_time":"2016-06-01T 00:01:00Z"}}
date_less_than_equal 时间小于等于 qcs:current_time {"date_less_than":{"qcs:current_time":"2016-06-01T 00:01:00Z"}}
date_less_than_equal 时间小于等于 qcs:current_time {"date_less_than_equal":{"qcs:current_time":"2016-06-01T00:01:00Z"}}

·限制来访 IP 为 10.121.2.0/24 网段内。如下所示:

"ip_equal":{"qcs:ip ":"10.121.2.0/24"}

·限制来访 IP 为 101.226.\\*\\*\\*.185 和 101.226.\\*\\*\\*.186。如下所示:

"ip_equal": { "qcs:ip": [ "101.226.***.185", "101.226.***.186" ]}

四、用户策略更新说明

SCF 于2020年4月完善了预设策略权限,针对预设策略 QcloudSCFFullAccess 和 QcloudSCFReadOnlyAccess 完成修改,针对配置角色 SCF_QcsRole 添加了 QcloudAccessForScfRole 策略。详情如下:

五、预设策略 QcloudSCFFullAccess

当前权限如下:

{ "version": "2.0", "statement": [ { "action": [ "scf:*", "tag:*", "cam:DescribeRoleList", "cam:GetRole", "cam:ListAttachedRolePolicies", "apigw:DescribeServicesStatus", "apigw:DescribeService", "apigw:DescribeApisStatus", "cmqtopic:ListTopicDetail", "cmqqueue:ListQueueDetail", "cmqtopic:GetSubscriptionAttributes", "cmqtopic:GetTopicAttributes", "cos:GetService", "cos:HeadBucket", "cos:HeadObject", "vpc:DescribeVpcEx", "vpc:DescribeSubnetEx", "cls:getTopic", "cls:getLogset", "cls:listLogset", "cls:listTopic", "ckafka:List*", "ckafka:Describe*", "ckafka:ListInstance", "monitor:GetMonitorData", "monitor:DescribeBasicAlarmList", "monitor:DescribeBaseMetrics", "monitor:DescribeSortObjectList", "monitor:DescribePolicyConditionList", "cdb:DescribeDBInstances" ], "resource": "*", "effect": "allow" } ]}

六、预设策略 QcloudSCFReadOnlyAccess

当前权限如下:

{ "version": "2.0", "statement": [ { "action": [ "scf:Get*", "scf:List*", "ckafka:List*", "ckafka:Describe*", "monitor:GetMonitorData", "monitor:DescribeBasicAlarmList", "monitor:DescribeBaseMetrics", "monitor:DescribeSortObjectList", "cam:GetRole", "cam:ListAttachedRolePolicies", "vpc:DescribeVpcEx", "vpc:DescribeSubnetEx", "cls:getLogset", "cls:getTopic", "cls:listTopic", "apigw:DescribeService", "cmqtopic:GetTopicAttributes", "cmqtopic:GetSubscriptionAttributes", "cos:HeadBucket", "cos:GetService", "cos:GetObject" ], "resource": "*", "effect": "allow" } ]}

七、预设策略 QcloudAccessForScfRole

当前权限如下:

{ "version": "2.0", "statement": [ { "action": [ "cos:GetBucket*", "cos:HeadBucket", "cos:PutBucket*", "apigw:*", "cls:*", "cos:List*", "cos:Get*", "cos:Head*", "cos:OptionsObject", "cmqqueue:*", "cmqtopic:*", "ckafka:List*", "ckafka:Describe*", "ckafka:AddRoute", "ckafka:CreateRoute" ], "resource": "*", "effect": "allow" } ]}

预设策略 QcloudAccessForScfRole 具备以下功能:

·配置 COS 对象存储触发器时,向 Bucket 配置中写入触发配置信息。

·读取 COS 对象存储 Bucket 中的触发器配置信息。

·在使用 COS 对象存储更新代码时,从 Bucket 完成代码 zip 包的读取操作。

·配置 API 网关触发器时,完成 API 网关的服务、API 创建以及服务发布等操作。

·配置 Ckafka 触发器时,完成创建消费者操作。

赞 (0)
上一篇 4天前
下一篇 4天前