策略管理
tcb policy 命令(v3.5.7+)用于管理 CloudBase 环境的 OPA Rego 鉴权策略,包括查看策略列表、获取策略内容、设置用户策略。设置 Rego 策略后旧网关鉴权将直接失效,旧命令 tcb permission set/get 已废弃,请迁移至 tcb policy。
OPA 鉴权策略概念
关于 OPA 鉴权策略的工作机制、input 上下文结构、allow / deny 决策矩阵及实战案例,请参考 OPA 鉴权策略介绍;从旧版网关鉴权迁移到 OPA Rego 的步骤与策略翻译对照表,请参考 迁移指南。
tcb policy list
查看环境下的网关鉴权策略列表。
PG 环境和 OPA 引擎环境下返回空列表。
tcb policy list [options]
参数
| 参数 | 说明 | 默认值 |
|---|---|---|
-e, --env-id <envId> | 环境 ID | — |
--resource-type <type> | 按资源类型过滤,可选值:policy | 全部 |
--json | 输出 JSON | — |
输出字段
| 字段 | 说明 |
|---|---|
| 策略ID | PolicyId |
| 资源类型 | ResourceType |
| 资源ID | ResourceId |
| 资源标题 | ResourceTitle |
| 资源名称 | ResourceName |
| 效果 | Effect(允许/拒绝) |
| 可访问 | IsAccess |
| 角色标识 | RoleIdentity |
| 角色名称 | RoleName |
| 安全规则 | SafeRule |
示例
# 查看全部策略
tcb policy list -e my-env-id
# 按资源类型过滤
tcb policy list --resource-type policy -e my-env-id
# JSON 格式输出
tcb policy list --json -e my-env-id
tcb policy get
获取鉴权策略内容(Rego 格式)。默认获取用户配置的策略,加 --extension 获取平台为该环境单独配置的策略。
tcb policy get [options]
参数
| 参数 | 说明 |
|---|---|
-e, --env-id <envId> | 环境 ID |
--extension | 获取为该环境单独配置的策略(默认获取用户配 置的策略) |
--json | 输出 JSON |
示例
# 获取用户策略
tcb policy get -e my-env-id
# 获取平台扩展策略
tcb policy get --extension -e my-env-id
# JSON 格式输出
tcb policy get --json -e my-env-id
tcb policy set
设置用户 Rego 鉴权策略。保存后旧网关鉴权将直接失效。
tcb policy set [regoContent]
参数
| 参数 | 说明 |
|---|---|
<regoContent> | Rego 策略内容(必填) |
-e, --env-id <envId> | 环境 ID |
--json | 输出 JSON |
重要提示
设置 Rego 策略后,旧网关鉴权将直接失效,请确认策略内容正确后再执行。
Rego 策略格式
策略需要以 package authz.user 开头,使用 OPA Rego 语法:
package authz.user
default allow := false
# 示例:放通匿名用户访问云函数
allow if {
input.cloudbase.resource_type == "functions"
input.subject.auth_type == "anonymous"
}
关于 input 字段的详细说明,请参考 OPA 鉴权策略介绍。
示例
# 直接传入 Rego 内容
tcb policy set 'package authz.user
default allow := false
# 放通匿名用户访问云函数
allow if {
input.cloudbase.resource_type == "functions"
input.subject.auth_type == "anonymous"
}' -e my-env-id
# JSON 格式输出
tcb policy set 'package authz.user
default allow := false' --json -e my-env-id
相关命令
tcb permission— 旧网关模式资源权限管理(已废弃)tcb role— 管理角色与访问策略- 控制台配置:CloudBase 控制台