Azure Key Vault Python SDK 技能
帮助 Python 编码代理安全管理 Azure Key Vault 中的机密、加密密钥和证书。
文档推荐 DefaultAzureCredential、Entra 审计、托管身份、RBAC、软删除和恢复,且避免连接字符串与密钥,体现了最小权限和可恢复性意识,因此基础分较高。扣分原因是示例直接打印秘密值,删除和永久 purge 没有用户确认、权限前置检查或操作保护,也未说明敏感数据日志风险、数据流和依赖版本安全。
主路径覆盖安装、同步/异步客户端、生命周期、错误处理和资源清理,异常类型及 403 反馈也有示例。扣分原因是文档同时称本地 DefaultAzureCredential 可直接使用,却在核心 SecretClient 示例中设置 require_envvar=True;大量占位符、未给出版本约束和未执行验证,部分边界及失败模式未解释。静态评估按上限限制,未超过 10 分。
触发词、目标受众和主要场景较明确,覆盖 secrets、keys、certificates、加密及异步调用,并通过 references 划分次要场景。扣分原因是未清楚声明不适用范围、环境前置条件、权限模型差异和版本边界;没有中文使用说明,也未提供中国大陆网络可达性或 Azure 区域限制信息。
SKILL.md 采用安装、认证、分领域示例、错误处理、最佳实践和参考文件的渐进结构;包含 MIT、作者 Microsoft、1.0.0 版本和包名,仓库 README 及 CI 提供一定治理信号。扣分原因是技能本身没有变更日志、维护责任人、明确更新路径、FAQ、依赖版本和已知限制,参考内容仍要求使用者自行核对当前 API。
可直接支持常见 Key Vault Python SDK 任务,示例覆盖秘密、密钥、证书、加解密、签名验证、删除恢复和异步模式,核心任务价值明确。扣分原因是 URL、名称、权限和认证环境均需用户补全,未展示可验证的完整项目输出或端到端结果;敏感值打印、purge 示例及 API 版本不确定性可能造成额外返工。静态评估按上限限制,未超过 7 分。
文件包含具体包名、类名、环境变量、代码示例、参考索引以及仓库级测试和 CI 证据,具备一定审计基础。扣分原因是提供的测试并非该技能的专项执行结果,未见针对 Key Vault 关键路径的提交测试、固定依赖、实际输出或第三方交叉验证;静态读取也无法确认示例可运行。静态评估按上限限制,未超过 5 分。
- 不要在生产日志中打印 secret.value、证书私钥或明文;应先确认日志策略和数据脱敏。
- 删除和 purge 会产生外部状态变化;执行前应确认资源、权限、保留策略和恢复方案,避免把 purge 当作默认清理步骤。
- 核对当前 Azure SDK API、身份链配置和 RBAC 权限;SecretClient 示例中的 require_envvar=True 与“本地可直接使用”说明存在冲突。
- 根据部署区域、网络出口和合规要求验证 Azure Key Vault 在中国大陆环境中的可达性与服务支持。
它能做什么 & 适用场景
这是 Microsoft Agent Skills 集合中的一个 Python 技能,专注于 Azure Key Vault SDK。它覆盖机密、加密密钥和证书的安装、身份验证、生命周期管理及常见操作。内容同时提供同步与异步客户端示例,并强调使用 DefaultAzureCredential 和上下文管理器。适合正在开发 Azure Python 应用、需要集中存储敏感信息或执行密钥加密操作的团队。
指导代理安装 azure-keyvault-secrets、azure-keyvault-keys、azure-keyvault-certificates 和 azure-identity;配置 AZURE_KEYVAULT_URL 与可选的 AZURE_TOKEN_CREDENTIALS;使用 SecretClient 创建、读取、列出、删除、恢复和永久删除机密;使用 KeyClient 创建、读取、列出和删除 RSA 或 EC 密钥;使用 CryptographyClient 执行加密、解密、签名和验证;使用 CertificateClient 创建、读取、列出和删除证书;编写同步或异步客户端代码,并处理 ResourceNotFoundError 与 HttpResponseError。
- Python 后端开发者需要把数据库密码或其他应用机密存入 Azure Key Vault 时使用。
- Azure 应用需要创建和管理 RSA 或 EC 加密密钥,并执行加密、解密、签名或验证时使用。
- 平台工程团队需要通过 Python 管理自签名证书及其作为机密保存的私钥内容时使用。
- 开发者需要让本地开发与 Azure 托管环境共用 DefaultAzureCredential 身份验证模式时使用。
- 高吞吐 Python 服务需要采用 Azure Key Vault 异步客户端并正确释放凭据和网络资源时使用。
优缺点一览
- 覆盖机密、密钥、证书三类 Key Vault SDK 能力。
- 提供同步和异步 Python 示例,包括加密、解密、签名和验证。
- 明确推荐 DefaultAzureCredential、托管身份、RBAC、软删除和版本轮换等实践。
- 包含常见资源不存在和 403 权限错误处理示例。
- 仅针对 Azure Key Vault Python SDK,不覆盖其他语言或其他 Azure 存储服务。
- 源材料未提供该单个技能的独立测试结果或测试套件信息。
- 需要 Azure Key Vault、有效凭据和网络访问;权限配置错误会导致 403。
- 源材料没有说明费用、配额或具体 Azure 资源开通步骤。
如何安装
先安装整个技能集合:运行 npx skills add microsoft/skills,在交互向导中选择此技能;集合会安装到所选代理的目录,例如 GitHub Copilot 使用 .github/skills/。随后按需要安装 Python 包:pip install azure-keyvault-secrets azure-identity、pip install azure-keyvault-keys azure-identity、pip install azure-keyvault-certificates azure-identity,或一次安装全部包。源材料没有说明其他代理的精确安装目录。
如何使用
在已加载该技能的编码代理中输入类似“用 Python 的 SecretClient 从 Azure Key Vault 读取 database-password”或“用 CryptographyClient 对数据执行 RSA-OAEP 加密”的请求。代码需要设置 AZURE_KEYVAULT_URL=https://<vault-name>.vault.azure.net/;若生产环境使用 DefaultAzureCredential,还应设置 AZURE_TOKEN_CREDENTIALS=prod 或指定凭据。同步客户端使用 with,异步客户端和 azure.identity.aio 凭据使用 async with。