ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenSRE 掩码(Masking)实战:如何防止 Pod 名、集群 ID 泄露给外部 LLM

OpenSRE 掩码(Masking)实战:如何防止 Pod 名、集群 ID 泄露给外部 LLM OpenSRE 掩码Masking实战如何防止 Pod 名、集群 ID 泄露给外部 LLM【免费下载链接】opensreBuild your own AI SRE agents. The open source toolkit for the AI era.项目地址: https://gitcode.com/GitHub_Trending/op/opensre当你让 AI SRE 用外部大模型排查生产问题时日志、告警和集群信息会直接发给第三方模型——Pod 名、命名空间、集群 ID、内网 IP、账号 ID 等基础设施标识符可能随之泄露。OpenSRE 内置了可逆掩码Masking机制在文本发往外部 LLM 之前自动把敏感标识符替换为POD_0、CLUSTER_1这类稳定占位符并在返回给用户时还原原文。本文带你快速开启这套「AI 安全护栏」只需设置环境变量无需改一行代码。为什么需要 LLM 输出掩码 把告警文本、K8s 事件直接丢给外部模型等于把基础设施「名片」交给了第三方。OpenSRE 的 Masking 模块解决三个问题不出网发往外部 LLM 的 payload 中不含真实 Pod 名、集群名、IP 地址、邮箱、账号 ID可还原掩码是可逆的占位符映射表存在会话状态中最终回答自动还原真实标识符保一致同一个标识符在一次运行中永远映射到同一个占位符模型对POD_0的推理前后一致掩码如何工作四步闭环开启掩码后向外部模型发送文本的调用点会先做替换etl-worker-7d9f8b-xkp2q→POD_0eks_cluster:prod-us-east-1→eks_cluster:CLUSTER_0模型只看到掩码文本原始标识符不离开运行时有映射表时OpenSRE 在下游状态和展示输出中还原真实标识符消息投递如 Slack发送前还可再跑一次还原作为纵深防御内置的 8 类检测器覆盖了最常见的标识符类型示例输入占位符podetl-worker-7d9f8b-xkp2qPOD_0namespacekube_namespace:tracer-testkube_namespace:NAMESPACE_0clustereks_cluster:prod-us-east-1eks_cluster:CLUSTER_0hostnameip-10-0-1-23.ec2.internalHOSTNAME_0account_id123456789012ACCOUNT_ID_0ip_address192.168.1.50IP_ADDRESS_0emailaliceexample.comEMAIL_0service_nameservice:checkout-apiservice:SERVICE_NAME_0![错误日志排查界面智能体基于告警与日志自动定位问题](https://raw.gitcode.com/GitHub_Trending/op/opensre/raw/9f91c395a6803890abd3d98d292d2dec3f5f9501/docs/images/Tracer - Error Log Preview.png?utm_sourcegitcode_repo_files)最快开启方法3 个环境变量搞定掩码默认关闭通过环境变量一键启用策略按运行实时读取——改动后下次运行即生效无需重启变量默认值说明OPENSRE_MASK_ENABLEDfalse总开关设为true/1/yes/on开启OPENSRE_MASK_KINDS全部 8 类逗号分隔的掩码类型清单未知类型会被忽略并告警OPENSRE_MASK_EXTRA_REGEX(空)自定义标识符JSON 格式的「标签 → 正则」映射典型用法export OPENSRE_MASK_ENABLEDtrue export OPENSRE_MASK_KINDSpod,namespace,cluster,hostname opensre ask why is the checkout pod crash-looping? 想掩码 JIRA 单号这类自定义标识符用OPENSRE_MASK_EXTRA_REGEX传一个 JSON例如{jira_key: \\b[A-Z]-\\d\\b}正则的分组 1如果存在决定被掩码的片段。源码在哪里架构一览整个模块只有 4 个文件结构非常清晰适合通读文件职责infrastructure/safety/masking/policy.pyMaskingPolicy从环境变量构建策略定义 8 类IdentifierKindinfrastructure/safety/masking/detectors.py内置正则检测器 find_identifiers扫描入口infrastructure/safety/masking/rules.pyMaskingRules单次运行的占位符映射、mask/unmask、递归处理 dict/listinfrastructure/safety/masking/init.py对外导出的公共 API几个值得注意的工程细节占位符稳定性映射表序列化到会话状态的masking_map字段跨节点传递后计数器会自动续接见 rules.py 的from_state单遍还原unmask按…整词匹配NAMESPACE_10不会被更短的NAMESPACE_1部分改写字节级往返保证对内置检测器和自定义正则mask → unmask能逐字节还原原文对应的测试全部集中在 tests/masking/包括 test_rules.py、test_detectors.py 和 test_policy.py。与 Guardrails单向脱敏的分工OpenSRE 还有一套GuardrailEvaluator位于 infrastructure/safety/guardrails/两者互补、可同时启用维度Masking本文主角Guardrails目标基础设施标识符Pod、集群、IP…硬拦截规则信用卡号、API Key…可逆性✅ 可逆输出可还原❌ 不可逆直接替换为[REDACTED]生效层自愿接入的调用点如部分 GitHub/Sentry 修复工具、CLI agent-exec 路径LLM 客户端层更多设计说明见官方文档 docs/masking.mdx相关的安全约束还可在 docs/guardrails/README.md 中了解。上手清单 ✅确认场景你确实会把生产数据发给外部模型设置OPENSRE_MASK_ENABLEDtrue按需收敛OPENSRE_MASK_KINDS默认 8 类全开未知值只会告警不报错有私有标识符JIRA 号、工单号→ 配置OPENSRE_MASK_EXTRA_REGEX跑一次真实告警排查验证最终回答里 Pod/集群名已还原掩码默认关闭、零代码改动、策略热更新——用三个环境变量就能让外部 LLM 只「知其形、不知其名」。【免费下载链接】opensreBuild your own AI SRE agents. The open source toolkit for the AI era.项目地址: https://gitcode.com/GitHub_Trending/op/opensre创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表