【问题标题】:Azure Cloud Append Blob KeyVault EncryptionAzure 云追加 Blob KeyVault 加密
【发布时间】:2018-08-17 16:13:12
【问题描述】:

我对 Azure“块 Blob”上传使用 Azure KeyVault 加密。但是当我将 Azure“云追加 Blob”与 Azure KeyVault 加密一起使用时,会出现以下错误。 (我正在使用 .net 应用程序进行 Blob 上传)。

“不支持对已存在的 blob 进行加密。请不要指定加密策略。”

请帮我解决这个问题,因为我需要使用 KeyVault 加密上传“云追加 Blob”。

代码段:

    ConnectToKeyVaultClient();

    var identifier = new SecretIdentifier(keyVaultUrl, encryptionSecretName);
    IKey key = CachingKeyResolver.ResolveKeyAsync(identifier.Identifier, CancellationToken.None).Result;
    BlobEncryptionPolicy blobEncryptionPolicy = new BlobEncryptionPolicy(key, null);
    BlobRequestOptions blobRequestOptions  = new BlobRequestOptions() { EncryptionPolicy = blobEncryptionPolicy };
    CloudAppendBlob cloudAppendBlob = blobContainer.GetAppendBlobReference("ABC");


    if(!cloudAppendBlob.Exists())
    {
        cloudAppendBlob.CreateOrReplace(null, blobRequestOptions , null);
    }

    cloudAppendBlob.AppendFromStream(stream, null, blobRequestOptions , null);

【问题讨论】:

    标签: c# azure encryption azure-keyvault


    【解决方案1】:

    正如错误消息所说,您不能对加密的 blob 执行追加操作。 Blob 加密使用他们称为“信封”方法的东西,这是一种描述加密密钥的包装结构,以便可以自动解密。

    documentation 中的两个陈述与您的问题有关:

    客户端库目前仅支持对整个 blob 进行加密。具体来说,当用户使用 UploadFrom* 方法或 OpenWrite 方法时支持加密。

    和:

    读取或写入加密 blob 时,请使用整个 blob 上传命令和范围/整个 blob 下载命令。避免使用 Put Block、Put Block List、Write Pages、Clear Pages 或 Append Block 等协议操作写入加密 blob;否则您可能会损坏加密的 blob 并使其无法读取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-18
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-10
      • 2021-07-18
      • 2020-08-02
      相关资源
      最近更新 更多