Sdílet prostřednictvím


Nastavení seznamu ACL kontejneru

Operace Set Container ACL nastaví oprávnění pro zadaný kontejner. Oprávnění označují, jestli se k objektům blob v kontejneru může přistupovat veřejně.

Od verze 2009-09-19 poskytují oprávnění kontejneru následující možnosti pro správu přístupu ke kontejneru:

  • Úplný veřejný přístup ke čtení: data kontejnerů a objektů blob je možné číst prostřednictvím anonymního požadavku. Klienti můžou vytvořit výčet objektů blob v rámci kontejneru prostřednictvím anonymního požadavku, ale nemůžou vytvořit výčet kontejnerů v rámci účtu úložiště.

  • veřejný přístup pro čtení jenom pro objekty blob: data objektů blob v rámci tohoto kontejneru se dají číst prostřednictvím anonymního požadavku, ale data kontejnerů nejsou dostupná. Klienti nemohou vytvořit výčet objektů blob v rámci kontejneru prostřednictvím anonymního požadavku.

  • Žádný veřejný přístup ke čtení: data kontejnerů a objektů blob může číst jenom vlastník účtu.

Set Container ACL také nastaví uložené zásady přístupu pro použití se sdílenými přístupovými podpisy. Další informace najdete v tématu Definování uložených zásad přístupu.

Veškerý veřejný přístup ke kontejneru je anonymní, stejně jako přístup prostřednictvím sdíleného přístupového podpisu.

Prosba

Požadavek Set Container ACL lze vytvořit následujícím způsobem. Doporučujeme používat PROTOKOL HTTPS. Nahraďte myaccount názvem vašeho účtu úložiště:

Metoda Identifikátor URI požadavku Verze HTTP
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1

Žádost o emulovanou službu úložiště

Při provádění požadavku na emulovanou službu úložiště zadejte název hostitele emulátoru a port služby Blob jako 127.0.0.1:10000následovaný názvem emulovaného účtu úložiště:

Metoda Identifikátor URI požadavku Verze HTTP
PUT http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=acl HTTP/1.1

Další informace najdete v tématu Použití emulátoru Azurite pro místní vývoj ve službě Azure Storage.

Parametry identifikátoru URI

V identifikátoru URI požadavku můžete zadat následující další parametry:

Parametr Popis
timeout Volitelný. Parametr timeout se vyjadřuje v sekundách. Další informace najdete v tématu Nastavení časových limitů pro operace služby Blob Service.

Hlavičky požadavku

Povinná a volitelná hlavička požadavku jsou popsána v následující tabulce:

Hlavička požadavku Popis
Authorization Požadovaný. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace požadavků na službu Azure Storage.
Date nebo x-ms-date Požadovaný. Určuje standard UTC (Coordinated Universal Time) pro požadavek. Další informace najdete v tématu Autorizace požadavků na službu Azure Storage.
x-ms-version Volitelný. Určuje verzi operace, která se má pro tento požadavek použít. Další informace najdete v tématu Správa verzí pro služby Azure Storage.
x-ms-blob-public-access Volitelný. Určuje, jestli se data v kontejneru můžou přistupovat veřejně a úroveň přístupu. Mezi možné hodnoty patří:

- container: Určuje úplný veřejný přístup ke čtení pro data kontejnerů a objektů blob. Klienti můžou vytvořit výčet objektů blob v rámci kontejneru prostřednictvím anonymního požadavku, ale nemůžou vytvořit výčet kontejnerů v rámci účtu úložiště.
- blob: Určuje veřejný přístup pro čtení pro objekty blob. Data objektů blob v rámci tohoto kontejneru je možné číst prostřednictvím anonymního požadavku, ale data kontejnerů nejsou k dispozici. Klienti nemohou vytvořit výčet objektů blob v rámci kontejneru prostřednictvím anonymního požadavku.

Pokud tato hlavička není součástí požadavku, data kontejneru jsou pro vlastníka účtu soukromá.

Mějte na paměti, že nastavení veřejného přístupu pro kontejner v účtu Azure Premium Storage není povolené.
x-ms-lease-id: <ID> Volitelné, verze 2012-02-12 a novější. Pokud je zadaný, Set Container ACL úspěšně proběhne pouze v případě, že je zapůjčení kontejneru aktivní a odpovídá tomuto ID. Pokud neexistuje aktivní zapůjčení nebo se ID neshoduje, vrátí se hodnota 412 (předběžná podmínka se nezdařila).
x-ms-client-request-id Volitelný. Poskytuje hodnotu vygenerovanou klientem, neprůshlenou hodnotou s limitem znaků 1 kibibajtů (KiB), který je zaznamenán v protokolech při konfiguraci protokolování. Důrazně doporučujeme použít tuto hlavičku ke korelaci aktivit na straně klienta s požadavky, které server přijímá. Další informace najdete v tématu Monitorování služby Azure Blob Storage.

Tato operace také podporuje použití podmíněných hlaviček ke spuštění operace pouze v případě, že je splněna zadaná podmínka. Další informace najdete v tématu Určení podmíněných hlaviček pro operace služby Blob Service.

