---
title: "权限策略"
---

入站认证回答“你是谁”，权限策略回答“你能做什么”。VeADK 的权限策略基于 [AgentKit Runtime](https://console.volcengine.com/agentkit/region:agentkit+cn-beijing/runtime) 与 [Cedar](https://www.cedarpolicy.com/) 声明式授权语言，提供覆盖 User → Agent → Tool 全链路的授权方案。本页介绍如何在控制台配置策略，并在代码中启用校验。

## 前置准备

参考[使用文档](https://www.volcengine.com/docs/86848/2123355?lang=zh)，登录火山引擎智能体身份和权限管理平台，创建策略空间与权限策略：

1. 进入 **权限管控 > 权限策略**，创建策略空间（填写名称、描述，选择所属项目和标签）。
2. 在策略空间内新建权限策略，用 **可视化编辑** 或 **Cedar 语句编辑** 定义规则（例如：允许指定用户调用某智能体）。
3. 用 **模拟权限校验** 验证策略是否符合预期。

## 代码实现

在 [AgentKit Runtime](https://console.volcengine.com/agentkit/region:agentkit+cn-beijing/runtime) 控制台配置 `RUNTIME_IDENTITY_NAMESPACE` 环境变量，指定策略空间（默认为 `default`），使校验能匹配到对应的策略规则：

```bash
# 设置为你实际创建的策略空间名称
export RUNTIME_IDENTITY_NAMESPACE="my-namespace"
```

初始化 Agent 时设置 `enable_authz=True` 即可触发校验。调用时传入待校验的用户 ID：

```python title="agent.py"
import asyncio

from veadk import Agent, Runner

# 待校验权限的用户 ID
user_id = "9d154b10-285f-404c-ba67-0bf648ff9ce0"

agent = Agent(enable_authz=True)
runner = Runner(agent=agent)

# user_id 是权限校验的核心依据
response = asyncio.run(runner.run(messages="你好", user_id=user_id))
print(response)
```

运行结果：

- **授权通过**：用户在策略空间中拥有调用该智能体的权限，正常返回响应。
- **授权失败**：用户未被授权，抛出权限异常，例如 `Agent <agent role> is not authorized to run by user 9d154b10-285f-404c-ba67-0bf648ff9ce0.`
