Policy Engine
Policy Engine 是集中管理安全策略的引擎,定义哪些操作允许、哪些拒绝、哪些需要审批。它让安全规则不散落在代码各处。
#type / concept
#status / evergreen
#tech / ai
#tech / security
[!info] related notes
- 所属 MOC: AI Agent Application MOC, Security MOC
- 相关: Permission Boundary, Guardrails
Policy Engine
一句话定义
Policy Engine 是集中管理安全策略的引擎。它定义了”谁能对什么资源执行什么操作”的规则,让安全策略不散落在代码各处。
核心原理
策略定义
# policy.yaml
policies:
- name: customer_service_agent
allowed_tools:
- search_knowledge
- query_order
- create_ticket
denied_tools:
- delete_record
- execute_code
max_steps: 5
data_scope: own_tenant
- name: admin_agent
allowed_tools: ["*"]
max_steps: 20
requires_approval:
- delete_record
- update_config
Python 实现
class PolicyEngine:
def __init__(self, policies: dict):
self.policies = policies
def check(self, agent_role: str, action: str, resource: str) -> str:
policy = self.policies.get(agent_role)
if not policy:
return "deny"
if resource in policy.get("denied_tools", []):
return "deny"
if resource in policy.get("requires_approval", []):
return "require_approval"
if "*" in policy.get("allowed_tools", []) or resource in policy.get("allowed_tools", []):
return "allow"
return "deny"
常见坑
- 策略散落: 每个模块各自定义安全规则
- 不做集中管理: 改策略要改多处代码
- 策略不测试: 安全规则没有测试覆盖