Ustawianie listy ACL udziałów
Operacja Set Share ACL
ustawia przechowywane zasady dostępu do użycia z sygnaturami dostępu współdzielonego. Aby uzyskać więcej informacji na temat ustawiania zasad dostępu, zobacz Udzielanie ograniczonego dostępu do zasobów usługi Azure Storage przy użyciu sygnatur dostępu współdzielonego.
Dostępność protokołu
Włączony protokół udziału plików | Dostępne |
---|---|
SMB | |
NFS |
Żądanie
Żądanie można skonstruować Set Share ACL
w następujący sposób. Zalecamy użycie protokołu HTTPS. Zastąp ciąg myaccount nazwą konta magazynu.
Metoda | Identyfikator URI żądania | Wersja PROTOKOŁU HTTP |
---|---|---|
PUT | https://myaccount.file.core.windows.net/myshare?restype=share&comp=acl |
HTTP/1.1 |
Parametry identyfikatora URI
W identyfikatorze URI żądania można określić następujące dodatkowe parametry:
Parametr | Opis |
---|---|
timeout |
Opcjonalny. Parametr jest wyrażony timeout w sekundach. Aby uzyskać więcej informacji, zobacz Ustawianie limitów czasu dla operacji Azure Files. |
Nagłówki żądań
W poniższej tabeli opisano wymagane i opcjonalne nagłówki żądań:
Nagłówek żądania | Opis |
---|---|
Authorization |
Wymagane. Określa schemat autoryzacji, nazwę konta i podpis. Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage. |
Date lub x-ms-date |
Wymagane. Określa dla żądania godzinę w formacie uniwersalnego czasu koordynowanego (UTC). Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage. |
x-ms-version |
Wymagane dla wszystkich autoryzowanych żądań. Określa wersję operacji do użycia dla tego żądania. Ta operacja jest dostępna tylko w wersji 2015-02-21 lub nowszej. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji usług Azure Storage. |
x-ms-client-request-id |
Opcjonalny. Udostępnia nieprzezroczystą wartość wygenerowaną przez klienta z limitem znaków 1-kibibyte (KiB), który jest rejestrowany w dziennikach analityka magazynu podczas konfigurowania rejestrowania. Zdecydowanie zalecamy używanie tego nagłówka do korelowania działań po stronie klienta z żądaniami odbieranymi przez serwer. Aby uzyskać więcej informacji, zobacz Monitorowanie Azure Blob Storage. |
x-ms-lease-id:<ID> |
Wymagane, jeśli docelowy udział plików ma aktywną dzierżawę. Dostępne dla wersji 2020-02-10 lub nowszej. Jeśli żądanie nie zawiera identyfikatora dzierżawy lub jest nieprawidłowe, operacja kończy się niepowodzeniem z kodem stanu 412 (Warunek wstępny nie powiodło się). Jeśli ten nagłówek jest określony, a docelowy udział plików nie ma obecnie aktywnej dzierżawy, operacja kończy się niepowodzeniem z kodem stanu 412 (Warunek wstępny nie powiodło się). |
Treść żądania
Aby określić przechowywane zasady dostępu, podaj unikatowy identyfikator i zasady dostępu w treści żądania dla Set Share ACL
operacji.
Element SignedIdentifier
zawiera unikatowy identyfikator określony w elemecie Id
.
SignedIdentifier
zawiera również szczegóły zasad dostępu, jak określono w elemecie AccessPolicy
. Maksymalna długość unikatowego identyfikatora wynosi 64 znaki.
Pola Start
i Expiry
muszą być wyrażone jako czas UTC i muszą być zgodne z prawidłowym formatem ISO 8061. Obsługiwane formaty ISO 8061 obejmują:
YYYY-MM-DD
YYYY-MM-DDThh:mmTZD
YYYY-MM-DDThh:mm:ssTZD
YYYY-MM-DDThh:mm:ss.fffffffTZD
W przypadku części dat tych formatów YYYY
jest czterocyfrową reprezentacją roku, MM
jest dwucyfrową reprezentacją miesiąca i DD
jest dwucyfrową reprezentacją dnia. W przypadku części hh
czasowej jest reprezentacją godziny w notacji 24-godzinnej, mm
jest dwucyfrową reprezentacją minuty, ss
jest dwucyfrową drugą reprezentacją i fffffff
jest reprezentacją siedmiocyfrową milisekundową. Projektator T
godziny oddziela fragmenty daty i godziny ciągu. Projektator TZD
strefy czasowej określa strefę czasową.
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>unique-64-character-value</Id>
<AccessPolicy>
<Start>start-time</Start>
<Expiry>expiry-time</Expiry>
<Permission>abbreviated-permission-list</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
Przykładowe żądanie
Request Syntax:
PUT https://myaccount.file.core.windows.net/myshare?restype=share&comp=acl HTTP/1.1
Request Headers:
x-ms-version: 2015-02-21
x-ms-date: <date>
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=
Request Body:
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>
<AccessPolicy>
<Start>2015-07-01T08:49:37.0000000Z</Start>
<Expiry>2015-07-02T08:49:37.0000000Z</Expiry>
<Permission>rwd</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
Reakcja
Odpowiedź zawiera kod stanu HTTP i zestaw nagłówków odpowiedzi.
Kod stanu
Operacja zakończona powodzeniem zwraca kod stanu 200 (OK).
Nagłówki odpowiedzi
Odpowiedź na tę operację zawiera następujące nagłówki. Odpowiedź może również zawierać dodatkowe standardowe nagłówki HTTP. Wszystkie nagłówki standardowe są zgodne ze specyfikacją protokołu HTTP/1.1.
Nagłówek odpowiedzi | Opis |
---|---|
ETag |
Zwraca datę i godzinę ostatniej modyfikacji kontenera. Format daty jest zgodny z RFC 1123. Aby uzyskać więcej informacji, zobacz Reprezentacja wartości daty/godziny w nagłówkach. |
Last-Modified |
Każda operacja modyfikując udział lub jego właściwości lub metadane aktualizuje czas ostatniej modyfikacji, w tym ustawienie uprawnień pliku. Operacje na plikach nie wpływają na czas ostatniej modyfikacji udziału. |
x-ms-request-id |
Jednoznacznie identyfikuje żądanie, które zostało wykonane i może być używane do rozwiązywania problemów z żądaniem. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z operacjami interfejsu API. |
x-ms-version |
Wskazuje wersję Azure Files, która została użyta do wykonania żądania. |
Date lub x-ms-date |
Wartość daty/godziny UTC wskazująca godzinę, w której usługa wysłała odpowiedź. |
x-ms-client-request-id |
Może służyć do rozwiązywania problemów z żądaniami i odpowiadającymi im odpowiedziami. Wartość tego nagłówka jest równa wartości x-ms-client-request-id nagłówka, jeśli znajduje się w żądaniu, a wartość wynosi co najwyżej 1024 widoczne znaki ASCII.
x-ms-client-request-id Jeśli nagłówek nie znajduje się w żądaniu, ten nagłówek nie będzie obecny w odpowiedzi. |
Przykładowa odpowiedź
Response Status:
HTTP/1.1 200 OK
Response Headers:
Transfer-Encoding: chunked
Date: <date>
ETag: "0x8CB171613397EAB"
Last-Modified: <date>
x-ms-version: 2015-02-21
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0
Autoryzacja
Tylko właściciel konta może wywołać tę operację.
Uwagi
Tylko właściciel konta może uzyskać dostęp do zasobów w określonym udziale, chyba że spełniony jest jeden z następujących warunków:
- Właściciel określił, że zasoby udziału są dostępne dla dostępu publicznego, ustawiając uprawnienia do udziału.
- Właściciel wydał sygnaturę dostępu współdzielonego dla zasobu w udziale.
Po ustawieniu uprawnień dla kontenera istniejące uprawnienia zostaną zastąpione. Aby zaktualizować uprawnienia kontenera, wywołaj metodę Pobierz listę ACL udziału , aby pobrać wszystkie zasady dostępu skojarzone z kontenerem. Zmodyfikuj zasady dostępu, które chcesz zmienić, a następnie wywołaj Set Share ACL
pełny zestaw danych, aby przeprowadzić aktualizację.
Ustanawianie zasad dostępu na poziomie udziału
Przechowywane zasady dostępu mogą określać czas rozpoczęcia, czas wygaśnięcia i uprawnienia do sygnatur dostępu współdzielonego, z którymi jest skojarzony. W zależności od tego, jak chcesz kontrolować dostęp do udziału lub zasobu plików, możesz:
- Określ wszystkie te parametry w przechowywanych zasadach dostępu i pomiń je z adresu URL dla sygnatury dostępu współdzielonego. Dzięki temu można zmodyfikować zachowanie skojarzonego podpisu lub odwołać je w dowolnym momencie.
- Określ co najmniej jeden parametr zasad dostępu w przechowywanych zasadach dostępu i określ inne parametry w adresie URL.
- Określ wszystkie parametry w adresie URL. W takim przypadku można użyć przechowywanych zasad dostępu, aby odwołać podpis, ale nie zmodyfikować jego zachowania.
Aby uzyskać więcej informacji na temat ustawiania zasad dostępu, zobacz Udzielanie ograniczonego dostępu do zasobów usługi Azure Storage przy użyciu sygnatur dostępu współdzielonego.
Razem sygnatura dostępu współdzielonego i przechowywane zasady dostępu muszą zawierać wszystkie pola wymagane do autoryzowania podpisu. Jeśli brakuje żadnych wymaganych pól, żądanie zakończy się niepowodzeniem. Podobnie jeśli pole jest określone zarówno w adresie URL sygnatury dostępu współdzielonego, jak i w przechowywanych zasadach dostępu, żądanie zakończy się niepowodzeniem z kodem stanu 400 (nieprawidłowe żądanie). Aby uzyskać więcej informacji na temat pól tworzących sygnaturę dostępu współdzielonego, zobacz Używanie sygnatury dostępu współdzielonego.
W dowolnym momencie można ustawić maksymalnie pięć oddzielnych zasad dostępu dla udziału. Jeśli w treści żądania zostanie przekazanych więcej niż pięć zasad dostępu, usługa zwróci kod stanu 400 (nieprawidłowe żądanie).
Sygnatura dostępu współdzielonego może zostać wystawiona w udziale lub pliku niezależnie od tego, czy dane kontenera są dostępne do anonimowego dostępu do odczytu. Sygnatura dostępu współdzielonego zapewnia większą kontrolę nad tym, jak, kiedy i do kogo jest udostępniany zasób.
Nie można ustawić ani pobrać zasad dostępu dla migawki udziału. Jeśli spróbujesz ustawić zasady dostępu, usługa zwróci kod stanu 400 (InvalidQueryParameterValue).
Uwaga
Po ustanowieniu przechowywanych zasad dostępu w kontenerze może upłynąć do 30 sekund. W tym interwale sygnatura dostępu współdzielonego skojarzona z zapisanymi zasadami dostępu zakończy się niepowodzeniem z kodem stanu 403 (Zabronione), dopóki zasady dostępu nie staną się aktywne.