你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
KeyClient 类
- java.
lang. Object - com.
azure. security. keyvault. keys. KeyClient
- com.
public final class KeyClient
KeyClient提供用于在 Azure 密钥保管库中管理的KeyVaultKey同步方法。 客户端支持创建、检索、更新、删除、清除、备份、还原、列出、释放和旋转 KeyVaultKey。 客户端还支持DeletedKey列出已启用软删除的 Azure 密钥保管库。
入门
若要与 Azure 密钥保管库 服务交互,需要创建 类的KeyClient实例、保管库 URL 和凭据对象。
本文档中显示的示例使用名为 DefaultAzureCredential 的凭据对象进行身份验证,该对象适用于大多数方案,包括本地开发和生产环境。 此外,我们建议使用 托管标识 在生产环境中进行身份验证。 可以在 Azure 标识文档中找到有关不同身份验证方式及其相应凭据类型的详细信息。
示例:构造同步密钥客户端
下面的代码示例演示如何创建 KeyClient,使用 KeyClientBuilder 对其进行配置。
KeyClient keyClient = new KeyClientBuilder()
.vaultUrl("<your-key-vault-url>")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
创建加密密钥
KeyClient可用于在密钥保管库中创建密钥。
代码示例:
以下代码示例演示如何使用 createKey(String name, KeyType keyType) API 在密钥保管库中同步创建加密密钥。
KeyVaultKey key = keyClient.createKey("keyName", KeyType.EC);
System.out.printf("Created key with name: %s and id: %s%n", key.getName(), key.getId());
注意: 有关异步示例,请参阅 KeyAsyncClient。
获取加密密钥
KeyClient可用于从密钥保管库检索密钥。
代码示例:
以下代码示例演示如何使用 getKey(String name) API 从密钥保管库同步检索密钥。
KeyVaultKey keyWithVersionValue = keyClient.getKey("keyName");
System.out.printf("Retrieved key with name: %s and: id %s%n", keyWithVersionValue.getName(),
keyWithVersionValue.getId());
注意: 有关异步示例,请参阅 KeyAsyncClient。
删除加密密钥
KeyClient可用于从密钥保管库中删除密钥。
代码示例:
以下代码示例演示如何使用 API 同步删除密钥保管库中的 beginDeleteKey(String name) 密钥。
SyncPoller<DeletedKey, Void> deleteKeyPoller = keyClient.beginDeleteKey("keyName");
PollResponse<DeletedKey> deleteKeyPollResponse = deleteKeyPoller.poll();
// Deleted date only works for SoftDelete Enabled Key Vault.
DeletedKey deletedKey = deleteKeyPollResponse.getValue();
System.out.printf("Key delete date: %s%n", deletedKey.getDeletedOn());
System.out.printf("Deleted key's recovery id: %s%n", deletedKey.getRecoveryId());
// Key is being deleted on the server.
deleteKeyPoller.waitForCompletion();
// Key is deleted
注意: 有关异步示例,请参阅 KeyAsyncClient。
方法摘要
方法继承自 java.lang.Object
方法详细信息
backupKey
public byte[] backupKey(String name)
请求将指定 KeyVaultKey 的备份下载到客户端。 密钥备份操作以受保护的形式从 Azure 密钥保管库导出 KeyVaultKey 。 请注意,此操作不会以可在 Azure 密钥保管库 系统外部使用的形式返回密钥材料,返回的密钥材料要么受到 Azure 密钥保管库 HSM 的保护,要么保护给 Azure 密钥保管库本身。 此操作的目的是允许客户端在一个 KeyVaultKey Azure 密钥保管库 实例中生成 ,备份 KeyVaultKey,然后将其还原到另一个 Azure 密钥保管库 实例中。 备份操作可用于以受保护的形式从 Azure 密钥保管库导出任何KeyType内容。 无法备份 的 KeyVaultKey 单个版本。 Backup/Restore
只能在地理边界内执行;这意味着无法将一个地理区域的备份还原到另一个地理区域。 例如,无法在欧洲地理区域还原美国地理区域中的备份。 此操作需要 key/backup
权限。
示例代码
从密钥保管库备份 KeyVaultKey 。
byte[] keyBackup = keyClient.backupKey("keyName");
System.out.printf("Key backup byte array length: %s%n", keyBackup.length);
Parameters:
Returns:
backupKeyWithResponse
public Response
请求将指定 KeyVaultKey 的备份下载到客户端。 密钥备份操作以受保护的形式从 Azure 密钥保管库导出 KeyVaultKey 。 请注意,此操作不会以可在 Azure 密钥保管库 系统外部使用的形式返回密钥材料,返回的密钥材料要么受到 Azure 密钥保管库 HSM 的保护,要么保护给 Azure 密钥保管库本身。 此操作的目的是允许客户端在一个 KeyVaultKey Azure 密钥保管库 实例中生成 ,备份 KeyVaultKey,然后将其还原到另一个 Azure 密钥保管库 实例中。 备份操作可用于以受保护的形式从 Azure 密钥保管库导出任何KeyType内容。 无法备份 的 KeyVaultKey 单个版本。 Backup/Restore
只能在地理边界内执行;这意味着无法将一个地理区域的备份还原到另一个地理区域。 例如,无法在欧洲地理区域还原美国地理区域中的备份。 此操作需要 key/backup
权限。
示例代码
从密钥保管库备份 KeyVaultKey ,并输出 中返回的密钥备份字节数组的 Response<T>长度。
Response<byte[]> backupKeyResponse = keyClient.backupKeyWithResponse("keyName", new Context("key1", "value1"));
System.out.printf("Key backup byte array length: %s%n", backupKeyResponse.getValue().length);
Parameters:
Returns:
beginDeleteKey
public SyncPoller
KeyVaultKey从密钥保管库中删除任何类型的 。 如果在密钥保管库上启用了软删除, KeyVaultKey 则会将 置于已删除状态,并且需要清除以永久删除, KeyVaultKey 否则将永久删除 。 删除操作适用于 Azure 密钥保管库中存储的任何KeyVaultKey操作,但不能应用于 的单个版本KeyVaultKey。 此操作将删除与 KeyVaultKey关联的加密材料,这意味着 KeyVaultKey 不能用于 Sign/Verify
、 Wrap/Unwrap
或 Encrypt/Decrypt
操作。 此操作需要 keys/delete
权限。
示例代码
KeyVaultKey从密钥保管库中删除 。 输出 的恢复 ID KeyVaultKey。
SyncPoller<DeletedKey, Void> deleteKeyPoller = keyClient.beginDeleteKey("keyName");
PollResponse<DeletedKey> deleteKeyPollResponse = deleteKeyPoller.poll();
// Deleted date only works for SoftDelete Enabled Key Vault.
DeletedKey deletedKey = deleteKeyPollResponse.getValue();
System.out.printf("Key delete date: %s%n", deletedKey.getDeletedOn());
System.out.printf("Deleted key's recovery id: %s%n", deletedKey.getRecoveryId());
// Key is being deleted on the server.
deleteKeyPoller.waitForCompletion();
// Key is deleted
Parameters:
Returns:
beginRecoverDeletedKey
public SyncPoller
将 KeyVaultKey 密钥保管库中的 恢复到其最新版本,并且只能在启用了软删除的保管库上执行。 尝试恢复 将 KeyVaultKey 返回错误。 将此视为对已启用软删除的保管库执行删除操作的反函数。 此操作需要 keys/recover
权限。
示例代码
KeyVaultKey从启用软删除的密钥保管库恢复 。
SyncPoller<KeyVaultKey, Void> recoverKeyPoller = keyClient.beginRecoverDeletedKey("deletedKeyName");
PollResponse<KeyVaultKey> recoverKeyPollResponse = recoverKeyPoller.poll();
KeyVaultKey recoveredKey = recoverKeyPollResponse.getValue();
System.out.printf("Recovered key name: %s%n", recoveredKey.getName());
System.out.printf("Recovered key id: %s%n", recoveredKey.getId());
// Key is being recovered on the server.
recoverKeyPoller.waitForCompletion();
// Key is recovered
Parameters:
Returns:
createEcKey
public KeyVaultKey createEcKey(CreateEcKeyOptions createEcKeyOptions)
创建新的 KeyVaultKey 并将其存储在密钥保管库中。 创建 EC 密钥操作可用于在 Azure 密钥保管库中创建任何 ECKeyType。 KeyVaultKey如果已存在具有所提供的名称的 ,则 Azure 密钥保管库 会创建 新版本。KeyVaultKey 它需要 keys/create
权限。
CreateEcKeyOptions 参数是必需的。 getCurveName()可以选择性地指定 。 如果未指定,Azure 密钥保管库将使用默认值P_256。 和 expiresnotBefore 值是可选的。 enabled如果未指定字段,则由 Azure 密钥保管库 设置为 true
。
指示 keyType 要创建的密钥的类型 KeyVaultKey 。 可能的值包括: EC 和 EC_HSM。
示例代码
使用 P_384 Web 密钥曲线创建新的 KeyVaultKey 。 密钥在一天内激活,一年后过期。 输出 的详细信息 KeyVaultKey。
CreateEcKeyOptions createEcKeyOptions = new CreateEcKeyOptions("keyName")
.setCurveName(KeyCurveName.P_384)
.setNotBefore(OffsetDateTime.now().plusDays(1))
.setExpiresOn(OffsetDateTime.now().plusYears(1));
KeyVaultKey ecKey = keyClient.createEcKey(createEcKeyOptions);
System.out.printf("Created key with name: %s and id: %s%n", ecKey.getName(), ecKey.getId());
Parameters:
Returns:
createEcKeyWithResponse
public Response
创建新的 KeyVaultKey 并将其存储在密钥保管库中。 创建 EC 密钥操作可用于在 Azure 密钥保管库中创建任何 ECKeyType。 KeyVaultKey如果已存在具有所提供的名称的 ,则 Azure 密钥保管库 会创建 新版本。KeyVaultKey 它需要 keys/create
权限。
CreateEcKeyOptions 参数是必需的。 getCurveName()可以选择性地指定 。 如果未指定,Azure 密钥保管库将使用默认值P_256。 和 expiresnotBefore 值是可选的。 enabled如果未指定字段,则由 Azure 密钥保管库 设置为 true
。
指示 keyType 要创建的密钥的类型 KeyVaultKey 。 可能的值包括: EC 和 EC_HSM。
示例代码
使用 P_384 Web 键曲线创建新的 KeyVaultKey 。 密钥在一天内激活,一年后过期。 输出 的详细信息 KeyVaultKey。
CreateEcKeyOptions createEcKeyOptions = new CreateEcKeyOptions("keyName")
.setCurveName(KeyCurveName.P_384)
.setNotBefore(OffsetDateTime.now().plusDays(1))
.setExpiresOn(OffsetDateTime.now().plusYears(1));
Response<KeyVaultKey> createEcKeyResponse =
keyClient.createEcKeyWithResponse(createEcKeyOptions, new Context("key1", "value1"));
System.out.printf("Created key with name: %s and: id %s%n", createEcKeyResponse.getValue().getName(),
createEcKeyResponse.getValue().getId());
Parameters:
Returns:
createKey
public KeyVaultKey createKey(CreateKeyOptions createKeyOptions)
创建新的并将其 KeyVaultKey 存储在密钥保管库中。 创建密钥操作可用于在 Azure 密钥保管库中创建任何KeyType项。 KeyVaultKey如果已存在具有所提供的名称的 ,则 Azure 密钥保管库会创建 新版本。KeyVaultKey 它需要 keys/create
权限。
CreateKeyOptions 参数是必需的。 getExpiresOn()和 getNotBefore() 值是可选的。 如果未指定,则 isEnabled() Azure 密钥保管库 将 enabled} 字段设置为 true
。
指示 getKeyType() 要创建的 的类型 KeyVaultKey 。 可能的值包括:EC、、EC_HSM、RSARSA_HSM、OCT、 和 OCT_HSM。
示例代码
创建一个在一天内激活并在一年后过期的新 KeyVaultKey 。 输出 的详细信息 KeyVaultKey。
CreateKeyOptions createKeyOptions = new CreateKeyOptions("keyName", KeyType.RSA)
.setNotBefore(OffsetDateTime.now().plusDays(1))
.setExpiresOn(OffsetDateTime.now().plusYears(1));
KeyVaultKey optionsKey = keyClient.createKey(createKeyOptions);
System.out.printf("Created key with name: %s and id: %s%n", optionsKey.getName(), optionsKey.getId());
Parameters:
Returns:
createKey
public KeyVaultKey createKey(String name, KeyType keyType)
创建新的并将其 KeyVaultKey 存储在密钥保管库中。 创建密钥操作可用于在 Azure 密钥保管库中创建任何KeyType项。 KeyVaultKey如果已存在具有所提供的名称的 ,则 Azure 密钥保管库会创建 新版本。KeyVaultKey 它需要 keys/create
权限。
指示 KeyType 要创建的 的类型 KeyVaultKey 。 可能的值包括:EC、、EC_HSM、RSARSA_HSM、OCT、 和 OCT_HSM。
示例代码
创建一个新的 KeyVaultKey。 输出 的详细信息 KeyVaultKey。
KeyVaultKey key = keyClient.createKey("keyName", KeyType.EC);
System.out.printf("Created key with name: %s and id: %s%n", key.getName(), key.getId());
Parameters:
Returns:
createKeyWithResponse
public Response
创建新的并将其 KeyVaultKey 存储在密钥保管库中。 创建密钥操作可用于在 Azure 密钥保管库中创建任何KeyType项。 KeyVaultKey如果已存在具有所提供的名称的 ,则 Azure 密钥保管库会创建 新版本。KeyVaultKey 它需要 keys/create
权限。
CreateKeyOptions 参数是必需的。 getExpiresOn()和 getNotBefore() 值是可选的。 isEnabled()如果未指定,则 Azure 密钥保管库 将字段设置为 true
。
指示 getKeyType() 要创建的 的类型 KeyVaultKey 。 可能的值包括:EC、、EC_HSM、RSARSA_HSM、OCT、 和 OCT_HSM。
示例代码
创建一个在一天内激活并在一年后过期的新 KeyVaultKey 。 输出 的详细信息 KeyVaultKey。
CreateKeyOptions createKeyOptions = new CreateKeyOptions("keyName", KeyType.RSA)
.setNotBefore(OffsetDateTime.now().plusDays(1))
.setExpiresOn(OffsetDateTime.now().plusYears(1));
Response<KeyVaultKey> createKeyResponse =
keyClient.createKeyWithResponse(createKeyOptions, new Context("key1", "value1"));
System.out.printf("Created key with name: %s and: id %s%n", createKeyResponse.getValue().getName(),
createKeyResponse.getValue().getId());
Parameters:
Returns:
createOctKey
public KeyVaultKey createOctKey(CreateOctKeyOptions createOctKeyOptions)
在密钥保管库中创建并存储新的 KeyVaultKey 。 KeyVaultKey如果已存在具有所提供的名称的 ,Azure 密钥保管库会创建密钥的新版本。 此操作需要 keys/create
权限。
CreateOctKeyOptions 参数是必需的。 expires和 notBefore 值是可选的。 enabled如果未指定,则 Azure 密钥保管库 将字段设置为 true
。
指示 keyType 要创建的密钥的类型 KeyVaultKey 。 可能的值包括: OCT 和 OCT_HSM。
示例代码
创建一个新的 KeyVaultKey。 在 KeyVaultKey 一天内激活,并在一年后过期。 输出新 KeyVaultKey的详细信息。
CreateOctKeyOptions createOctKeyOptions = new CreateOctKeyOptions("keyName")
.setNotBefore(OffsetDateTime.now().plusDays(1))
.setExpiresOn(OffsetDateTime.now().plusYears(1));
KeyVaultKey octKey = keyClient.createOctKey(createOctKeyOptions);
System.out.printf("Created key with name: %s and id: %s%n", octKey.getName(), octKey.getId());
Parameters:
Returns:
createOctKeyWithResponse
public Response
在密钥保管库中创建并存储新的 KeyVaultKey 。 KeyVaultKey如果已存在具有所提供的名称的 ,Azure 密钥保管库会创建密钥的新版本。 此操作需要 keys/create
权限。
CreateOctKeyOptions 参数是必需的。 expires和 notBefore 值是可选的。 enabled如果未指定,则 Azure 密钥保管库 将字段设置为 true
。
指示 keyType 要创建的密钥的类型 KeyVaultKey 。 可能的值包括: OCT 和 OCT_HSM。
示例代码
创建一个新的 KeyVaultKey。 在 KeyVaultKey 一天内激活,并在一年后过期。 输出新 KeyVaultKey的详细信息。
CreateOctKeyOptions createOctKeyOptions = new CreateOctKeyOptions("keyName")
.setNotBefore(OffsetDateTime.now().plusDays(1))
.setExpiresOn(OffsetDateTime.now().plusYears(1));
Response<KeyVaultKey> createOctKeyResponse =
keyClient.createOctKeyWithResponse(createOctKeyOptions, new Context("key1", "value1"));
System.out.printf("Created key with name: %s and: id %s%n", createOctKeyResponse.getValue().getName(),
createOctKeyResponse.getValue().getId());
Parameters:
Returns:
createRsaKey
public KeyVaultKey createRsaKey(CreateRsaKeyOptions createRsaKeyOptions)
创建新的并将其 KeyVaultKey 存储在密钥保管库中。 创建 RSA 密钥操作可用于在 Azure 密钥保管库中创建任何 RSA 密钥类型。 KeyVaultKey如果已存在具有所提供的名称的 ,则 Azure 密钥保管库会创建 新版本。KeyVaultKey 它需要 keys/create
权限。
CreateRsaKeyOptions 参数是必需的。 getKeySize()可以选择指定 。 expires和 notBefore 值是可选的。 enabled如果未指定,则 Azure 密钥保管库 将字段设置为 true
。
指示 keyType 要创建的 的类型 KeyVaultKey 。 可能的值包括: RSA 和 RSA_HSM。
示例代码
创建一个大小为 2048 的新 KeyVaultKey ,该大小在一天内激活,并在一年内过期。 输出 的详细信息 KeyVaultKey。
CreateRsaKeyOptions createRsaKeyOptions = new CreateRsaKeyOptions("keyName")
.setKeySize(2048)
.setNotBefore(OffsetDateTime.now().plusDays(1))
.setExpiresOn(OffsetDateTime.now().plusYears(1));
KeyVaultKey rsaKey = keyClient.createRsaKey(createRsaKeyOptions);
System.out.printf("Created key with name: %s and id: %s%n", rsaKey.getName(), rsaKey.getId());
Parameters:
Returns:
createRsaKeyWithResponse
public Response
创建新的并将其 KeyVaultKey 存储在密钥保管库中。 创建 RSA 密钥操作可用于在 Azure 密钥保管库中创建任何 RSA 密钥类型。 KeyVaultKey如果已存在具有所提供的名称的 ,则 Azure 密钥保管库会创建 新版本。KeyVaultKey 它需要 keys/create
权限。
CreateRsaKeyOptions 参数是必需的。 getKeySize()可以选择指定 。 expires和 notBefore 值是可选的。 enabled如果未指定,则 Azure 密钥保管库 将字段设置为 true
。
指示 keyType 要创建的 的类型 KeyVaultKey 。 可能的值包括: RSA 和 RSA_HSM。
示例代码
创建一个大小为 2048 的新 KeyVaultKey ,该大小在一天内激活,并在一年内过期。 输出 的详细信息 KeyVaultKey。
CreateRsaKeyOptions createRsaKeyOptions = new CreateRsaKeyOptions("keyName")
.setKeySize(2048)
.setNotBefore(OffsetDateTime.now().plusDays(1))
.setExpiresOn(OffsetDateTime.now().plusYears(1));
Response<KeyVaultKey> createRsaKeyResponse =
keyClient.createRsaKeyWithResponse(createRsaKeyOptions, new Context("key1", "value1"));
System.out.printf("Created key with name: %s and: id %s%n", createRsaKeyResponse.getValue().getName(),
createRsaKeyResponse.getValue().getId());
Parameters:
Returns:
getCryptographyClient
public CryptographyClient getCryptographyClient(String keyName)
CryptographyClient为给定密钥的最新版本创建 。
若要确保在执行 和 等Decrypt
Unwrap
Verify
操作时的正确行为,建议分别为用于相应反运算的特定密钥版本使用CryptographyClient创建的 :Encrypt
、 Wrap
或 。Sign
可以通过 或 提供密钥版本getCryptographyClient(String keyName, String keyVersion),方法是在生成客户端之前确保它包含在传递给 keyIdentifier(String keyId) 的 中keyIdentifier
。
Parameters:
Returns:
getCryptographyClient
public CryptographyClient getCryptographyClient(String keyName, String keyVersion)
CryptographyClient为给定密钥版本创建 。
Parameters:
Returns:
getDeletedKey
public DeletedKey getDeletedKey(String name)
获取 的公共部分 KeyVaultKey。 获取删除密钥操作适用于已启用软删除的保管库。 此操作需要 keys/get
权限。
示例代码
KeyVaultKey从启用软删除的密钥保管库中获取 。 输出 的详细信息 KeyVaultKey。
DeletedKey deletedKey = keyClient.getDeletedKey("keyName");
System.out.printf("Deleted key's recovery id: %s%n", deletedKey.getRecoveryId());
Parameters:
Returns:
getDeletedKeyWithResponse
public Response
获取 的公共部分 KeyVaultKey。 获取删除密钥操作适用于已启用软删除的保管库。 此操作需要 keys/get
权限。
示例代码
KeyVaultKey从启用软删除的密钥保管库中获取 。 输出 中Response<T>返回的 KeyVaultKey 的详细信息。
Response<DeletedKey> deletedKeyResponse =
keyClient.getDeletedKeyWithResponse("keyName", new Context("key1", "value1"));
System.out.printf("Deleted key with recovery id: %s%n", deletedKeyResponse.getValue().getRecoveryId());
Parameters:
Returns:
getKey
public KeyVaultKey getKey(String name)
获取指定 KeyVaultKey 和密钥版本的公共部分。 获取密钥操作适用于所有 KeyType 操作,并且需要 keys/get
权限。
示例代码
获取密钥保管库中 的特定版本 KeyVaultKey 。 输出 的详细信息 KeyVaultKey。
KeyVaultKey keyWithVersionValue = keyClient.getKey("keyName");
System.out.printf("Retrieved key with name: %s and: id %s%n", keyWithVersionValue.getName(),
keyWithVersionValue.getId());
Parameters:
Returns:
getKey
public KeyVaultKey getKey(String name, String version)
获取指定 KeyVaultKey 和密钥版本的公共部分。 获取密钥操作适用于所有 KeyType 操作,并且需要 keys/get
权限。
示例代码
获取密钥保管库中 的特定版本 KeyVaultKey 。 输出 的详细信息 KeyVaultKey。
String keyVersion = "6A385B124DEF4096AF1361A85B16C204";
KeyVaultKey keyWithVersion = keyClient.getKey("keyName", keyVersion);
System.out.printf("Retrieved key with name: %s and: id %s%n", keyWithVersion.getName(),
keyWithVersion.getId());
Parameters:
Returns:
getKeyRotationPolicy
public KeyRotationPolicy getKeyRotationPolicy(String keyName)
KeyRotationPolicy获取具有提供的名称的 KeyVaultKey 。 此操作需要 keys/get
权限。
示例代码
检索 KeyRotationPolicy 给定 KeyVaultKey的 。 KeyRotationPolicy输出详细信息。
KeyRotationPolicy keyRotationPolicy = keyClient.getKeyRotationPolicy("keyName");
System.out.printf("Retrieved key rotation policy with id: %s%n", keyRotationPolicy.getId());
Parameters:
Returns:
getKeyRotationPolicyWithResponse
public Response
KeyRotationPolicy获取具有提供的名称的 KeyVaultKey 。 此操作需要 keys/get
权限。
示例代码
检索 KeyRotationPolicy 给定 KeyVaultKey的 。 Response<T>输出 和 KeyRotationPolicy 详细信息。
Response<KeyRotationPolicy> keyRotationPolicyResponse =
keyClient.getKeyRotationPolicyWithResponse("keyName", new Context("key1", "value1"));
System.out.printf("Response received successfully with status code: %d. Retrieved key rotation policy"
+ "with id: %s%n", keyRotationPolicyResponse.getStatusCode(), keyRotationPolicyResponse.getValue().getId());
Parameters:
Returns:
getKeyWithResponse
public Response
获取指定 KeyVaultKey 和密钥版本的公共部分。 获取密钥操作适用于所有 KeyType 操作,并且需要 keys/get
权限。
示例代码
获取密钥保管库中 的特定版本 KeyVaultKey 。 输出 的详细信息 KeyVaultKey。
String keyVersion = "6A385B124DEF4096AF1361A85B16C204";
Response<KeyVaultKey> getKeyResponse =
keyClient.getKeyWithResponse("keyName", keyVersion, new Context("key1", "value1"));
System.out.printf("Retrieved key with name: %s and: id %s%n", getKeyResponse.getValue().getName(),
getKeyResponse.getValue().getId());
Parameters:
Returns:
getRandomBytes
public byte[] getRandomBytes(int count)
从托管 HSM 获取包含随机值的所请求字节数。
示例代码
从托管 HSM 获取包含随机值的字节数。 以 base64Url 格式打印检索到的字节。
int amount = 16;
byte[] randomBytes = keyClient.getRandomBytes(amount);
System.out.printf("Retrieved %d random bytes: %s%n", amount, Arrays.toString(randomBytes));
Parameters:
Returns:
getRandomBytesWithResponse
public Response
从托管 HSM 获取包含随机值的请求字节数。
示例代码
从托管 HSM 获取包含随机值的字节数。 Response<T>以 base64Url 格式输出详细信息和检索的字节。
int amountOfBytes = 16;
Response<byte[]> response =
keyClient.getRandomBytesWithResponse(amountOfBytes, new Context("key1", "value1"));
System.out.printf("Response received successfully with status code: %d. Retrieved %d random bytes: %s%n",
response.getStatusCode(), amountOfBytes, Arrays.toString(response.getValue()));
Parameters:
Returns:
getVaultUrl
public String getVaultUrl()
获取服务请求发送到的保管库终结点 URL。
Returns:
importKey
public KeyVaultKey importKey(ImportKeyOptions importKeyOptions)
导入外部创建的 JsonWebKey ,并将其存储在密钥保管库中。 导入密钥操作可用于将任何KeyType项导入 Azure 密钥保管库。 KeyVaultKey如果已存在具有所提供的名称的 ,则 Azure 密钥保管库 会创建 新版本。KeyVaultKey 此操作需要 keys/import
权限。
ImportKeyOptions 是必需的,并且其字段 name 不能 getKey() 为 null
。 中的 expireskeyImportOptions
和 notBefore 值是可选的。 如果未指定,则不为字段设置任何值。 enabled如果未指定字段true
isHardwareProtected(),则 Azure 密钥保管库 将 字段设置为 ,并将 字段设置为 false
。
示例代码
将新的 KeyVaultKey 导入密钥保管库。 输出 的详细信息 KeyVaultKey。
ImportKeyOptions options = new ImportKeyOptions("keyName", jsonWebKeyToImport)
.setHardwareProtected(false);
KeyVaultKey importedKey = keyClient.importKey(options);
System.out.printf("Imported key with name: %s and id: %s%n", importedKey.getName(),
importedKey.getId());
Parameters:
Returns:
importKey
public KeyVaultKey importKey(String name, JsonWebKey keyMaterial)
导入外部创建的 JsonWebKey ,并将其存储在密钥保管库中。 导入密钥操作可用于将任何KeyType项导入 Azure 密钥保管库。 KeyVaultKey如果已存在具有所提供的名称的 ,则 Azure 密钥保管库 会创建 新版本。KeyVaultKey 此操作需要 keys/import
权限。
示例代码
将新的 KeyVaultKey 导入密钥保管库。 输出 的详细信息 KeyVaultKey。
KeyVaultKey key = keyClient.importKey("keyName", jsonWebKeyToImport);
System.out.printf("Imported key with name: %s and id: %s%n", key.getName(), key.getId());
Parameters:
Returns:
importKeyWithResponse
public Response
导入外部创建的 JsonWebKey ,并将其存储在密钥保管库中。 导入密钥操作可用于将任何KeyType项导入 Azure 密钥保管库。 KeyVaultKey如果已存在具有所提供的名称的 ,则 Azure 密钥保管库 会创建 新版本。KeyVaultKey 此操作需要 keys/import
权限。
ImportKeyOptions 是必需的,并且其字段 name 不能 getKey() 为 null
。 中的 expireskeyImportOptions
和 notBefore 值是可选的。 如果未指定,则不为字段设置任何值。 enabled如果未指定字段true
isHardwareProtected(),则 Azure 密钥保管库 将 字段设置为 ,并将 字段设置为 false
。
示例代码
将新的 KeyVaultKey 导入密钥保管库。 输出 的详细信息 KeyVaultKey。
ImportKeyOptions importKeyOptions = new ImportKeyOptions("keyName", jsonWebKeyToImport)
.setHardwareProtected(false);
Response<KeyVaultKey> response =
keyClient.importKeyWithResponse(importKeyOptions, new Context("key1", "value1"));
System.out.printf("Imported key with name: %s and id: %s%n", response.getValue().getName(),
response.getValue().getId());
Parameters:
Returns:
listDeletedKeys
public PagedIterable
密钥保管库的列表 DeletedKey 。 DeletedKey作为包含 的公共部分的结构DeletedKey检索JsonWebKey。 获取已删除密钥操作适用于为软删除启用的保管库。 此操作需要 keys/list
权限。
示例代码
DeletedKey列出密钥保管库中的 ,并为每个 DeletedKey 输出其恢复 ID。
for (DeletedKey deletedKey : keyClient.listDeletedKeys()) {
System.out.printf("Deleted key's recovery id:%s%n", deletedKey.getRecoveryId());
}
按页循环访问已删除密钥的代码示例
循环访问 DeletedKey 密钥保管库中的 by 页,并为每个已删除的密钥输出其恢复 ID。
keyClient.listDeletedKeys().iterableByPage().forEach(pagedResponse -> {
System.out.printf("Got response details. Url: %s. Status code: %d.%n",
pagedResponse.getRequest().getUrl(), pagedResponse.getStatusCode());
pagedResponse.getElements().forEach(deletedKey ->
System.out.printf("Deleted key's recovery id:%s%n", deletedKey.getRecoveryId()));
});
Returns:
listDeletedKeys
public PagedIterable
密钥保管库的列表 DeletedKey 。 DeletedKey作为包含 的公共部分的结构DeletedKey检索JsonWebKey。 获取已删除密钥操作适用于为软删除启用的保管库。 此操作需要 keys/list
权限。
示例代码
DeletedKey列出密钥保管库中的 ,并为每个 DeletedKey 输出其恢复 ID。
for (DeletedKey deletedKey : keyClient.listDeletedKeys(new Context("key1", "value1"))) {
System.out.printf("Deleted key's recovery id:%s%n", deletedKey.getRecoveryId());
}
按页循环访问已删除密钥的代码示例
循环访问 DeletedKey 密钥保管库中的 by 页,并为每个已删除的密钥输出其恢复 ID。
keyClient.listDeletedKeys().iterableByPage().forEach(pagedResponse -> {
System.out.printf("Got response details. Url: %s. Status code: %d.%n",
pagedResponse.getRequest().getUrl(), pagedResponse.getStatusCode());
pagedResponse.getElements().forEach(deletedKey ->
System.out.printf("Deleted key's recovery id:%s%n", deletedKey.getRecoveryId()));
});
Parameters:
Returns:
listPropertiesOfKeyVersions
public PagedIterable
列出指定 KeyVaultKey的所有版本。 通量中的单个键响应由 KeyProperties 表示为仅在响应中提供密钥标识符、属性和标记。 响应中未提供密钥材料值。 此操作需要 keys/list
权限。
可以从此信息中获取 KeyVaultKey 每个版本的密钥材料。 循环访问 KeyProperties 并调用 getKey(String name, String version)。 这将返回 KeyVaultKey ,其中包含指定版本的密钥材料。
for (KeyProperties keyProperties : keyClient.listPropertiesOfKeyVersions("keyName")) {
KeyVaultKey key = keyClient.getKey(keyProperties.getName(), keyProperties.getVersion());
System.out.printf("Retrieved key version: %s with name: %s and type: %s%n",
key.getProperties().getVersion(), key.getName(), key.getKeyType());
}
按页循环访问关键版本的代码示例
可以从此信息中获取 KeyVaultKey 每个版本的密钥材料。 按页循环访问所有 KeyProperties 并调用 getKey(String name, String version)。 这将返回 KeyVaultKey ,其中包含指定版本的密钥材料。
keyClient.listPropertiesOfKeyVersions("keyName").iterableByPage().forEach(pagedResponse -> {
System.out.printf("Got response details. Url: %s. Status code: %d.%n",
pagedResponse.getRequest().getUrl(), pagedResponse.getStatusCode());
pagedResponse.getElements().forEach(keyProperties ->
System.out.printf("Key name: %s. Key version: %s.%n", keyProperties.getName(),
keyProperties.getVersion()));
});
Parameters:
Returns:
listPropertiesOfKeyVersions
public PagedIterable
列出指定 KeyVaultKey的所有版本。 通量中的单个键响应由 KeyProperties 表示为仅在响应中提供密钥标识符、属性和标记。 响应中未提供密钥材料值。 此操作需要 keys/list
权限。
可以从此信息中获取 KeyVaultKey 每个版本的密钥材料。 循环访问 KeyProperties 并调用 getKey(String name, String version)。 这将返回 KeyVaultKey ,其中包含指定版本的密钥材料。
for (KeyProperties keyProperties : keyClient.listPropertiesOfKeyVersions("keyName", new Context("key1", "value1"))) {
KeyVaultKey key = keyClient.getKey(keyProperties.getName(), keyProperties.getVersion());
System.out.printf("Retrieved key version: %s with name: %s and type: %s%n",
key.getProperties().getVersion(), key.getName(), key.getKeyType());
}
按页循环访问关键版本的代码示例
可以从此信息中获取 KeyVaultKey 每个版本的密钥材料。 按页循环访问所有 KeyProperties 并调用 getKey(String name, String version)。 这将返回包含 KeyVaultKey 指定版本的密钥材料的 。
keyClient.listPropertiesOfKeyVersions("keyName").iterableByPage().forEach(pagedResponse -> {
System.out.printf("Got response details. Url: %s. Status code: %d.%n",
pagedResponse.getRequest().getUrl(), pagedResponse.getStatusCode());
pagedResponse.getElements().forEach(keyProperties ->
System.out.printf("Key name: %s. Key version: %s.%n", keyProperties.getName(),
keyProperties.getVersion()));
});
Parameters:
Returns:
listPropertiesOfKeys
public PagedIterable
密钥保管库中的列表 KeyVaultKey 。 检索 KeyVaultKey 密钥保管库中作为 JsonWebKey 结构的列表,这些结构包含存储 KeyVaultKey的公共部分。 列表操作适用于所有 KeyType 项,列表中的单个 KeyVaultKey 响应由 KeyProperties 表示,因为响应中仅提供密钥标识符、属性和标记。 响应中未列出密钥材料和各个密钥版本。 此操作需要 keys/list
权限。
示例代码
可以从此信息获取 KeyVaultKey 关键材料。 循环访问 并 KeyProperties 调用 getKey(String name, String version)。 这将返回 , KeyVaultKey 其中包含其最新版本的密钥材料。
for (KeyProperties keyProperties : keyClient.listPropertiesOfKeys()) {
KeyVaultKey key = keyClient.getKey(keyProperties.getName(), keyProperties.getVersion());
System.out.printf("Retrieved key with name: %s and type: %s%n", key.getName(), key.getKeyType());
}
按页循环访问密钥
可以从此信息获取 KeyVaultKey 关键材料。 按页循环访问所有 KeyProperties 并调用 getKey(String name, String version)。 这将返回 , KeyVaultKey 其中包含其最新版本的密钥材料。
keyClient.listPropertiesOfKeys().iterableByPage().forEach(pagedResponse -> {
System.out.printf("Got response details. Url: %s. Status code: %d.%n",
pagedResponse.getRequest().getUrl(), pagedResponse.getStatusCode());
pagedResponse.getElements().forEach(keyProperties -> {
KeyVaultKey key = keyClient.getKey(keyProperties.getName(), keyProperties.getVersion());
System.out.printf("Retrieved key with name: %s and type: %s%n", key.getName(),
key.getKeyType());
});
});
Returns:
listPropertiesOfKeys
public PagedIterable
密钥保管库中的列表 KeyVaultKey 。 检索 KeyVaultKey 密钥保管库中作为 JsonWebKey 结构的列表,这些结构包含存储 KeyVaultKey的公共部分。 列表操作适用于所有 KeyType 项,列表中的单个 KeyVaultKey 响应由 KeyProperties 表示,因为响应中仅提供密钥标识符、属性和标记。 响应中未列出密钥材料和各个密钥版本。 此操作需要 keys/list
权限。
示例代码
可以从此信息获取 KeyVaultKey 关键材料。 循环访问 并 KeyProperties 调用 getKey(String name, String version)。 这将返回 , KeyVaultKey 其中包含其最新版本的密钥材料。
for (KeyProperties keyProperties : keyClient.listPropertiesOfKeys(new Context("key1", "value1"))) {
KeyVaultKey key = keyClient.getKey(keyProperties.getName(), keyProperties.getVersion());
System.out.printf("Retrieved key with name: %s and type: %s%n", key.getName(),
key.getKeyType());
}
按页迭代
可以从此信息获取 KeyVaultKey 关键材料。 按页循环访问所有 KeyProperties 并调用 getKey(String name, String version)。 这将返回 , KeyVaultKey 其中包含其最新版本的密钥材料。
keyClient.listPropertiesOfKeys().iterableByPage().forEach(pagedResponse -> {
System.out.printf("Got response details. Url: %s. Status code: %d.%n",
pagedResponse.getRequest().getUrl(), pagedResponse.getStatusCode());
pagedResponse.getElements().forEach(keyProperties -> {
KeyVaultKey key = keyClient.getKey(keyProperties.getName(), keyProperties.getVersion());
System.out.printf("Retrieved key with name: %s and type: %s%n", key.getName(),
key.getKeyType());
});
});
Parameters:
Returns:
purgeDeletedKey
public void purgeDeletedKey(String name)
永久删除指定的 KeyVaultKey ,且无法恢复。 清除已删除的密钥操作适用于已启用软删除的保管库。 此操作需要 keys/purge
权限。
示例代码
KeyVaultKey从启用软删除的密钥保管库中清除 。
keyClient.purgeDeletedKey("deletedKeyName");
Parameters:
purgeDeletedKeyWithResponse
public Response
永久删除指定的 KeyVaultKey ,且无法恢复。 清除已删除的密钥操作适用于已启用软删除的保管库。 此操作需要 keys/purge
权限。
示例代码
KeyVaultKey从启用软删除的密钥保管库中清除 。
Response<Void> purgeDeletedKeyResponse = keyClient.purgeDeletedKeyWithResponse("deletedKeyName",
new Context("key1", "value1"));
System.out.printf("Purge response status code: %d%n", purgeDeletedKeyResponse.getStatusCode());
Parameters:
Returns:
releaseKey
public ReleaseKeyResult releaseKey(String name, String targetAttestationToken)
发布最新版本。KeyVaultKey
KeyVaultKey必须是可导出的。 此操作需要 keys/release
权限。
示例代码
释放 KeyVaultKey。 输出包含释放密钥的已签名对象。
String targetAttestationToken = "someAttestationToken";
ReleaseKeyResult releaseKeyResult = keyClient.releaseKey("keyName", targetAttestationToken);
System.out.printf("Signed object containing released key: %s%n", releaseKeyResult);
Parameters:
Returns:
releaseKey
public ReleaseKeyResult releaseKey(String name, String version, String targetAttestationToken)
发布 特定版本的 KeyVaultKey。
KeyVaultKey必须是可导出的。 此操作需要 keys/release
权限。
示例代码
释放 KeyVaultKey。 输出包含释放密钥的已签名对象。
String myKeyVersion = "6A385B124DEF4096AF1361A85B16C204";
String myTargetAttestationToken = "someAttestationToken";
ReleaseKeyResult releaseKeyVersionResult =
keyClient.releaseKey("keyName", myKeyVersion, myTargetAttestationToken);
System.out.printf("Signed object containing released key: %s%n", releaseKeyVersionResult);
Parameters:
null
,则此调用等效于调用 releaseKey(String name, String targetAttestationToken),并发布最新的密钥版本。
Returns:
releaseKeyWithResponse
public Response
释放 KeyVaultKey。
密钥必须是可导出的。 此操作需要 keys/release
权限。
示例代码
释放 KeyVaultKey。 Response<T>输出详细信息和包含发布密钥的签名对象。
String releaseKeyVersion = "6A385B124DEF4096AF1361A85B16C204";
String someTargetAttestationToken = "someAttestationToken";
ReleaseKeyOptions releaseKeyOptions = new ReleaseKeyOptions()
.setAlgorithm(KeyExportEncryptionAlgorithm.RSA_AES_KEY_WRAP_256)
.setNonce("someNonce");
Response<ReleaseKeyResult> releaseKeyResultResponse =
keyClient.releaseKeyWithResponse("keyName", releaseKeyVersion, someTargetAttestationToken,
releaseKeyOptions, new Context("key1", "value1"));
System.out.printf("Response received successfully with status code: %d. Signed object containing"
+ "released key: %s%n", releaseKeyResultResponse.getStatusCode(),
releaseKeyResultResponse.getValue().getValue());
Parameters:
null
,则此调用等效于调用 releaseKey(String name, String targetAttestationToken),并发布最新的密钥版本。
Returns:
restoreKeyBackup
public KeyVaultKey restoreKeyBackup(byte[] backup)
将备份 KeyVaultKey 的 还原到保管库。 将以前备份KeyVaultKey的 导入 Azure 密钥保管库,还原 KeyVaultKey其密钥标识符、属性和访问控制策略。 还原操作可用于导入以前备份的 KeyVaultKey。 无法还原 的 KeyVaultKey 单个版本。 使用 KeyVaultKey 与备份时相同的密钥名称完全还原 。 如果密钥名称在目标密钥保管库中不可用,则将拒绝还原操作。 虽然还原期间会保留密钥名称,但如果 还原到其他保管库, KeyVaultKey 则最终密钥标识符将更改。 还原操作会还原所有版本,并保留版本标识符。 还原操作受安全约束:目标密钥保管库必须由源密钥保管库所在的同一 Microsoft Azure 订阅拥有。 用户必须在目标密钥保管库中具有 restore
权限。 此操作需要 keys/restore
权限。
示例代码
KeyVaultKey从其备份还原密钥保管库中的 。
将密钥备份字节数组传递给还原操作。
byte[] keyBackupByteArray = {};
KeyVaultKey keyResponse = keyClient.restoreKeyBackup(keyBackupByteArray);
System.out.printf("Restored key with name: %s and: id %s%n", keyResponse.getName(), keyResponse.getId());
Parameters:
Returns:
restoreKeyBackupWithResponse
public Response
将备份 KeyVaultKey 还原到保管库。 将以前备份KeyVaultKey的 导入到 Azure 密钥保管库,还原 KeyVaultKey、其密钥标识符、属性和访问控制策略。 还原操作可用于导入以前备份的 KeyVaultKey。 无法还原 的各个版本 KeyVaultKey 。 KeyVaultKey使用与备份时相同的密钥名称完全还原。 如果密钥名称在目标密钥保管库中不可用,还原操作将被拒绝。 虽然在还原期间会保留密钥名称,但如果 还原到其他保管库, KeyVaultKey 则最终密钥标识符将更改。 还原操作会还原所有版本,并保留版本标识符。 还原操作受安全约束:目标密钥保管库必须由与源密钥保管库相同的 Microsoft Azure 订阅拥有。 用户必须在目标密钥保管库中具有 restore
权限。 此操作需要 keys/restore
权限。
示例代码
KeyVaultKey从其备份还原密钥保管库中的 。 输出 中Response<T>返回的 KeyVaultKey 的详细信息。
将密钥备份字节数组传递给还原操作。
Response<KeyVaultKey> keyResponse = keyClient.restoreKeyBackupWithResponse(keyBackupByteArray,
new Context("key1", "value1"));
System.out.printf("Restored key with name: %s and: id %s%n",
keyResponse.getValue().getName(), keyResponse.getValue().getId());
Parameters:
Returns:
rotateKey
public KeyVaultKey rotateKey(String name)
旋转 KeyVaultKey。 轮换密钥操作将基于 KeyRotationPolicy执行此操作。 此操作需要 keys/rotate
权限。
示例代码
旋转 KeyVaultKey。 KeyVaultKey输出详细信息。
KeyVaultKey key = keyClient.rotateKey("keyName");
System.out.printf("Rotated key with name: %s and version:%s%n", key.getName(),
key.getProperties().getVersion());
Parameters:
Returns:
rotateKeyWithResponse
public Response
旋转 KeyVaultKey。 轮换密钥操作将基于 KeyRotationPolicy执行此操作。 此操作需要 keys/rotate
权限。
示例代码
旋转 KeyVaultKey。 Response<T>输出 和 KeyVaultKey 详细信息。
Response<KeyVaultKey> keyResponse = keyClient.rotateKeyWithResponse("keyName", new Context("key1", "value1"));
System.out.printf("Response received successfully with status code: %d. Rotated key with name: %s and"
+ "version: %s%n", keyResponse.getStatusCode(), keyResponse.getValue().getName(),
keyResponse.getValue().getProperties().getVersion());
Parameters:
Returns:
updateKeyProperties
public KeyVaultKey updateKeyProperties(KeyProperties keyProperties, KeyOperation[] keyOperations)
汇报 KeyProperties 与KeyOperation指定的 KeyVaultKey关联,但不是密钥保管库中指定 KeyVaultKey 的加密密钥材料。 对现有存储KeyVaultKey的指定KeyProperties和KeyProperties请求中未指定的更新操作将保持不变。 无法更改自身的加密密钥材料 KeyVaultKey 。 此操作需要 keys/set
权限。
示例代码
获取最新版本的 KeyVaultKey,更改其到期时间,并 KeyOperation 更新 KeyVaultKey 密钥保管库中的 。
KeyVaultKey key = keyClient.getKey("keyName");
key.getProperties().setExpiresOn(OffsetDateTime.now().plusDays(60));
KeyVaultKey updatedKey = keyClient.updateKeyProperties(key.getProperties(), KeyOperation.ENCRYPT,
KeyOperation.DECRYPT);
System.out.printf("Key is updated with name %s and id %s %n", updatedKey.getName(), updatedKey.getId());
Parameters:
Returns:
updateKeyPropertiesWithResponse
public Response
汇报 KeyProperties 与KeyOperation指定的 KeyVaultKey关联,但不是密钥保管库中指定 KeyVaultKey 的加密密钥材料。 对现有存储KeyVaultKey的指定KeyProperties和KeyProperties请求中未指定的更新操作将保持不变。 无法更改自身的加密密钥材料 KeyVaultKey 。 此操作需要 keys/set
权限。
示例代码
获取最新版本的 KeyVaultKey,更改其到期时间,并 KeyOperation 更新 KeyVaultKey 密钥保管库中的 。
KeyVaultKey key = keyClient.getKey("keyName");
key.getProperties().setExpiresOn(OffsetDateTime.now().plusDays(60));
Response<KeyVaultKey> updateKeyResponse =
keyClient.updateKeyPropertiesWithResponse(key.getProperties(), new Context("key1", "value1"),
KeyOperation.ENCRYPT, KeyOperation.DECRYPT);
System.out.printf("Updated key with name: %s and id: %s%n", updateKeyResponse.getValue().getName(),
updateKeyResponse.getValue().getId());
Parameters:
Returns:
updateKeyRotationPolicy
public KeyRotationPolicy updateKeyRotationPolicy(String keyName, KeyRotationPolicy keyRotationPolicy)
使用提供的名称汇报 KeyRotationPolicy 的 KeyVaultKey 。 此操作需要 keys/update
权限。
示例代码
汇报KeyRotationPolicy给定 KeyVaultKey的 。 KeyRotationPolicy输出详细信息。
List<KeyRotationLifetimeAction> lifetimeActions = new ArrayList<>();
KeyRotationLifetimeAction rotateLifetimeAction = new KeyRotationLifetimeAction(KeyRotationPolicyAction.ROTATE)
.setTimeAfterCreate("P90D");
KeyRotationLifetimeAction notifyLifetimeAction = new KeyRotationLifetimeAction(KeyRotationPolicyAction.NOTIFY)
.setTimeBeforeExpiry("P45D");
lifetimeActions.add(rotateLifetimeAction);
lifetimeActions.add(notifyLifetimeAction);
KeyRotationPolicy keyRotationPolicy = new KeyRotationPolicy()
.setLifetimeActions(lifetimeActions)
.setExpiresIn("P6M");
KeyRotationPolicy updatedPolicy =
keyClient.updateKeyRotationPolicy("keyName", keyRotationPolicy);
System.out.printf("Updated key rotation policy with id: %s%n", updatedPolicy.getId());
Parameters:
Returns:
updateKeyRotationPolicyWithResponse
public Response
使用提供的名称汇报KeyRotationPolicy密钥的 。 此操作需要 keys/update
权限。
示例代码
汇报KeyRotationPolicy给定 KeyVaultKey的 。 Response<T>输出 和 KeyRotationPolicy 详细信息。
List<KeyRotationLifetimeAction> myLifetimeActions = new ArrayList<>();
KeyRotationLifetimeAction myRotateLifetimeAction = new KeyRotationLifetimeAction(KeyRotationPolicyAction.ROTATE)
.setTimeAfterCreate("P90D");
KeyRotationLifetimeAction myNotifyLifetimeAction = new KeyRotationLifetimeAction(KeyRotationPolicyAction.NOTIFY)
.setTimeBeforeExpiry("P45D");
myLifetimeActions.add(myRotateLifetimeAction);
myLifetimeActions.add(myNotifyLifetimeAction);
KeyRotationPolicy myKeyRotationPolicy = new KeyRotationPolicy()
.setLifetimeActions(myLifetimeActions)
.setExpiresIn("P6M");
Response<KeyRotationPolicy> keyRotationPolicyResponse = keyClient.updateKeyRotationPolicyWithResponse(
"keyName", myKeyRotationPolicy, new Context("key1", "value1"));
System.out.printf("Response received successfully with status code: %d. Updated key rotation policy"
+ "with id: %s%n", keyRotationPolicyResponse.getStatusCode(), keyRotationPolicyResponse.getValue().getId());
Parameters:
Returns: