跳到主要内容

云函数安全规则

概述

云函数安全规则是基于用户身份的权限管理系统,可以根据当前登录用户的身份进行函数调用权限控制。通过配置安全规则,您可以精确控制哪些用户可以调用特定的云函数,从而保障应用的安全性。

适用范围

云函数安全规则适用于以下调用场景:

  • 客户端 SDK 的 callFunction 操作
  • 小程序、Web 应用等 C 端用户调用

不适用场景:

  • 管理端 API 调用
  • HTTP 触发器调用
  • 定时触发器调用
  • 数据库触发器调用

配置方法

1. 进入控制台配置

  1. 登录 腾讯云开发控制台/云函数
  2. 选择对应的环境
  3. 进入「安全规则」页面
  4. 选择「云函数」标签页

2. 编写安全规则

函数安全规则配置在环境级别,环境内所有函数共享一个配置文件。配置采用 JSON 格式,具有以下层级结构:

配置层级说明:

  1. 顶级 key:表示函数名,特殊的 * 表示所有函数的通配规则
  2. 操作 key:表示操作类型,当前仅支持 invoke(调用)
  3. 规则值:可以是布尔值或安全规则表达式字符串

匹配优先级:

  • 优先匹配具体的函数名配置
  • 如果没有匹配到具体函数名,则使用 * 通配配置

配置示例

基础配置

{
"*": {
"invoke": "auth != null"
}
}

复合配置示例

{
"*": {
"invoke": "auth != null"
},
"function1": {
"invoke": false
}
}

配置要求:

  1. 安全规则顶级配置必须包含 key 为 * 的配置。
  2. 每个函数下的配置中必须包含 invoke 配置。

支持的规则类型

目前云函数安全规则支持以下三种配置:

规则值说明适用场景
true允许所有用户调用公开接口,如获取公告信息
false禁止所有用户调用已废弃的函数或内部函数
"auth != null"仅登录用户可调用需要用户身份验证的业务函数

配置要求

注意
  1. 安全规则顶级配置必须包含 key 为 * 的通配配置
  2. 每个函数配置中必须包含 invoke 操作配置
  3. 默认情况下,所有函数都要求用户登录后才能调用

常见问题

Q: 如何测试安全规则是否生效?

A: 可以通过客户端 SDK 调用函数进行测试:

  • 未登录状态调用需要登录的函数,应该返回权限错误
  • 登录后调用相同函数,应该正常执行

Q: 可以针对不同用户设置不同权限吗?

A: 当前版本仅支持基于登录状态的简单权限控制。如需更复杂的权限控制,建议在函数内部进行用户身份和权限验证。