0

如何加密/解密 azure blob 存储中的 blob。我尝试了以下方法,但是当我使用不同的密钥下载 blob 时,没有出现任何错误,我可以毫无问题地下载。我错过了什么吗?这是我的代码:

string secretKey = "https://testkeyvault.vault.azure.net:433/secrets/SampleSecret1";

KeyVaultKeyResolver cloudResolver = new KeyVaultKeyResolver(AzureHelper.GetAccessToken);

IKey cloudKey1 = cloudResolver.ResolveKeyAsync(secretKey, CancellationToken.None).GetAwaiter().GetResult();
BlobEncryptionPolicy encryptionPolicy = new BlobEncryptionPolicy(cloudKey1, cloudResolver);
client.DefaultRequestOptions.EncryptionPolicy = encryptionPolicy;
client.DefaultRequestOptions.RequireEncryption = true;

CloudBlockBlob blob1 = container.GetBlockBlobReference("blockblob2"); // this blob was uploaded using a different secretKey
using (FileStream file = new FileStream(@"C:\Test\test2.txt", FileMode.Create))
{
    blob1.DownloadToStream(file);
}

AzureHelper.GetAccessToken:

internal static async Task<string> GetAccessToken(string authority, string resource, string scope)
{
    ClientCredential credential = new ClientCredential(ConfigurationManager.AppSettings.Get("ClientId"), ConfigurationManager.AppSettings.Get("ClientKey"));

    AuthenticationContext ctx = new AuthenticationContext(new Uri(authority).AbsoluteUri, false);
    AuthenticationResult result = await ctx.AcquireTokenAsync(resource, credential);

    return result.AccessToken;
}
4

0 回答 0