你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Key Vault 机密存储敏感的应用程序凭据,例如密码、连接字符串和访问密钥。 本文提供特定于机密管理的安全建议。
注释
本文重点介绍特定于 Key Vault 机密的安全做法。 有关全面的 Key Vault 安全指南,包括网络安全、标识和访问管理以及保管库体系结构,请参阅 保护 Azure Key Vault。
存储为机密的内容
Azure Key Vault 机密旨在存储服务或应用程序凭据。 将以下类型的数据存储为机密:
- 应用程序凭据:客户端应用程序机密、API 密钥、服务主体凭据
- 连接字符串:数据库连接字符串、存储帐户连接字符串
- 密码:服务密码、应用程序密码
- 访问密钥:Redis 缓存密钥、Azure 事件中心密钥、Azure Cosmos DB 密钥、Azure 存储密钥
- SSH 密钥:用于安全 shell 访问的专用 SSH 密钥
重要
不要在 Key Vault 中存储配置数据。 IP 地址、服务名称、功能标志和其他配置设置应存储在 Azure 应用配置 中,而不是存储在 Key Vault 中。 Key Vault 针对加密机密进行优化,而不是常规配置管理。
有关机密的详细信息,请参阅 “关于 Azure Key Vault 机密”。
机密存储格式
在 Key Vault 中存储机密时,请遵循以下格式设置最佳做法:
正确存储复合凭据:对于具有多个组件的凭据(如用户名/密码),请将它们存储为:
- 格式正确的连接字符串,或
- 包含凭据组件的 JSON 对象
对元数据使用标记:存储管理信息,例如轮换计划、到期日期和机密标记中的所有权,而不是机密值本身。
最小化机密大小:保持机密值简洁。 应使用加密方式将大型有效负载存储在 Azure 存储中,使用 Key Vault 密钥进行加密,并使用存储访问令牌的 Key Vault 机密。
密钥轮换策略
存储在应用程序内存或配置文件中的机密将在整个应用程序生命周期中保留,从而增加暴露风险。 实现常规机密轮换,以最大程度地降低泄露风险:
- 定期轮换机密:至少每 60 天轮换机密,或者更频繁地轮换高安全性方案
- 自动轮换:使用 Azure Key Vault 的轮换功能自动执行轮换过程
- 使用双凭据:对于零停机轮换,请使用两组身份验证凭据实现资源
有关机密轮换的详细信息,请参阅:
机密缓存和性能
Key Vault 强制实施服务限制以防止滥用。 为了在保持安全性的同时优化机密访问:
- 内存中的缓存机密:在应用程序中缓存机密至少 8 小时,以减少 Key Vault API 调用
- 实现重试逻辑:使用指数退避重试逻辑处理暂时性故障和限制
- 轮换时刷新:轮换机密时更新缓存的值,以确保应用程序使用当前凭据
有关节流的详细信息,请参阅 Azure Key Vault 节流指南。
敏感信息监控
启用监视以跟踪机密访问模式并检测潜在的安全问题:
- 启用 Key Vault 日志记录:记录所有机密访问作,以检测未经授权的访问尝试。 请参阅 Azure Key Vault 日志记录
- 设置事件网格通知:监视自动化工作流的机密生命周期事件(已创建、更新、过期、即将过期)。 将 Azure Key Vault 视为事件网格源
- 配置警报:为可疑访问模式或身份验证尝试失败设置 Azure Monitor 警报。 请参阅 Azure Key Vault 的监视和警报
- 定期评审访问权限:定期审核谁有权访问机密并删除不必要的权限
相关安全文章
- 保护 Azure Key Vault - 全面的 Key Vault 安全指南
- 保护 Azure Key Vault 密钥 - 加密密钥的安全最佳做法
- 保护 Azure Key Vault 证书 - 证书的安全最佳做法
后续步骤
- 关于 Azure Key Vault 机密信息
- Azure Key Vault 开发人员指南
- 使用 Azure Monitor 对 Key Vault 进行监视