Azure blob customerProvidedKey 与 EncryptionPolicy
Azure blob customerProvidedKey vs EncryptionPolicy
我需要对上传到 azure blob 的文件进行加密,这样登录到 azure 的任何人都无法看到它。
解决方案之一是使用自定义密钥加密。我至少找到了两种方法,但我不知道它们之间有什么区别,也许你们中的一些人会帮助我。
第一个解决方案是创建
BlobClientOptions options = new BlobClientOptions()
{
CustomerProvidedKey = new CustomerProvidedKey(key)
};
并在创建时传递该选项 BlobServiceClient
第二个是创建
BlobEncryptionPolicy policy = new BlobEncryptionPolicy(rsa, null);
BlobRequestOptions options = new BlobRequestOptions() { EncryptionPolicy = policy };
并在上传文件时使用它blob.UploadFromStream(stream, stream.Length, null, options, null);
我找不到任何说明它们之间区别的文档。
CustomerProvidedKey用于azure server端加密数据(官方叫encrypt at rest
),详见this doc。总之,当使用这种加密方式时,在数据上传过程中,数据是不加密的。上传完成后,数据将在 Azure 服务器端使用 CustomerProvidedKey.
加密
注意:CustomerProvidedKey 现在是 in preview。
但对于第二个,使用 BlobEncryptionPolicy,用于在客户端加密数据。当您使用这种加密时,数据在上传到 azure 之前会被加密。
我需要对上传到 azure blob 的文件进行加密,这样登录到 azure 的任何人都无法看到它。 解决方案之一是使用自定义密钥加密。我至少找到了两种方法,但我不知道它们之间有什么区别,也许你们中的一些人会帮助我。
第一个解决方案是创建
BlobClientOptions options = new BlobClientOptions()
{
CustomerProvidedKey = new CustomerProvidedKey(key)
};
并在创建时传递该选项 BlobServiceClient
第二个是创建
BlobEncryptionPolicy policy = new BlobEncryptionPolicy(rsa, null);
BlobRequestOptions options = new BlobRequestOptions() { EncryptionPolicy = policy };
并在上传文件时使用它blob.UploadFromStream(stream, stream.Length, null, options, null);
我找不到任何说明它们之间区别的文档。
CustomerProvidedKey用于azure server端加密数据(官方叫encrypt at rest
),详见this doc。总之,当使用这种加密方式时,在数据上传过程中,数据是不加密的。上传完成后,数据将在 Azure 服务器端使用 CustomerProvidedKey.
注意:CustomerProvidedKey 现在是 in preview。
但对于第二个,使用 BlobEncryptionPolicy,用于在客户端加密数据。当您使用这种加密时,数据在上传到 azure 之前会被加密。