Wie Zusammenfassung Wenn Sie SAS-Token nicht generiert haben, können Sie nicht vermeiden Kontoschlüssel.
Sie konnten die official tutorial folgen und generate_shared_access_signature
, generate_container_shared_access_signature
, generate_blob_shared_access_signature
SAS Token
für azure storage account
, container
, blob
in Python zu generieren.
Wenn Sie bereits SAS token
generiert haben, können Sie Ihren Container mit SAS token
anstelle des Kontoschlüssels betreiben.
Code Snippet:
from datetime import datetime, timedelta
from azure.storage.blob import (
BlockBlobService,
ContainerPermissions,
)
accountName = "***"
accountKey = "***"
containerName = "***"
def GenerateSasToken():
blobService = BlockBlobService(account_name=accountName, account_key=accountKey)
sas_url = blobService.generate_container_shared_access_signature(containerName,ContainerPermissions.READ, datetime.utcnow() + timedelta(hours=1))
# print sas_url
return 'https://' + accountName + '.blob.core.windows.net/' + containerName + '?' + sas_url
def AccessTest(sastoken):
blobService = BlockBlobService(account_name = accountName, account_key = None, sas_token = sastoken)
BlockBlobService
for blob in blobService.list_blobs(containerName):
print blob.__getattribute__('name')
sastoken = GenerateSasToken()
print sastoken
AccessTest(sastoken)
Darüber hinaus könnten Sie versuchen, Azure Key Vault
zu verwenden.
Das Schlüsselmerkmal Azure Storage Account (ASA) verwaltet die geheime Rotation für Sie. Darüber hinaus wird Ihr direkter Kontakt mit einem ASA-Schlüssel durch die Bereitstellung von Shared Access-Signaturen (SAS) als Methode überflüssig.
welche erwähnt here.
Bitte beachten Sie die Azure Key Vault official tutorial und es unterstützt REST API.