【问题标题】:Can Azure Key Vault Encryption Decryption be performed in Databricks?可以在 Databricks 中执行 Azure Key Vault 加密解密吗?
【发布时间】:2021-10-19 08:56:03
【问题描述】:

我有一些加密的 Azure Blob,我需要使用 this Azure Key Vault 机制对其进行解密。是否有可能在数据块中使用 Scala 或 Python 来进行解密?我不确定这些语言中是否有任何可用的库可以让我进行解密?如果您知道任何库或有一些可以在 Python 或 Scala 中运行的示例代码,那真的很有帮助。

谢谢!

【问题讨论】:

    标签: azure encryption azure-databricks azure-keyvault


    【解决方案1】:

    尝试使用Azure Storage Client Library for Python 支持在上传到 Azure 存储之前在客户端应用程序中加密数据,并在下载到客户端时解密数据。

    通过信封技术使用加密包含以下步骤

    1) Azure 存储客户端库生成一个内容加密密钥 (CEK),它是一次性使用的对称密钥。

    2)使用此内容加密密钥 (CEK) 对用户数据进行加密

    3) 然后使用 密钥加密密钥 (KEK) 包装(加密)CEK。 KEK由密钥标识符标识,可以是非对称密钥对,也可以是对称密钥,在本地进行管理。存储客户端库本身永远无法访问 KEK。该库调用 KEK 提供的密钥包装算法。如果需要,用户可以选择使用自定义提供程序进行密钥包装/解包

    4) 然后将加密数据上传到 Azure 存储服务。封装的密钥与一些额外的加密元数据一起存储为元数据(在 blob 上)或插入加密数据(队列消息和表实体)。

    通过信封技术解密:包含以下步骤

    1) 客户端库假定用户在本地管理密钥加密密钥 (KEK)。用户不需要知道用于加密的特定密钥。相反,可以设置和使用将不同的密钥标识符解析为密钥的密钥解析器。

    2)客户端库下载加密数据以及存储在服务上的任何加密材料

    3) 然后使用密钥加密密钥 (KEK) 解包(解密)封装的内容加密密钥 (CEK)。同样,客户端库无权访问 KEK。它只是调用自定义提供者的解包算法

    4)然后使用内容加密密钥 (CEK) 对加密的用户数据进行解密。

    有关更多详细信息和分步过程,请参阅此document

    【讨论】:

    • 感谢文档链接和 python 库的链接。您是否有任何链接,其中有一些为解密而编写的示例代码?我找到了加密功能,但没有任何解密功能。再次感谢!
    • 请参考这个github代码:github.com/Azure/azure-storage-python/blob/master/…如果答案对你有帮助,你可以接受它作为答案(点击答案旁边的复选标记将它从灰色切换到填充。 )。这对其他社区成员可能是有益的。谢谢
    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 2016-07-02
    • 2018-12-08
    • 1970-01-01
    • 2021-12-13
    • 2021-09-27
    • 2021-03-16
    • 2017-09-12
    相关资源
    最近更新 更多