【发布时间】:2021-11-30 14:11:39
【问题描述】:
Microsoft 在 C# 中有一个示例,用于使用 azure-key-vault 中的密钥加密 azure blob https://docs.microsoft.com/en-us/azure/storage/blobs/storage-encrypt-decrypt-blobs-key-vault?WT.mc_id=Portal-Microsoft_Azure_Support&tabs=dotnet11#prerequisites
我希望在 Python 中做同样的事情 我尝试遵循此页面中给出的代码 https://github.com/Azure/azure-storage-python/blob/master/samples/blob/encryption_usage.py 此页面未使用 azure 密钥
当我尝试在该示例中使用 azure key 时出现错误
class KeyWrapper:
def __init__(self, kid):
self.kek = self.get_azure_vault_key()
self.backend = default_backend()
self.kid = 'local:' + kid
def get_azure_vault_key(self):
credential = DefaultAzureCredential()
key_client = KeyClient(vault_url="https://xyz.vault.azure.net/", credential=credential)
keyvaultObj = key_client.get_key("my-key")
actualKey = keyvaultObj.key.n
return actualKey
def saveEncryptedCSVtoAzureBlob(CSVData, accountName, accountKey):
blobName = 'myBlob'
blobService = BlockBlobService(account_name=accountName, account_key=accountKey)
kek = KeyWrapper('local:key1')
blobService.key_encryption_key = kek
blobService.create_blob_from_text(containerName, blobName, CSVData)
此示例给出以下错误 ValueError:包装密钥必须是有效的 AES 密钥长度
【问题讨论】:
-
看起来 Python 示例使用 AES 256 ("A256KW") 进行密钥包装——AES 密钥的大小必须为 128、192 或 256 位。你知道 Key Vault 密钥的大小吗?
标签: python azure-blob-storage azure-keyvault public-key-encryption azure-container-service