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