Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sygnatura dostępu współdzielonego (SAS) umożliwia udzielanie ograniczonego dostępu do kontenerów i blobów na koncie pamięci masowej. Podczas tworzenia sygnatury dostępu współdzielonego określasz jego ograniczenia, w tym zasoby usługi Azure Storage, do których może uzyskiwać dostęp klient, jakie uprawnienia mają w tych zasobach i jak długo sygnatura dostępu współdzielonego jest prawidłowa.
Każdy SAS jest podpisany kluczem. Możesz podpisać SAS na jeden z dwóch sposobów:
- Za pomocą klucza utworzonego przy użyciu poświadczeń firmy Microsoft Entra. Sygnatura dostępu współdzielonego podpisana przy użyciu poświadczeń Microsoft Entra to sygnatura dostępu współdzielonego z delegowaniem użytkownika. Klient, który tworzy token delegowania użytkownika SAS, musi mieć przypisaną rolę RBAC platformy Azure, która obejmuje akcję Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. Aby dowiedzieć się więcej, przeczytaj Tworzenie delegowanej SAS użytkownika.
- Przy użyciu klucza konta przechowywania. Sygnatura SAS usługi i sygnatura SAS konta są podpisane przy użyciu klucza konta magazynowego. Klient, który tworzy usługową sygnaturę dostępu SAS, musi mieć bezpośredni dostęp do klucza konta lub mieć przypisane do uprawnienie Microsoft.Storage/storageAccounts/listkeys/action. Aby dowiedzieć się więcej, zobacz Utwórz SAS usługi lub Utwórz SAS konta.
Uwaga
Delegacja dostępu użytkownika w SAS oferuje lepsze zabezpieczenia niż SAS podpisany kluczem konta magazynu. Microsoft zaleca, jeśli to możliwe, używanie delegowanej sygnatury dostępu SAS. Aby uzyskać więcej informacji, zobacz Udzielanie ograniczonego dostępu do danych za pomocą sygnatur dostępu współdzielonego (SAS).
W tym artykule pokazano, jak za pomocą klucza konta magazynu utworzyć sygnaturę dostępu współdzielonego konta z biblioteką klienta usługi Azure Storage dla języka Python.
Informacje o koncie SAS
Sygnatura dostępu współdzielonego konta (SAS) jest tworzona na poziomie konta magazynu. Tworząc konto SAS, możesz:
- Delegowanie dostępu do operacji na poziomie usługi, które nie są obecnie dostępne w ramach specyficznej dla usługi sygnatury dostępu współdzielonego, takich jak Pobieranie właściwości usługi Blob, Ustawianie właściwości usługi Blob i Pobieranie statystyk usługi Blob.
- Delegowanie dostępu do więcej niż jednej usługi w ramach konta magazynowego jednocześnie. Na przykład można delegować dostęp do zasobów zarówno w usłudze Azure Blob Storage, jak i w usłudze Azure Files przy użyciu sygnatury dostępu współdzielonego konta.
Zasady dostępu przechowywane nie są obsługiwane dla sygnatury dostępu współdzielonego (SAS) konta.
Utwórz konto SAS
Klucz SAS dla konta jest podpisywany kluczem dostępu do konta. Poniższy przykład kodu pokazuje, jak wywołać metodę generate_account_sas w celu pobrania ciągu tokenu SAS konta.
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
Prawidłowe parametry konstruktora ResourceTypes to:
-
usługa: wartość domyślna to
False; ustaw naTrue, aby uzyskać dostęp do interfejsów API na poziomie usługi. -
kontener: domyślnie
False; ustaw naTruew celu uzyskania dostępu do interfejsów API na poziomie kontenera. -
object: wartość domyślna to
False; ustaw naTrue, aby udzielić dostępu do obiektowych interfejsów API dla obiektów blob, komunikatów kolejek i plików.
Aby uzyskać dostępne uprawnienia, zobacz AccountSasPermissions.
Używanie sygnatury dostępu współdzielonego konta z klienta
Aby uzyskać dostęp do interfejsów API na poziomie usługi Blob przy użyciu sygnatury dostępu współdzielonego konta, utwórz obiekt BlobServiceClient przy użyciu sygnatury dostępu współdzielonego konta i punktu końcowego usługi Blob Storage dla Twojego konta magazynu.
# 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)
Sygnaturę dostępu współdzielonego konta można również użyć do autoryzowania obiektu ContainerClient lub obiektu BlobClient , jeśli te typy zasobów mają dostęp w ramach wartości podpisu.
Zasoby
Aby dowiedzieć się więcej na temat tworzenia sygnatury dostępu współdzielonego konta przy użyciu biblioteki klienta usługi Azure Blob Storage dla języka Python, zobacz następujące zasoby.