news 2026/9/30 12:26:59

Agent Skills安全实践清单:DefaultAzureCredential认证、防密钥泄露与智能体安全配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Agent Skills安全实践清单:DefaultAzureCredential认证、防密钥泄露与智能体安全配置

Agent Skills安全实践清单:DefaultAzureCredential认证、防密钥泄露与智能体安全配置

【免费下载链接】skillsSkills, MCP servers, Custom Agents, Agents.md for SDKs to ground Coding Agents项目地址: https://gitcode.com/gh_mirrors/agent/skills

Agent Skills 是微软开源的 AI 编码智能体(Coding Agent)技能库,为 Azure SDK 和 Microsoft AI Foundry 开发提供 175+ 个领域技能、自定义 Agent、MCP 服务器与 AGENTS.md 模板。对于刚接触 AI 智能体开发的读者,本清单聚焦三件事:用 DefaultAzureCredential 做身份认证、防密钥泄露、做好智能体安全配置,帮你从零建立起一套可落地的 Agent 安全实践。

为什么 Agent 技能开发必须重视安全?

AI 编码智能体正在替我们直接操作 Azure 资源、读写密钥、生成生产代码。它一旦"学坏",风险会被自动放大:

  • 凭证暴露面大:智能体会读取环境变量、连接字符串,任何硬编码都可能被复制进生成代码
  • 模式污染:加载过多技能会导致"上下文腐烂"(context rot),错误的安全模式会被混淆复制
  • 不可逆操作:错误的智能体身份配置可能直接操作生产 Graph API 资源

本仓库的思路很务实:把安全规范固化成技能(Skill)和自动化评分器,让智能体"天生就会"写安全的代码。

一、DefaultAzureCredential:Azure 身份认证的首选姿势

Agents.md 明确规定:生产环境一律使用DefaultAzureCredential认证。它是一条"凭据链",会按顺序自动尝试多种认证方式(环境变量、托管标识、Azure CLI 等),无需在代码里写死任何密钥。

新手记住三个关键规则即可(详见 azure-identity-py 验收标准):

规则说明
✅ 从azure-identity导入生产代码统一使用DefaultAzureCredential,密钥全部走环境变量
✅ 异步代码用azure.identity.aio同步凭据配异步客户端是典型错误,会静默失败
❌ 绝不硬编码令牌写死token = "eyJ0eXAi..."这类值属于安全红线

另外注意一个容易踩的坑:并非所有场景都适合它。例如创建 Entra Agent ID 时,entra-agent-id 验收标准 明确禁用DefaultAzureCredential——因为 Azure CLI 令牌携带Directory.AccessAsUser.All权限,会被 Graph API 直接 403 拒绝。安全配置的核心是"按需选择最小权限凭据",而不是一刀切。

二、防密钥泄露:4 类必须拒绝的硬编码模式

本仓库内置了一个自动化"无密钥检查器" check-no-secrets.rs,它会扫描源码并拦截 4 类高危模式,这正是新手应自查的清单:

  1. 硬编码 AccountKey—— 存储账户密钥直接写在代码里
  2. 共享访问签名(SAS)——sig=...这类临时令牌被固化进字符串
  3. 完整连接字符串——DefaultEndpointsProtocol=...AccountKey=...出现在源码
  4. 可疑的长 Base64 字符串—— 40 位以上的编码串,极可能是密钥

Rust 生态还有更严格的规定:check-token-credential.rs 直接把连接字符串认证和 SAS 认证列为"禁用语"(banned patterns),只允许TokenCredential系列凭据。翻译成人话:能用令牌凭据,就永远不要用连接字符串。

密钥放哪里?Key Vault

正确的做法是把密码、API Key、连接串全部放进 Key Vault,代码里只保留"取密钥"的动作。参考 azure-keyvault-py 验收标准 的标准做法:

  • 密钥库 URL 通过环境变量AZURE_KEYVAULT_URL注入
  • 客户端使用DefaultAzureCredential认证
  • 通过SecretClient动态读取密钥,而非把值写死

三、智能体安全配置:从 AGENTS.md 到技能选择

智能体的"行为安全"同样有章可循,本仓库提供了三层防线:

1. 用 AGENTS.md 约束行为边界

