LocalKeyEncryptionKeyAsyncClient 的使用
Usage of LocalKeyEncryptionKeyAsyncClient
我正在尝试将 blob 上传到 azure blob 存储,但我希望使用存储在我这边(而不是 Azure KeyVault 上)的密钥进行客户端加密。我想使用最新的 Java SDK - v12。
我发现对于客户端加密,我应该使用 EncryptedBlobClient class,它是通过 EncryptedBlobClientBuilder 实例化的。
EncryptedBlobClientBuilder 需要设置 AsyncKeyEncryptionKey,我想使用存储在我身边的密钥 - LocalKeyEncryptionKeyAsyncClient 是否用于这些需求?我找不到太多关于这个 class 的信息。
谢谢
sample 使用 ResolveKeyAsync
方法 return 一个 RsaKey。如果您不想将密钥存储到KeyVault中,则无需使用它,您可以随意使用密钥。
RsaKey rsa = new RsaKey("your private Key");
// Create the encryption policy to be used for upload and download.
BlobEncryptionPolicy policy = new BlobEncryptionPolicy(rsa, null);
// Set the encryption policy on the request options.
BlobRequestOptions options = new BlobRequestOptions();
options.setEncryptionPolicy(policy);
// Upload the encrypted contents to the blob.
blob.upload(stream, size, null, options, null);
有关详细信息,请参阅类似的 。
更新:
有一个 answer 类似的问题。
JsonWebKey localKey = JsonWebKey.fromAes(new SecretKeySpec(encryptionKeyBytes, "AES"), Arrays.asList(KeyOperation.WRAP_KEY, KeyOperation.UNWRAP_KEY)).setId("my-id");
AsyncKeyEncryptionKey akek = new LocalKeyEncryptionKeyClientBuilder().buildAsyncKeyEncryptionKey(localKey).block();
EncryptedBlobClient encryptedBlobClient = new EncryptedBlobClientBuilder()
.endpoint(serviceClient.getAccountUrl())
.sasToken("<SAS token>")
.containerName(containerName)
.blobName(blobName)
.key(akek, KeyWrapAlgorithm.A256KW.toString())
.buildEncryptedBlobClient();
encryptedBlobClient.uploadFromFile(filepath);
我正在尝试将 blob 上传到 azure blob 存储,但我希望使用存储在我这边(而不是 Azure KeyVault 上)的密钥进行客户端加密。我想使用最新的 Java SDK - v12。 我发现对于客户端加密,我应该使用 EncryptedBlobClient class,它是通过 EncryptedBlobClientBuilder 实例化的。 EncryptedBlobClientBuilder 需要设置 AsyncKeyEncryptionKey,我想使用存储在我身边的密钥 - LocalKeyEncryptionKeyAsyncClient 是否用于这些需求?我找不到太多关于这个 class 的信息。 谢谢
sample 使用 ResolveKeyAsync
方法 return 一个 RsaKey。如果您不想将密钥存储到KeyVault中,则无需使用它,您可以随意使用密钥。
RsaKey rsa = new RsaKey("your private Key");
// Create the encryption policy to be used for upload and download.
BlobEncryptionPolicy policy = new BlobEncryptionPolicy(rsa, null);
// Set the encryption policy on the request options.
BlobRequestOptions options = new BlobRequestOptions();
options.setEncryptionPolicy(policy);
// Upload the encrypted contents to the blob.
blob.upload(stream, size, null, options, null);
有关详细信息,请参阅类似的
更新:
有一个 answer 类似的问题。
JsonWebKey localKey = JsonWebKey.fromAes(new SecretKeySpec(encryptionKeyBytes, "AES"), Arrays.asList(KeyOperation.WRAP_KEY, KeyOperation.UNWRAP_KEY)).setId("my-id");
AsyncKeyEncryptionKey akek = new LocalKeyEncryptionKeyClientBuilder().buildAsyncKeyEncryptionKey(localKey).block();
EncryptedBlobClient encryptedBlobClient = new EncryptedBlobClientBuilder()
.endpoint(serviceClient.getAccountUrl())
.sasToken("<SAS token>")
.containerName(containerName)
.blobName(blobName)
.key(akek, KeyWrapAlgorithm.A256KW.toString())
.buildEncryptedBlobClient();
encryptedBlobClient.uploadFromFile(filepath);