Key Vault 提供了安全的通用存储机密,例如密码和数据库连接字符串。
从开发人员的角度来看,Key Vault API 接受机密值并将其作为字符串返回。 在内部,Key Vault 存储机密并将其作为八位字节序列(8 位字节)管理,每个字节的最大大小为 25k 字节。 Key Vault 服务不提供机密的语义。 它只是接受数据、加密数据、存储数据并返回机密标识符(id
)。 该标识符可用于稍后检索机密。
对于高度敏感的数据,客户端应考虑为数据提供额外的保护层。 例如,在 Key Vault 中存储数据之前,使用单独的保护密钥加密数据。
Key Vault 还支持机密的 contentType 字段。 客户端可以指定机密的内容类型,以帮助在检索机密数据时解释机密数据。 此字段的最大长度为 255 个字符。 建议用法是作为解释机密数据的提示。 例如,实现可以将密码和证书都存储为机密,然后使用此字段进行区分。 没有预定义的值。
加密
Key Vault 中的所有机密均已加密存储。 Key Vault 使用加密密钥层次结构对静态机密进行加密,该层次结构中的所有密钥都受符合 FIPS 140-2 标准的模块的保护。 此加密是透明的,不需要用户执行任何操作。 Azure Key Vault 服务会在你添加机密时对其进行加密,并在你读取机密时自动对其进行解密。
密钥层次结构的加密叶密钥在每个密钥保管库中都是唯一的。 密钥层次结构的根加密密钥在安全领域中是唯一的,它受到通过 FIPS 140-2 第 3 级或更高级别验证的模块保护。
机密属性
除机密数据外,还可以指定以下属性:
- 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窗口内。 对于尚未生效的密钥,调用密钥的获取操作可以用于测试目的。 检索(获取)过期的密钥可以用于恢复操作。
机密访问控制
Key Vault 中托管的机密的访问控制是在包含这些机密的 Key Vault 级别提供的。 在同一 Key Vault 中,机密的访问控制策略不同于密钥的访问控制策略。 用户可以创建一个或多个保管库来保存机密,并且需要维护方案相应的机密分段和管理。
在保管库上的机密访问控制条目中可以按主体使用以下权限,这些权限对机密对象上允许的操作采取严密的镜像操作:
针对机密管理操作的权限
- get:读取机密
- 列表:列出密钥保管库中存储的机密或机密版本
- set:创建机密
- delete:删除机密
- 恢复:恢复已删除的机密
- 备份:在密钥保管库中备份机密
- 还原:将备份的机密还原到密钥保管库
针对特权操作的权限
- 清除:清除(永久删除)已删除的机密
有关处理机密的更多信息,请参阅 Key Vault REST API 参考中的机密操作。 有关建立权限的信息,请参阅 保管库 - 创建或更新 和 保管库 - 更新访问策略。
用于在 Key Vault 中控制访问的操作指南:
机密标记
可以用标记的形式指定其他特定于应用程序的元数据。 Key Vault 最多支持 15 个标记,每个标记可以有 512 个字符的名称和 512 个字符的值。
注释
调用方如果具有“list”或“get”权限,可以读取标签。
使用场景
何时使用 | 例子 |
---|---|
安全地存储、管理生命周期,以及监视服务到服务通信(例如密码、访问密钥、服务主体客户端机密)的凭据。 | - 将 Azure Key Vault 与虚拟机配合使用 - 将 Azure Key Vault 与 Azure Web 应用配合使用 |