Agents.md 是智能体行为的"宪法",其中"做与不做"清单包含明确的安全红线:

  • ✅ 使用DefaultAzureCredential认证、显式处理异常
  • ❌ 硬编码凭证或端点、空except块、吞掉认证错误

2. 技能按需加载,拒绝"全量装载"

README.md 特别提醒:只复制当前项目真正需要的技能。加载全部技能不仅浪费 token,还会让不安全模式与正确模式相互混淆——这本身就是一种安全隐患。

3. 让智能体"记得"安全教训

continual-learning Hook 通过 hooks.json 在会话开始、工具调用后、会话结束三个节点自动记录"踩坑经验",让智能体下次主动避开已知的错误做法——安全规范也能"越用越牢"。

四、让测试框架替你把关

本仓库的测试框架(Test Harness)把上述安全规则变成了可执行的验收标准:每个技能目录下都有 acceptance-criteria.md 定义"正确/错误模式",评分器自动判定生成代码是否触碰红线。你可以从 tests/README.md 学习如何为自己的技能添加安全场景。

安全实践速查清单 ✅

把这份清单贴在工位上,覆盖 90% 的常见风险:

  • 生产代码使用DefaultAzureCredential,无硬编码凭证
  • 异步场景使用azure.identity.aio凭据
  • 源码中无 AccountKey、SAS、连接字符串、长 Base64
  • 敏感值统一存放 Key Vault,URL 走环境变量
  • 按最小权限选择凭据(特殊 API 场景禁用默认链)
  • 显式捕获认证异常,不用空except吞错
  • 智能体只加载必要技能,AGENTS.md 已部署
  • 用测试框架跑一遍技能场景,确认评分达标

掌握以上清单,你的 AI 智能体就能在 Azure 上既"聪明"又"守规矩"地干活了。

【免费下载链接】skillsSkills, MCP servers, Custom Agents, Agents.md for SDKs to ground Coding Agents项目地址: https://gitcode.com/gh_mirrors/agent/skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 12:26:32

别再只说“大姨妈”了:这份高级暗号合集帮你从容表达生理期

1. 为什么我们需要那么多“暗号”来指代姨妈期先聊点实在的。“大姨妈来了”这个说法,大概是中文互联网里流传最广、生命力最强的黑话之一。它妙在三个地方:足够模糊,外人听不出你具体在说什么;足够形象,一个长期造访、…

作者头像 李华
网站建设 2026/9/30 12:26:25

ASP.NET汽车租赁系统实践:状态机、并发控制与计费规则设计

毕业后一直在做企业级的.NET业务系统,前两年接了一个汽车租赁公司的信息化项目,从需求调研到上线运维完整走了一遍。这个项目本身不算大,但涉及订单状态流转、计费规则、并发抢单、权限控制等一系列典型业务场景,做完之后把很多通…

作者头像 李华
网站建设 2026/9/30 12:24:18

彻底搞懂 JavaScript 中单引号、双引号、反引号的区别与用法

最近在代码评审里看到一个挺典型的场景:新来的同事写前端组件,一会儿用用户名: name拼接,一会儿用${name} 已登录插值,还有一段 HTML 字符串里单引号双引号缠在一起,跑起来没问题,但是看得人头大。他问我…

作者头像 李华
网站建设 2026/9/30 12:24:11

网络系统集成课程设计全攻略:从VLAN规划到答辩验收

简介:网络系统集成课程设计是网络工程方向的一项综合性实践,其核心在于将VLAN划分、IP规划、路由协议、NAT与ACL等分散知识点,通过一个完整项目串联成可运行的链路。课程设计报告的价值并不仅在于最终交付的docx文档,更在于每一行…

作者头像 李华
网站建设 2026/9/30 12:24:10

基于CNN的滚动轴承故障诊断:从时频图到准确率复现全攻略

简介:这份PDF论文直面滚动轴承故障特征难以准确表征的难题,系统提出基于卷积神经网络的故障诊断方案,适合机械故障诊断、深度学习建模等方向的研究生与工程技术人员参考。针对奇异值分解、多尺度模糊熵、经验模态分解等传统方法只能部分表征故…

作者头像 李华
网站建设 2026/9/30 12:24:05

Ubuntu 20.04下OpenCV 4.5.0与C++开发环境搭建指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华