本文提供了关于将 Kong AI 网关与 Cato AI 安全集成,以监控和执行自定义代理策略的信息。
概览
Cato AI 安全允许您检查和执行流经现有 Kong AI 网关的 AI 流量的自定义代理策略。 无需分别配置每个应用,您可以将网关连接到 Cato 守卫,并对网关流量应用集中监控和策略执行。
本文介绍了如何配置 Kong AI 网关集成、映射自制代理,以及在交互浏览器中验证策略执行。
Prerequisites
开始前,请确保满足以下要求:
- 应用程序许可证的 AI 安全
- 管理员权限用于 AI 安全 > 守卫 和 AI 安全 > 守卫交互策略
- Kong 消费者使用 Kong 密钥认证插件进行认证
- 访问以创建并应用一个 decK
kong.yaml配置 - Kong Konnect 个人访问令牌和控制平面名称。 从 Kong Konnect 的个人访问令牌页面
- 部署 Kong AI 自定义护栏插件的权限
- 通过 Kong AI 网关发送流量的测试应用或客户端
- Kong 到 Cato AI 安全 API 端点的网络访问,用于您的 CMA 区域
配置工作流
集成包括以下阶段:
| 阶段 | 任务 | 结果 |
|---|---|---|
| 1 | 创建 AI 网关守卫 | Cato 创建守卫并为 Kong 提供 API 密钥 |
| 2 | 配置 Kong | Kong 将 AI 流量发至 Cato 进行检查 |
| 3 | 验证网关流量 | Cato 在交互浏览器中显示来自守卫的流量 |
| 4 | 映射自制代理 | Cato 将 Kong 消费者流量归因于自制代理 |
创建 AI 网关守卫
创建 AI 网关守卫以定义 Kong 流量的 Cato 执行点。
要创建守卫:
- 从导航菜单中选择AI安全 > 卫士。
- 点击新建。
- 在 守卫名称 中输入守卫的名称。 例如
Kong AI 网关。 - 在 类型 中选择 AI 网关。
- 在 AI 网关集成类型 中选择 Kong。
- 在 守卫的主机中,选择 Cato 云或适合您部署的前哨。
- 点击 保存。
保存守卫后,即可准备接收来自 Kong 的流量。 守卫不会执行规则,直到您配置策略规则。
配置 Kong AI 网关
使用守卫 API 密钥配置 Kong AI 自定义护栏插件。 该插件将 AI 流量发送至 Cato 进行检查,并在 Cato 返回阻止动作时拦截请求。
获取守卫连接详情
要获取守卫连接详情:
- 从导航菜单中选择AI安全 > 卫士。
- 选择 Kong AI 网关守卫。
- 选择 部署 选项卡。
- 复制其中一个 守卫 API 密钥。
每个守卫有两个 API 密钥。 轮换凭据时使用未使用的密钥,以避免中断流量检查。
配置 Kong AI 自定义护栏插件
插件使用以下设置:
| 字段 | 描述 |
|---|---|
guarding_mode |
指定 Cato 检查的流量:INPUT、OUTPUT 或 BOTH |
stop_on_error |
如果为 true,则未能访问 Cato 时 Kong 会阻止流量。 设为 false 以便在 Cato 不可用时允许流量通过 |
api_key |
认证 Kong 与 Cato 守卫对接 |
api_base |
用于您的 CMA 区域的 Cato AI 安全 API 基本 URL |
Cato 仅检查文本。 不检查图像内容。
要配置插件:
-
将以下配置保存为
kong.yaml。_format_version: "3.0" plugins: - name: ai-custom-guardrail config: guarding_mode: BOTH text_source: concatenate_all_content stop_on_error: true params: api_key: "${{ env \"DECK_CATO_API_KEY\" }}" api_base: "<CATO_AI_SECURITY_API_BASE_URL>" request: url: $(conf.params.api_base)/fw/v1/analyze headers: Authorization: Bearer $(conf.params.api_key) Content-Type: application/json x-cato-gateway-key-alias: "$(get_key_alias)" body: messages: "$(build_messages)" response: block: "$(check_response.block)" block_message: "$(check_response.block_message)" ssl_verify: true functions: get_key_alias: | return function() local c = kong.client.get_consumer() return (c and (c.username or c.id)) or "" end check_response: | return function(resp) local ra = resp and resp.required_action local block = type(ra) == "table" and ra.action_type == "block_action" local reason if block then reason = ra.detection_message or "Blocked by Cato Networks guardrail" else reason = "Allowed by Cato Networks guardrail" end return { block = block, block_message = reason, } end build_messages: | return function(content, source) if source == "OUTPUT" then return { { role = "assistant", content = content } } end local body = kong.request.get_body() if body and body.messages then return body.messages end return { { role = "user", content = content } } end -
将
<CATO_AI_SECURITY_API_BASE_URL>替换为您 CMA 区域的 Cato AI 安全 API 基本 URL。 -
将 Kong Konnect 和 Cato 凭据设置为环境变量:
export KONNECT_TOKEN=<your-kong-konnect-personal-access-token> export DECK_KONNECT_TOKEN=$KONNECT_TOKEN export DECK_KONNECT_CONTROL_PLANE_NAME=<your-control-plane-name> export DECK_KONNECT_CONTROL_PLANE_REGION=<region>.api.konghq.com export DECK_CATO_API_KEY=<guard-api-key> -
将配置应用到 Kong 控制平面:
deck gateway sync kong.yaml
安全存储守卫 API 密钥。 使用环境变量或密钥管理器,并且不要将密钥提交到源代码控制。
Kong 集成行为
- 在响应端,Kong 只向自定义护栏插件暴露助手回复文本。 工具调用不会实时暴露,因此 Cato 无法在执行前检查或拦截它们。 Cato 在后续请求中接收它们以便监控。
- 默认情况下集成失败关闭。 当 Cato 不可达时,Kong 会阻止流量。 将
stop_on_error设置为false,使用失效打开行为,当可用性比严格执行更重要时。 - Kong 不支持使用自定义护栏插件检查服务器发送事件 (SSE)。 当 LLM 响应流时,Cato 仅能检查用户消息和工具响应。
- 集成支持 OpenAI Chat Completions API 格式。
在 Cato 中验证网关流量
使用交互浏览器确认 Kong 流量是否到达 Cato。
要验证网关流量:
- 通过 Kong AI 网关从应用程序发送测试提示。
- 从导航菜单中选择 AI 安全 > 交互浏览器。
- 从 守卫 列表中,按您的 Kong AI 网关守卫进行筛选。
- 确认测试会话出现在表格中。
在您映射自制代理之前,自制代理 列显示流量的破折号 (-)。 这是预期的。
将自制代理映射至守卫
将每个自制代理映射到 Kong 消费者名称中它认证时使用的。 Cato 通过这些映射将 Kong 流量归因于正确的自制代理。
要映射自制代理:
- 在 Kong 中识别自制代理的消费者用户名。
- 从导航菜单中选择AI安全 > 卫士。
- 选择 Kong AI 网关守卫。
- 选择 配置 选项卡。
- 在 映射的自制代理 下,从 选择一个自制代理进行映射 列表中选择一个代理。
- 在 Kong 消费者名称 中,输入步骤1中的消费者用户名。
- 点击 保存。
该映射显示在 映射的自制代理 表中。 要删除它,请点击该行中的删除图标。
验证代理归因
确认 Cato 将流量归因于映射的自制代理。
要验证代理归因:
- 使用映射的消费者通过 Kong 发送一个测试请求。
- 从导航菜单中选择 AI 安全 > 交互浏览器。
- 按映射的 自制代理 筛选视图。
- 确认 自制代理 列显示映射的代理。
当映射正确时,交互浏览器显示自制代理名称,而不是破折号。