Text požadavku

Pokud chcete zadat uložené zásady přístupu, zadejte jedinečný identifikátor a zásadu přístupu v textu požadavku pro operaci Set Container ACL.

Prvek SignedIdentifier obsahuje jedinečný identifikátor, jak je uvedeno v elementu Id, a podrobnosti o zásadách přístupu, jak je uvedeno v elementu AccessPolicy. Maximální délka jedinečného identifikátoru je 64 znaků.

Pole Start a Expiry musí být vyjádřena časem UTC a musí dodržovat platný formát ISO 8061. Podporované formáty ISO 8061 zahrnují následující:

  • YYYY-MM-DD
  • YYYY-MM-DDThh:mmTZD
  • YYYY-MM-DDThh:mm:ssTZD
  • YYYY-MM-DDThh:mm:ss.fffffffTZD

U části těchto formátů kalendářních dat je YYYY čtyřmístnou reprezentací roku, MM je dvoumístná reprezentace měsíce a DD je dvouciferná reprezentace dne. Pro časovou část je hh hodinovou reprezentací ve 24hodinovém zápisu, mm je dvouciferné vyjádření minut, ss je dvouciferné druhé vyjádření a fffffff je sedmimístná reprezentace milisekund. Návrh času T odděluje části řetězce datum a čas a návrh časového pásma TZD určuje časové pásmo.

<?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>  
  

Ukázkový požadavek

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1  
  
Request Headers:  
x-ms-version: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 00:42:49 GMT  
x-ms-blob-public-access: container  
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>   
    <Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>  
    <AccessPolicy>  
      <Start>2009-09-28T08:49:37.0000000Z</Start>  
      <Expiry>2009-09-29T08:49:37.0000000Z</Expiry>  
      <Permission>rwd</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  
  

Odpověď

Odpověď obsahuje stavový kód HTTP a sadu hlaviček odpovědi.

Stavový kód

Úspěšná operace vrátí stavový kód 200 (OK).

Další informace o stavových kódech najdete v tématu Stav a kódy chyb.

Hlavičky odpovědi

Odpověď pro tuto operaci obsahuje následující hlavičky. Odpověď může obsahovat také další standardní hlavičky HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.

Hlavička odpovědi Popis
ETag Značky ETag kontejneru. Pokud je verze požadavku 2011-08-18 nebo novější, je hodnota ETag uzavřena do uvozovek.
Last-Modified Vrátí datum a čas poslední změny kontejneru. Formát data se řídí dokumentem RFC 1123. Další informace naleznete v tématu Reprezentace hodnot data a času v záhlavích.

Jakákoli operace, která upraví kontejner nebo jeho vlastnosti nebo metadata, aktualizuje čas poslední změny, včetně nastavení oprávnění kontejneru. Operace s objekty blob nemají vliv na čas poslední změny kontejneru.
x-ms-request-id Jednoznačně identifikuje požadavek, který byl proveden, a lze ho použít k řešení potíží s požadavkem. Další informace najdete v tématu Řešení potíží s operacemi rozhraní API
x-ms-version Označuje verzi služby Blob Service, která se použila k provedení požadavku. Tato hlavička se vrátí pro požadavky provedené ve verzi 2009-09-19 a novější.
Date Hodnota data a času UTC vygenerovaná službou, která označuje čas zahájení odpovědi.
x-ms-client-request-id Dá se použít k řešení potíží s požadavky a odpovídajícími odpověďmi. Hodnota této hlavičky se rovná hodnotě hlavičky x-ms-client-request-id, pokud se nachází v požadavku a hodnota neobsahuje více než 1 024 viditelných znaků ASCII. Pokud v požadavku není hlavička x-ms-client-request-id, nezobrazí se v odpovědi.

Ukázková odpověď

Response Status:  
HTTP/1.1 200 OK  
  
Response Headers:  
Transfer-Encoding: chunked  
Date: Sun, 25 Sep 2011 22:42:55 GMT  
ETag: "0x8CB171613397EAB"  
Last-Modified: Sun, 25 Sep 2011 22:42:55 GMT  
x-ms-version: 2011-08-18  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Oprávnění

Autorizace se vyžaduje při volání jakékoli operace přístupu k datům ve službě Azure Storage. Operaci Set Container ACL můžete autorizovat, jak je popsáno níže.

Důležitý

Microsoft doporučuje používat Microsoft Entra ID se spravovanými identitami k autorizaci požadavků do služby Azure Storage. Microsoft Entra ID poskytuje vynikající zabezpečení a snadné použití v porovnání s autorizací sdíleného klíče.

Azure Storage podporuje použití Microsoft Entra ID k autorizaci požadavků na data objektů blob. S ID Microsoft Entra můžete pomocí řízení přístupu na základě role v Azure (Azure RBAC) udělit oprávnění k objektu zabezpečení. Objekt zabezpečení může být uživatel, skupina, instanční objekt aplikace nebo spravovaná identita Azure. Instanční objekt zabezpečení je ověřený pomocí ID Microsoft Entra pro vrácení tokenu OAuth 2.0. Token se pak dá použít k autorizaci požadavku ve službě Blob Service.

Další informace o autorizaci pomocí ID Microsoft Entra najdete v tématu Autorizace přístupu k objektům blob pomocíMicrosoft Entra ID .

Dovolení

Níže je uvedena akce RBAC potřebná pro uživatele, skupinu, spravovanou identitu nebo instanční objekt Microsoftu pro volání operace Set Container ACL a nejméně privilegované předdefinované role Azure RBAC, která zahrnuje tuto akci:

Další informace o přiřazování rolí pomocí Azure RBAC najdete v tématu Přiřazení role Azure pro přístup k datům objektů blob.

Poznámky

Když nastavíte oprávnění pro kontejner, nahradí se stávající oprávnění. Pokud chcete aktualizovat oprávnění kontejneru, zavolejte Získat seznam ACL kontejneru a načtěte všechny zásady přístupu přidružené ke kontejneru. Upravte zásady přístupu, které chcete změnit, a potom volejte Set Container ACL s úplnou sadou dat, která chcete provést aktualizaci.

Povolení anonymního veřejného přístupu k datům kontejneru

Pokud chcete u dat kontejneru povolit anonymní veřejný přístup pro čtení, zavolejte Set Container ACL s hlavičkou x-ms-blob-public-access nastavenou na container nebo blob. Pokud chcete anonymní přístup zakázat, zavolejte Set Container ACL bez zadání hlavičky x-ms-blob-public-access.

Pokud nastavíte x-ms-blob-public-access na blob, můžou klienti volat následující operace anonymně:

Pokud nastavíte x-ms-blob-public-access na container, můžou klienti volat následující operace anonymně:

Vytvoření zásad přístupu na úrovni kontejneru

Uložené zásady přístupu můžou určovat čas zahájení, čas vypršení platnosti a oprávnění pro sdílené přístupové podpisy, ke kterým jsou přidružené. V závislosti na tom, jak chcete řídit přístup k vašemu kontejneru nebo prostředku objektu blob, můžete zadat všechny tyto parametry v rámci uložených zásad přístupu a vynechat je z adresy URL sdíleného přístupového podpisu. Tímto způsobem můžete chování přidruženého podpisu kdykoli změnit nebo ho odvolat. Nebo můžete zadat jeden nebo více parametrů zásad přístupu v rámci uložených zásad přístupu a dalších parametrů na adrese URL. Nakonec můžete zadat všechny parametry adresy URL. V takovém případě můžete použít uložené zásady přístupu k odvolání podpisu, ale ne ke změně jeho chování. Další informace najdete v tématu Definování uložených zásad přístupu.

Sdílený přístupový podpis a uložené zásady přístupu musí obsahovat všechna pole potřebná k autorizaci podpisu. Pokud některá povinná pole chybí, požadavek selže. Podobně platí, že pokud je pole zadané v adrese URL sdíleného přístupového podpisu i v uložených zásadách přístupu, požadavek selže se stavovým kódem 400 (Chybný požadavek).

Pro jeden kontejner je možné nastavit maximálně pět samostatných zásad přístupu. Pokud je v textu požadavku předáno více než pět zásad přístupu, vrátí služba stavový kód 400 (chybný požadavek).

Sdílený přístupový podpis může být vydán v kontejneru nebo objektu blob bez ohledu na to, jestli jsou data kontejneru k dispozici pro anonymní přístup pro čtení. Sdílený přístupový podpis poskytuje větší míru kontroly nad tím, jak, kdy a komu je prostředek přístupný.

Poznámka

Když vytvoříte uložené zásady přístupu v kontejneru, může trvat až 30 sekund. Během tohoto intervalu, dokud se zásada neaktivuje, sdílený přístupový podpis přidružený k uloženým zásadám přístupu selže se stavovým kódem 403 (Zakázáno).

Fakturování

Žádosti o ceny můžou pocházet z klientů, kteří používají rozhraní API služby Blob Storage, a to buď přímo prostřednictvím rozhraní REST API služby Blob Storage, nebo z klientské knihovny služby Azure Storage. Tyto žádosti nabíhají poplatky za transakci. Typ transakce ovlivňuje způsob účtování účtu. Například transakce čtení nabíhají do jiné fakturační kategorie než transakce zápisu. Následující tabulka uvádí kategorii fakturace pro požadavky Set Container ACL na základě typu účtu úložiště:

Operace Typ účtu úložiště Kategorie fakturace
Nastavení seznamu ACL kontejneru Objekt blob bloku Úrovně Premium
Standard pro obecné účely verze 2
Jiné operace
Nastavení seznamu ACL kontejneru Standard pro obecné účely verze 1 Operace zápisu

Další informace o cenách pro zadanou fakturační kategorii najdete v tématu ceny služby Azure Blob Storage.

Viz také

Omezení přístupu k kontejnerům a objektům blob
Delegovat přístup pomocí sdíleného přístupového podpisu
Vytvoření a použití sdíleného přístupového podpisu
Definování uložených zásad přístupu
získání seznamu ACL kontejneru
autorizace požadavků na službu Azure Storage
Stav a kódy chyb
kódy chyb služby Blob Service