Key Vault 为通用机密(如密码和数据库连接字符串)提供安全存储。
从开发人员的角度来看,Key Vault API 接受机密值并将其作为字符串返回。 在内部,Key Vault 将机密存储并管理为八位字节序列(8 位字节),每个字节的最大大小为 25 KB。 Key Vault 服务不提供机密的语义。 它只是接受数据、加密数据、存储数据并返回机密标识符(id)。 可以使用标识符在以后检索机密。
对于高度敏感的数据,请考虑添加额外的保护层。 例如,在 Key Vault 中存储数据之前,使用单独的保护密钥加密数据。
Key Vault 还支持机密的 contentType 字段。 客户端可以指定机密的内容类型,以帮助在检索机密数据时解释机密数据。 此字段的最大长度为 255 个字符。 建议用法是作为解释机密数据的提示。 例如,实现可以将密码和证书存储为机密,然后使用此字段来区分。 没有预定义的值。
加密
Key Vault 将所有机密作为加密数据存储在密钥保管库中。 Key Vault 使用加密密钥层次结构对静态机密进行加密,并且符合 FIPS 140-2 的模块保护该层次结构中的所有密钥。 此加密是透明的,无需你执行任何作。 添加机密时,Azure Key Vault 服务会加密机密,并在读取机密时自动解密它们。
密钥层次结构的加密叶密钥在每个密钥保管库中都是唯一的。 密钥层次结构的加密根密钥对于安全领域是独一无二的,并且由经过验证的 FIPS 140-2 三级或更高级别的模块进行保护。
机密属性
除了机密数据,还可以指定以下属性:
- exp:IntDate,可选,默认值 永远。 exp (过期时间)属性设置了机密数据在该时间或之后不应被检索的截止时间,某些情况下除外。 此字段仅用于 信息 性目的,因为它通知用户密钥保管库服务可能无法使用特定机密。 其值必须是包含 IntDate 值的数字。
- nbf:IntDate,可选,默认值 为现在。 nbf(不早于)属性指定在该时间之前不应检索机密数据,除非在特定情况下。 此字段仅供 参考 。 其值必须是包含 IntDate 值的数字。
- enabled:布尔型,可选,默认值为 true。 此属性指定是否可以检索机密数据。 将启用属性与 nbf 和 exp 配合使用。当 nbf 和 exp 之间发生操作时,仅当启用设置为 true 时,才允许该操作。 nbf 和 exp 窗口之外的操作会自动被禁止,但在特定情况下除外。
以下只读属性包含在包含机密属性的任何响应中:
- created:IntDate,可选。 created 属性指示创建此版本的机密的时间。 如果机密在添加此属性之前创建,此值为 NULL。 其值必须是包含 IntDate 值的数字。
- updated:IntDate,可选。 updated 属性指示更新此版本的机密的时间。 如果机密上次更新的时间早于添加此属性的时间,此值为 NULL。 其值必须是包含 IntDate 值的数字。
有关每个 Key Vault 对象类型的常见属性的信息,请参阅 Azure Key Vault 密钥、机密和证书概述。
受日期时间控制的操作
机密的 获取 操作可以用于 nbf / exp 窗口外的尚未生效和已过期的机密。 调用一个尚未生效的机密的获取操作可用于测试目的。 检索(get)过期的机密可用于恢复操作。
机密访问控制
Key Vault 中管理的机密的访问控制是在包含这些机密的密钥保管库级别提供的。 机密的访问控制策略不同于同一密钥保管库中密钥的访问控制策略。 用户可以创建一个或多个保管库来保存机密,并且需要维护适合方案的机密分段和管理。
在保管库上的机密访问控制条目中,按主体使用以下权限。 这些权限十分类似于在机密对象上允许的操作:
针对机密管理操作的权限
- get:读取机密
- 列表:列出密钥保管库中存储的机密或机密版本
- set:创建机密
- delete:删除机密
- 恢复:恢复已删除的机密
- 备份:在密钥保管库中备份机密
- 还原:将备份的机密还原到密钥保管库
针对特权操作的权限
- 清除:清除(永久删除)已删除的机密
有关处理机密的更多信息,请参阅 Key Vault REST API 参考中的机密操作。 有关建立权限的信息,请参阅 保管库 - 创建或更新 和 保管库 - 更新访问策略。
用于在 Key Vault 中控制访问的操作指南:
机密标记
可以用标记的形式指定其他特定于应用程序的元数据。 Key Vault 最多支持 15 个标记,每个标记可以有 512 个字符的名称和 512 个字符的值。
注释
如果调用方具有 列表 或 获取 权限,他们可以读取标记。
使用场景
| 何时使用 | 例子 |
|---|---|
| 安全地存储、管理生命周期,以及监视服务到服务通信(例如密码、访问密钥、服务主体客户端机密)的凭据。 |
-
将 Azure Key Vault 与虚拟机配合使用 - 将 Azure Key Vault 与 Azure Web 应用配合使用 |