Container-ACL instellen

Met Set Container ACL de bewerking worden de machtigingen voor de opgegeven container ingesteld. De machtigingen geven aan of blobs in een container openbaar toegankelijk zijn.

Vanaf versie 2009-09-19 bieden de containermachtigingen de volgende opties voor het beheren van containertoegang:

  • Volledige openbare leestoegang: Container- en blobgegevens kunnen worden gelezen via een anonieme aanvraag. Clients kunnen blobs in de container opsommen via een anonieme aanvraag, maar kunnen geen containers in het opslagaccount opsommen.

  • Alleen openbare leestoegang voor blobs: Blobgegevens in deze container kunnen worden gelezen via een anonieme aanvraag, maar containergegevens zijn niet beschikbaar. Clients kunnen geen blobs in de container opsommen via een anonieme aanvraag.

  • Geen openbare leestoegang: Container- en blobgegevens kunnen alleen worden gelezen door de accounteigenaar.

Set Container ACL stelt ook een opgeslagen toegangsbeleid in voor gebruik met handtekeningen voor gedeelde toegang. Zie Een opgeslagen toegangsbeleid definiëren voor meer informatie.

Alle openbare toegang tot de container is anoniem, net als toegang via een Shared Access Signature.

Aanvraag

De Set Container ACL aanvraag kan als volgt worden samengesteld. U wordt aangeraden HTTPS te gebruiken. Vervang myaccount door de naam van uw opslagaccount:

Methode Aanvraag-URI HTTP-versie
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1

Aanvraag voor geëmuleerde opslagservice

Wanneer u een aanvraag voor de geëmuleerde opslagservice maakt, geeft u de hostnaam van de emulator en de poort van de Blob-service op als 127.0.0.1:10000, gevolgd door de naam van het geëmuleerde opslagaccount:

Methode Aanvraag-URI HTTP-versie
PUT http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=acl HTTP/1.1

Zie Use the Azurite emulator for local Azure Storage development (De Azurite-emulator gebruiken voor lokale Azure Storage-ontwikkeling) voor meer informatie.

URI-parameters

U kunt de volgende aanvullende parameters opgeven in de aanvraag-URI:

Parameter Beschrijving
timeout Optioneel. De timeout parameter wordt uitgedrukt in seconden. Zie Time-outs instellen voor blobservicebewerkingen voor meer informatie.

Aanvraagheaders

De vereiste en optionele aanvraagheaders worden beschreven in de volgende tabel:

Aanvraagheader Beschrijving
Authorization Vereist. Hiermee geeft u het autorisatieschema, de accountnaam en de handtekening. Zie Aanvragen voor Azure Storage autoriseren voor meer informatie.
Date of x-ms-date Vereist. Geef de Coordinated Universal Time (UTC) op voor de aanvraag. Zie Aanvragen voor Azure Storage autoriseren voor meer informatie.
x-ms-version Optioneel. Hiermee geeft u de versie van de bewerking te gebruiken voor deze aanvraag. Zie Versiebeheer voor de Azure Storage-services voor meer informatie.
x-ms-blob-public-access Optioneel. Hiermee geeft u op of gegevens in de container openbaar toegankelijk zijn en het toegangsniveau. Mogelijke waarden zijn:

- container: hiermee geeft u volledige openbare leestoegang voor container- en blobgegevens op. Clients kunnen blobs in de container opsommen via een anonieme aanvraag, maar kunnen geen containers in het opslagaccount opsommen.
- blob: Hiermee geeft u openbare leestoegang voor blobs. Blobgegevens in deze container kunnen worden gelezen via een anonieme aanvraag, maar containergegevens zijn niet beschikbaar. Clients kunnen geen blobs in de container opsommen via een anonieme aanvraag.

Als deze header niet is opgenomen in de aanvraag, zijn de containergegevens privé voor de accounteigenaar.

Houd er rekening mee dat het instellen van openbare toegang voor een container in een Azure Premium Storage-account niet is toegestaan.
x-ms-lease-id: <ID> Optioneel, versie 2012-02-12 en hoger. Als deze is opgegeven, Set Container ACL slaagt dit alleen als de lease van de container actief is en overeenkomt met deze id. Als er geen actieve lease is of als de id niet overeenkomt, wordt 412 (voorwaarde mislukt) geretourneerd.
x-ms-client-request-id Optioneel. Biedt een door de client gegenereerde, ondoorzichtige waarde met een limiet van 1 kibibyte (KiB) die wordt vastgelegd in de logboeken wanneer logboekregistratie is geconfigureerd. We raden u ten zeerste aan deze header te gebruiken om activiteiten aan de clientzijde te correleren met aanvragen die de server ontvangt. Zie Azure Blob Storage bewaken voor meer informatie.

