Vytvoření SAS účtu pomocí Pythonu
Sdílený přístupový podpis (SAS) umožňuje udělit omezený přístup ke kontejnerům a objektům blob ve vašem účtu úložiště. Při vytváření SAS určíte jeho omezení, včetně toho, ke kterým prostředkům služby Azure Storage má klient povolený přístup, jaká oprávnění k těmto prostředkům má a jak dlouho je sas platný.
Každý SAS je podepsaný klíčem. Sas můžete podepsat jedním ze dvou způsobů:
- S klíčem vytvořeným pomocí přihlašovacích údajů Azure Active Directory (Azure AD). SAS, který je podepsaný pomocí přihlašovacích údajů Azure AD, je SAS delegování uživatele. Klient, který vytvoří SAS delegování uživatele, musí mít přiřazenou roli Azure RBAC, která zahrnuje akci Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey . Další informace najdete v tématu Vytvoření SAS delegování uživatele.
- S klíčem účtu úložiště. Sas služby i SAS účtu jsou podepsané pomocí klíče účtu úložiště. Klient, který vytváří SAS služby, musí mít buď přímý přístup ke klíči účtu, nebo musí mít přiřazené oprávnění Microsoft.Storage/storageAccounts/listkeys/action . Další informace najdete v tématu Vytvoření SAS služby nebo Vytvoření SAS účtu.
Poznámka
SAS delegování uživatele nabízí vyšší zabezpečení sas podepsanému klíčem účtu úložiště. Pokud je to možné, Microsoft doporučuje používat SAS delegování uživatele. Další informace najdete v tématu Udělení omezeného přístupu k datům pomocí sdílených přístupových podpisů (SAS).
V tomto článku se dozvíte, jak pomocí klíče účtu úložiště vytvořit sas účtu s klientskou knihovnou Azure Storage pro Python.
Informace o SAS účtu
Sas účtu se vytvoří na úrovni účtu úložiště. Vytvořením sdíleného přístupového podpisu účtu můžete:
- Delegujte přístup k operacím na úrovni služby, které v současné době nejsou k dispozici u sdíleného přístupového podpisu specifického pro službu, například Získání vlastností služby Blob Service, Nastavení vlastností služby Blob Service a Získání statistik služby Blob Service.
- Delegujte přístup k více než jedné službě v účtu úložiště najednou. Můžete například delegovat přístup k prostředkům v Azure Blob Storage i Azure Files pomocí SAS účtu.
Zásady uloženého přístupu se nepodporují pro SAS účtu.
Vytvoření SAS účtu
Sas účtu je podepsaný pomocí přístupového klíče k účtu. Následující příklad kódu ukazuje, jak volat metodu generate_account_sas pro získání řetězce tokenu SAS účtu.
def create_account_sas(self, account_name: str, account_key: str):
# Create an account SAS that's valid for one day
start_time = datetime.datetime.now(datetime.timezone.utc)
expiry_time = start_time + datetime.timedelta(days=1)
# Define the SAS token permissions
sas_permissions=AccountSasPermissions(read=True)
# Define the SAS token resource types
# For this example, we grant access to service-level APIs
sas_resource_types=ResourceTypes(service=True)
sas_token = generate_account_sas(
account_name=account_name,
account_key=account_key,
resource_types=sas_resource_types,
permission=sas_permissions,
expiry=expiry_time,
start=start_time
)
return sas_token
Platné parametry pro konstruktor ResourceTypes jsou:
- služba: Výchozí hodnota je
False
; nastavená naTrue
hodnotu pro udělení přístupu k rozhraním API na úrovni služby. - kontejner: Výchozí hodnota je
False
; nastavená naTrue
udělit přístup k rozhraním API na úrovni kontejneru. - object: Výchozí hodnota je
False
; nastavená naTrue
, aby se udělil přístup k rozhraním API na úrovni objektů pro objekty blob, zprávy ve frontě a soubory.
Dostupná oprávnění najdete v tématu AccountSasPermissions.
Použití sdíleného přístupového podpisu účtu z klienta
Pokud chcete použít SAS účtu pro přístup k rozhraním API na úrovni služby Blob Service, vytvořte objekt BlobServiceClient pomocí sas účtu účtu a koncového bodu služby Blob Storage pro váš účet úložiště.
# The SAS token string can be appended to the account URL with a ? delimiter
# or passed as the credential argument to the client constructor
account_sas_url = f"{blob_service_client.url}?{sas_token}"
# Create a BlobServiceClient object
blob_service_client_sas = BlobServiceClient(account_url=account_sas_url)
Sas účtu můžete také použít k autorizaci a práci s objektem ContainerClient nebo Objekt BlobClient , pokud mají tyto typy prostředků udělený přístup jako součást hodnot podpisu.
Zdroje informací
Další informace o vytvoření SAS účtu pomocí klientské knihovny Azure Blob Storage pro Python najdete v následujících zdrojích informací.