Azure Key Vault Keys (Java) 是面向 Azure Key Vault 和 Managed HSM 的 Java SDK,用于管理加密密钥并执行加密操作。
用途:在 Java 应用中创建、获取、更新、列出、删除、恢复、备份、还原、轮换和导入密钥,并使用这些密钥进行加密、解密、签名、验签以及密钥包装与解包。
主要能力:
- 密钥管理:支持的密钥类型包括 RSA、RSA_HSM、EC、EC_HSM、OCT(仅 Managed HSM)和 OCT_HSM。创建 RSA 密钥时可设置密钥大小(2048、3072、4096 位)、生效时间、过期时间、启用状态、允许的操作和标签,并可设置硬件保护。创建 EC 密钥时可选择 P-256、P-384、P-521 曲线,也可设置硬件保护。
- 密钥读取与更新:可获取最新版本或指定版本,更新启用状态、过期时间和标签等属性。可列出所有密钥或某个密钥的所有版本。
- 删除与恢复:支持启动删除(软删除保管库)、等待删除完成、永久清除、恢复已删除密钥。
- 加密操作:使用 CryptographyClient 执行加密/解密、签名/验签、密钥包装/解包。资料列出了加密算法(如 RSA1_5、RSA_OAEP、RSA_OAEP_256、A128GCM、A256GCM、A128CBC、A256CBC)和签名算法(如 RS256、RS384、RS512、PS256、ES256、ES384、ES512)。
- 备份与还原:可备份密钥为字节数组、写入文件、再还原。
- 轮换:可轮换生成新版本,设置和获取轮换策略(如过期时间 P90D,在到期前 P30D 轮换)。
- 导入:可通过 JsonWebKey 与 ImportKeyOptions 导入已有密钥材料。
- 错误处理:示例使用 ResourceNotFoundException 和 HttpResponseException 捕获异常。
使用方式:通过 Maven 依赖引入 com.azure:azure-security-keyvault-keys(版本 4.9.0)。使用 KeyClientBuilder 指定 vaultUrl 和 DefaultAzureCredential 构建 KeyClient 或 KeyAsyncClient;使用 CryptographyClientBuilder 指定 keyIdentifier 和凭据构建 CryptographyClient。环境变量示例为 AZURE_KEYVAULT_URL。资料提供了创建、获取、更新、列表、删除、加密、签名、包装、备份、轮换、导入和错误处理等代码片段。
适用场景:需要在 Java 中集中管理密钥并执行加密操作的场景,包括密钥生命周期管理、HSM 保护密钥使用、密钥轮换、密钥备份还原和导入等。
限制与注意事项:OCT 对称密钥仅适用于 Managed HSM。资料建议生产环境使用 HSM 密钥(setHardwareProtected(true))、启用软删除、设置自动轮换策略、遵循最小权限、尽可能使用本地密钥材料的 CryptographyClient 以减少往返。该技能仅应在任务与上述范围明确匹配时使用;输出不应替代针对具体环境的验证、测试或专家审查;若缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。定价、平台限制等未在资料中提供。