Deze bewerking ondersteunt ook het gebruik van voorwaardelijke headers om de bewerking alleen uit te voeren als aan een opgegeven voorwaarde wordt voldaan. Zie Voorwaardelijke headers opgeven voor blobservicebewerkingen voor meer informatie.

Aanvraagbody

Als u een opgeslagen toegangsbeleid wilt opgeven, geeft u een unieke id en toegangsbeleid op in de aanvraagbody voor de Set Container ACL bewerking.

Het SignedIdentifier element bevat de unieke id, zoals opgegeven in het Id -element, en de details van het toegangsbeleid, zoals opgegeven in het AccessPolicy -element. De maximale lengte van de unieke id is 64 tekens.

De Start velden en Expiry moeten worden uitgedrukt in UTC-tijden en moeten voldoen aan een geldige ISO 8061-indeling. Ondersteunde ISO 8061-indelingen zijn onder andere:

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

Voor het datumgedeelte van deze notaties YYYY is een jaarweergave van vier cijfers, MM een maandweergave van twee cijfers en DD een dagweergave van twee cijfers. Voor het tijdgedeelte hh is de uurweergave in 24-uursnotatie, mm is de minuutweergave van twee cijfers, ss de tweede weergave van twee cijfers en fffffff de weergave van zeven milliseconden. Een tijd-aanduiding T scheidt de datum- en tijdgedeelten van de tekenreeks en een tijdzone-aanduiding TZD geeft een tijdzone op.

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

Voorbeeldaanvraag

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>  
  

Antwoord

Het antwoord bevat een HTTP-statuscode en een set antwoordheaders.

Statuscode

Een geslaagde bewerking retourneert statuscode 200 (OK).

Zie Status- en foutcodes voor meer informatie over statuscodes.

Antwoordheaders

Het antwoord voor deze bewerking bevat de volgende headers. Het antwoord kan ook extra standaard-HTTP-headers bevatten. Alle standaardheaders voldoen aan de HTTP/1.1-protocolspecificatie.

Antwoordheader Description
ETag De ETag voor de container. Als de aanvraagversie 2011-08-18 of hoger is, staat de ETag-waarde tussen aanhalingstekens.
Last-Modified Retourneert de datum en tijd waarop de container voor het laatst is gewijzigd. De datumnotatie volgt RFC 1123. Zie Datum-/tijdwaarden weergeven in kopteksten voor meer informatie.

Elke bewerking die de container of de eigenschappen of metagegevens ervan wijzigt, wordt het tijdstip van de laatste wijziging bijgewerkt, inclusief het instellen van de machtigingen van de container. Bewerkingen op blobs hebben geen invloed op het tijdstip van de laatste wijziging van de container.
x-ms-request-id Identificeert op unieke wijze de aanvraag die is gedaan en kan worden gebruikt om problemen met de aanvraag op te lossen. Zie Problemen met API-bewerkingen oplossen voor meer informatie
x-ms-version Geeft de blobserviceversie aan die is gebruikt om de aanvraag uit te voeren. Deze header wordt geretourneerd voor aanvragen die zijn gedaan op basis van versie 2009-09-19 en hoger.
Date Een UTC-datum/tijd-waarde die wordt gegenereerd door de service, die de tijd aangeeft waarop het antwoord is gestart.
x-ms-client-request-id Kan worden gebruikt om problemen met aanvragen en bijbehorende antwoorden op te lossen. De waarde van deze header is gelijk aan de waarde van de x-ms-client-request-id header als deze aanwezig is in de aanvraag en de waarde niet meer dan 1024 zichtbare ASCII-tekens bevat. Als de x-ms-client-request-id header niet aanwezig is in de aanvraag, is deze niet aanwezig in het antwoord.

Voorbeeldantwoord

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  

Autorisatie

De Set Container ACL bewerking ondersteunt alleen autorisatie van gedeelde sleutels.

Opmerkingen

Alleen de accounteigenaar heeft toegang tot resources in een bepaalde container, tenzij de eigenaar heeft opgegeven dat containerresources beschikbaar zijn voor openbare toegang door de machtigingen voor de container in te stellen of een shared access signature heeft uitgegeven voor een resource in de container.

