概述
安全规则基于灵活、强大的自定义语言,能够支持各种复杂度和精细化程度的权限控制。开发者可以根据应用的具体需求,设置特定的规则或一般性的规则。安全规则使用 JSON 结构,其中:
key 指代操作类型(如读取、写入等)value 为允许操作的条件,可以是:简单的
boolean 值(true/false)类似 JavaScript 的表达式字符串
表达式可以是单个逻辑表达式,或通过与/或逻辑组合的多个表达式,系统会根据表达式的计算结果决定是否允许操作。
由于安全规则是专门设计的语言,可能需要一定的学习时间。本指南将帮助您理解规则语言的基础知识,为后续编写更复杂的规则打下基础。
基本结构与语法
安全规则基于 JSON 结构,
value 为 boolean 或类似 JavaScript 的表达式:{"read": true,"write": <<condition>>,"create": true,"update": false,"delete": <<condition>>}
其中包含几个关键概念
操作类型: JSON
key 为支持权限控制的操作类型,create、delete、read、update为集合的增删查改操作,write 为简便的控制集合的写权限配置,若没有配置 create、delete、update 操作,则按照 write 配置处理。规则: JSON
value 为规则条件,可以为 boolean 值或逻辑表达式(组),当条件值为 true 时表示允许进行操作。默认情况下,遇到没有定义的操作类型,则拒绝该操作访问
安全规则基于 JSON 结构,
value 为 boolean 或类似 JavaScript 的表达式:{"read": true,"write": <<condition>>}
其中包含几个关键概念
操作类型: JSON
key 为支持权限控制的操作类型,read、write为云存储文件的读写操作。条件: JSON
value 为规则条件,可以为 boolean 值或逻辑表达式(组),当条件值为 true 时表示允许进行操作。默认情况下,遇到没有定义的操作类型,则拒绝该操作访问
云函数安全规则基于 JSON 结构,层级较特殊,顶级
key 表示函数名,value 为对应函数的权限配置,也为 JSON 格式,子配置 key 为操作名(invoke),value 为 boolean 或类似 JavaScript 的表达式:{"*": {"invoke": "auth!=null"},"function1": {"invoke": false},"function3": {"invoke": true}}
其中包含几个关键概念
函数名: JSON 顶级
key 为函数名,用于匹配获取某个具体函数的配置,特殊的允许配置 * 作为函数名的通配符,当没有匹配到具体函数时将获取 * 的配置,云函数安全规则中必须包含 * 配置。操作类型: 函数名下子配置 JSON 的
key 为操作类型,暂只支持 invoke,且必须为 invoke。条件: 子配置 JSON
value 为规则条件,可以为 boolean 值或逻辑表达式(组),当条件值为 true 时表示允许进行操作。表达式只支持使用 auth 是否为 null。