Eksplorowanie przechowywanych zasad dostępu

Zakończone

Przechowywane zasady dostępu zapewniają dodatkowy poziom kontroli nad sygnaturami dostępu współdzielonego na poziomie usługi (SAS) po stronie serwera. Ustanowienie grupy zasad dostępu SAS pozwala na wprowadzenie dodatkowych ograniczeń dla podpisów podlegających tym zasadom. Możesz użyć przechowywanych zasad dostępu, aby zmienić czas rozpoczęcia, czas wygaśnięcia lub uprawnienia do podpisu lub odwołać je po jego wydaniu.

Następujące zasoby magazynu obsługują przechowywane zasady dostępu:

  • Kontenery obiektów blob
  • Udziały plików
  • Kolejki
  • Tabele

Tworzenie przechowywanych zasad dostępu

Zasady dostępu dla udostępnionej sygnatury dostępu (SAS) obejmują czas rozpoczęcia, czas wygaśnięcia oraz uprawnienia do sygnatury. Wszystkie te parametry można określić w identyfikatorze URI podpisu i żaden w przechowywanych zasadach dostępu; wszystkie można określić w przechowywanych zasadach dostępu i żaden w identyfikatorze URI; lub niektóre kombinacje z nich. Nie można jednak określić danego parametru zarówno dla tokenu SAS, jak i dla zasady zapisanej dla dostępu.

Aby utworzyć lub zmodyfikować przechowywane zasady dostępu, wywołaj operację Set ACL dla zasobu (zobacz Ustawianie listy ACL kontenerów, Ustawianie listy ACL kolejek, Ustawianie listy ACL tabel lub Ustawianie listy ACL udziału), w treści żądania określając warunki zasad dostępu. Treść żądania zawiera unikatowy podpisany identyfikator według Twojego wyboru, o długości do 64 znaków, oraz opcjonalne parametry zasad dostępu w następujący sposób:

Notatka

Po ustanowieniu zasad dostępu przechowywanych w kontenerze, tabeli, kolejce lub udziale może minąć do 30 sekund, zanim zaczną obowiązywać. W tym czasie żądania względem sygnatury dostępu współdzielonego (SAS) skojarzonej z zapisaną zasadą dostępu mogą zakończyć się niepowodzeniem z kodem stanu 403 (Zabronione), dopóki zasada dostępu nie stanie się aktywna. Ograniczenia zakresu jednostek tabeli (startpk, startrk, endpki endrk) nie można określić w przechowywanych zasadach dostępu.

Poniżej przedstawiono przykłady tworzenia przechowywanych zasad dostępu przy użyciu platformy .NET języka C# i interfejsu wiersza polecenia platformy Azure.

BlobSignedIdentifier identifier = new BlobSignedIdentifier
{
    Id = "stored access policy identifier",
    AccessPolicy = new BlobAccessPolicy
    {
        ExpiresOn = DateTimeOffset.UtcNow.AddHours(1),
        Permissions = "rw"
    }
};

blobContainer.SetAccessPolicy(permissions: new BlobSignedIdentifier[] { identifier });
az storage container policy create \
    --name <stored access policy identifier> \
    --container-name <container name> \
    --start <start time UTC datetime> \
    --expiry <expiry time UTC datetime> \
    --permissions <(a)dd, (c)reate, (d)elete, (l)ist, (r)ead, or (w)rite> \
    --account-key <storage account key> \
    --account-name <storage account name> \

Modyfikowanie lub odwołowanie przechowywanych zasad dostępu

Aby zmodyfikować parametry przechowywanych zasad dostępu, można wywołać operację listy kontroli dostępu dla typu zasobu, aby zastąpić istniejące zasady. Jeśli na przykład istniejące zasady przyznają uprawnienia do odczytu i zapisu do zasobu, możesz zmodyfikować je tak, aby przyznać tylko uprawnienia do odczytu dla wszystkich przyszłych żądań.

Aby odwołać przechowywane zasady dostępu, można je usunąć, zmienić jego nazwę, zmieniając podpisany identyfikator lub zmieniając czas wygaśnięcia na wartość w przeszłości. Zmiana podpisanego identyfikatora powoduje przerwanie skojarzeń między istniejącymi podpisami a zapisanymi zasadami dostępu. Zmiana czasu wygaśnięcia na wartość w przeszłości powoduje wygaśnięcie wszelkich skojarzonych podpisów. Usunięcie lub zmodyfikowanie przechowywanych zasad dostępu natychmiast wpływa na wszystkie skojarzone z nią sygnatury dostępu współdzielonego.

Aby usunąć pojedyncze zasady dostępu, wywołaj operację Set ACL zasobu, przekazując zestaw podpisanych identyfikatorów, które chcesz zachować w kontenerze. Aby usunąć wszystkie zasady dostępu z zasobu, wywołaj operację Set ACL z pustą treścią żądania.