很高兴知道
- 这些是什么,
- 它们是用来做什么的
- 为什么一个人更喜欢一个而不是另一个。
一个非常简单的答案:
表示为 JWK(JSON Web 密钥)的加密密钥
示例:存储包含一对公钥和私钥的 .pfx 证书文件
KV 接受任何值并将其存储为二进制文件(有最大大小限制)
示例:密码或 API 密钥
密钥库密钥:
Azure Key Vault 中的密钥是“加密密钥”,用于在不向使用者(用户\服务)发布私钥的情况下加密信息。它就像一个黑匣子,使用RSA 算法加密和解密内容。
RSA算法,涉及公钥和私钥。公钥可以为所有人所知;它用于加密消息。使用公钥加密的消息只能使用私钥解密。
设想:
假设您必须存储客户 CreditCard,将其保存在数据库中的安全方法是将其加密存储,在软件设计和业务需求期间,您应该对其进行加密是非常清楚的,这是大多数人没有意识到或不知道的不用担心您如何保护加密密钥,大多数情况下,作为软件配置的一部分存储,如果攻击者或员工可以访问密钥,则信息不再安全。
使用密钥库密钥,您可以将 CreditCard 信息发送到 KeyVault,它会加密信息并将加密值返回给调用者。在高性能场景下,您可以从 KeyVault 获取公钥,使用它来加密来自应用程序端的信息,并存储在已经加密的数据库中,而无需将数据发送到 KV。取回真实数据的唯一方法是将加密数据发送到 KV,KV 将返回解密的 CreditCard。
Key Vault 机密
Azure Key Vault 中的机密是八位字节序列,每个最大大小为 25kb。它被描述为八位字节,因为它不关心所存储的数据类型,唯一的限制是 25kb 的大小。发送数据后,数据会被加密并存储,如果您有权限,您可以随时检索它。它用于存储应用程序设置、令牌以及是否要使用数据库连接字符串、密码等信息。
Key Vault Secrets 的好处是您可以使用定义 Expiration/NotBefore 值的预定义轮换值。因此,您可以注册将在指定时间段轮换的临时值,而读者可以访问具有 Get 权限的 Key Vault,他们将只能读取当前的值,而未来的值已经定义且不可见获取操作。
Azure Key Vault (KV) 可以存储 3 种类型的项目:(1) 机密、(2) 密钥和 (3) 证书 (certs)。
机密- 提供机密的安全存储,例如数据库连接字符串、帐户密钥或 PFX 的密码(私钥文件)。身份验证应用程序可以检索秘密以在其操作中使用。更多关于AZ KV 的秘密
(加密)密钥- 表示为 JWK(JSON Web 密钥)的密钥。支持多种密钥类型和算法,并支持将硬件安全模块 (HSM) 用于高价值密钥。有关AZ KV 密钥的更多信息
Cert - 是一种托管的 X.509 证书,它建立在密钥和机密之上,并添加了自动续订功能/自动翻转。更多关于AZ KV 证书的信息