云函数安全规则
概述
云函数安全规则是基于用户身份的权限管理系统,可以根据当前登录用户的身份进行函数调用权限控制。通过配置安全规则,您可以精确控制哪些用户可以调用特定的云函数,从而保障应用的安全性。
适用范围
云函数安全规则适用于以下调用场景:
- 客户端 SDK 的
callFunction
操作 - 小程序、Web 应用等 C 端用户调用
不适用场景:
- 管理端 API 调用
- HTTP 触发器调用
- 定时触发器调用
- 数据库触发器调用
配置方法
1. 进入控制台配置
- 登录 腾讯云开发控制台/云函数
- 选择对应的环境
- 进入「安全规则」页面
- 选择「云函数」标签页
2. 编写安全规则
函数安全规则配置在环境级别,环境内所有函数共享一个配置文件。配置采用 JSON 格式,具有以下层级结构:
配置层级说明:
- 顶级 key:表示函数名,特殊的
*
表示所有函数的通配规则 - 操作 key:表示操作类型,当前仅支持
invoke
(调用) - 规则值:可以是布尔值或安全规则表达式字符串
匹配优先级:
- 优先匹配具体的函数名配置
- 如果没有匹配到具体函数名,则使用
*
通配配置
配置示例
基础配置
{
"*": {
"invoke": "auth != null"
}
}
复合配置示例
{
"*": {
"invoke": "auth != null"
},
"function1": {
"invoke": false
}
}
配置要求:
- 安全规则顶级配置必须包含 key 为
*
的配置。 - 每个函数下的配置中必须包含 invoke 配置。
支持的规则类型
目前云函数安全规则支持以下三种配置:
规则值 | 说明 | 适用场景 |
---|---|---|
true | 允许所有用户调用 | 公开接口,如获取公告信息 |
false | 禁止所有用户调用 | 已废弃的函数或内部函数 |
"auth != null" | 仅登录用户可调用 | 需要用户身份验证的业务函数 |
配置要求
注意
- 安全规则顶级配置必须包含 key 为
*
的通配配置 - 每个函数配置中必须包含
invoke
操作配置 - 默认情况下,所有函数都要求用户登录后才能调用
常见问题
Q: 如何测试安全规则是否生效?
A: 可以通过客户端 SDK 调用函数进行测试:
- 未登录状态调用需要登录的函数,应该返回权限错误
- 登录后调用相同函数,应该正常执行
Q: 可以针对不同用户设置不同权限吗?
A: 当前版本仅支持基于登录状态的简单权限控制。如需更复杂的权限控制,建议在函数内部进行用户身份和权限验证。