密钥保管库中的机密

已完成

如果将机密与所有人共享,机密就不是机密了。 将连接字符串、安全令牌、证书和密码等机密项目存储在代码中相当于邀请某人去取用它们,而取用的目的并不是你的本来目的。 将此类数据存储在 Web 配置中也不妥;这实际上是允许能够访问源代码或 Web 服务器的人访问你的专用数据。

与上述做法相反,应始终将这些机密置于 Azure Key Vault 中。

什么是 Azure Key Vault

Azure Key Vault 是一个机密存储:用于存储应用程序机密的集中式云服务。 Key Vault 将应用程序机密保存在一个中心位置,并提供安全访问、权限控制和访问日志记录,以这种方式来确保机密数据的安全。

机密存储在各个保管库中,每个保管库都有自己的配置和安全策略,用于控制访问。 然后,你可以通过 REST API 或者通过为大多数语言提供的客户端 SDK 访问数据。

重要

Key Vault 用于存储服务器应用程序的配置机密。 它并非用于存储属于应用用户的数据,也不应该用于应用的客户端部分。 这反映在其性能特征、API 和成本模型中。

用户数据应存储在其他位置,例如使用透明数据加密的 Azure SQL 数据库或使用存储服务加密的存储帐户。 可以在 Key Vault 中保存应用程序用于访问这些数据存储的机密。

为何使用 Key Vault 来存储机密

密钥管理和机密存储操作在手动进行的情况下可能很复杂,也容易出错。 手动轮换证书意味着可能需要经历数小时或数天没有证书的情况。 如上所述,将连接字符串保存在配置文件或代码存储库中意味着某人可能会窃取你的凭证。

Key Vault 允许用户存储连接字符串、机密、密码、证书、访问策略、文件锁(使 Azure 中的项目只读)和自动化脚本。 它还记录访问和活动,允许你监视订阅中的访问控制(标识和访问管理)。 此外,它还有诊断、指标、警报和故障排除工具,可以确保你有所需的访问权限。

有关使用 Azure Key Vault 的详细信息,请参阅使用 Azure Key Vault 管理服务器应用中的机密

总结

如果使用 Azure Key Vault 正确管理机密,则根本不用担心凭证被窃、手动密钥轮换和证书续订等事项。