Wanneer u machtigingen instelt voor een container, worden de bestaande machtigingen vervangen. Als u de machtigingen van de container wilt bijwerken, roept u ACL voor container ophalen aan om alle toegangsbeleidsregels op te halen die zijn gekoppeld aan de container. Wijzig het toegangsbeleid dat u wilt wijzigen en roep Set Container ACL vervolgens aan met de volledige set gegevens om de update uit te voeren.

Anonieme openbare toegang tot containergegevens inschakelen

Als u anonieme openbare leestoegang tot containergegevens wilt inschakelen, roept Set Container ACL u aan met de x-ms-blob-public-access header ingesteld op container of blob. Als u anonieme toegang wilt uitschakelen, roept u aan Set Container ACL zonder de x-ms-blob-public-access header op te geven.

Als u instelt x-ms-blob-public-access op blob, kunnen clients de volgende bewerkingen anoniem aanroepen:

Als u instelt x-ms-blob-public-access op container, kunnen clients de volgende bewerkingen anoniem aanroepen:

Toegangsbeleid op containerniveau instellen

Een opgeslagen toegangsbeleid kan de begintijd, verlooptijd en machtigingen opgeven voor de shared access signatures waaraan het is gekoppeld. Afhankelijk van hoe u de toegang tot uw container of blobresource wilt beheren, kunt u al deze parameters opgeven in het opgeslagen toegangsbeleid en deze weglaten uit de URL voor de shared access signature. Op deze manier kunt u het gedrag van de bijbehorende handtekening op elk gewenst moment wijzigen of intrekken. U kunt ook een of meer parameters voor toegangsbeleid opgeven in het opgeslagen toegangsbeleid en de andere parameters op de URL. Ten slotte kunt u alle parameters op de URL opgeven. In dit geval kunt u het opgeslagen toegangsbeleid gebruiken om de handtekening in te trekken, maar niet om het gedrag ervan te wijzigen. Zie Een opgeslagen toegangsbeleid definiëren voor meer informatie.

De handtekening voor gedeelde toegang en het opgeslagen toegangsbeleid moeten samen alle velden bevatten die nodig zijn om de handtekening te autoriseren. Als er vereiste velden ontbreken, mislukt de aanvraag. Als er een veld is opgegeven in zowel de SHARED Access Signature-URL als het opgeslagen toegangsbeleid, mislukt de aanvraag met statuscode 400 (Ongeldige aanvraag).

Maximaal vijf afzonderlijke toegangsbeleidsregels kunnen op elk gewenst moment worden ingesteld voor één container. Als er meer dan vijf toegangsbeleidsregels worden doorgegeven in de aanvraagbody, retourneert de service statuscode 400 (Ongeldige aanvraag).

Een shared access signature kan worden uitgegeven voor een container of een blob, ongeacht of containergegevens beschikbaar zijn voor anonieme leestoegang. Een handtekening voor gedeelde toegang biedt meer controle over hoe, wanneer en voor wie een resource toegankelijk wordt gemaakt.

Notitie

Wanneer u een opgeslagen toegangsbeleid instelt voor een container, kan het tot 30 seconden duren voordat het beleid van kracht wordt. Tijdens dit interval, totdat het beleid actief wordt, mislukt een shared access signature die is gekoppeld aan het opgeslagen toegangsbeleid met statuscode 403 (Verboden).

Billing

Prijsaanvragen kunnen afkomstig zijn van clients die gebruikmaken van Blob Storage-API's, rechtstreeks via de Blob Storage REST API of vanuit een Azure Storage-clientbibliotheek. Met deze aanvragen worden kosten per transactie in rekening gebracht. Het type transactie is van invloed op de manier waarop de rekening in rekening wordt gebracht. Leestransacties worden bijvoorbeeld toegevoegd aan een andere factureringscategorie dan schrijftransacties. In de volgende tabel ziet u de factureringscategorie voor Set Container ACL aanvragen op basis van het type opslagaccount:

Bewerking Type opslagaccount Factureringscategorie
Container-ACL instellen Premium-blok-blob
Standard v2 voor algemeen gebruik
Andere bewerkingen
Container-ACL instellen Standard v1 voor algemeen gebruik Schrijfbewerkingen

Zie prijzen voor Azure Blob Storage voor meer informatie over prijzen voor de opgegeven factureringscategorie.

Zie ook

Toegang tot containers en blobs beperken
Toegang delegeren met een shared access signature
Een shared access signature maken en gebruiken
Opgeslagen toegangsbeleid definiëren
Container-ACL ophalen
Aanvragen voor Azure Storage autoriseren
Status en foutcodes
Foutcodes voor de Blob-service