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:
Blokkeringslijst ophalen (alleen voor de vastgelegde blokkeringslijst)
Als u instelt x-ms-blob-public-access
op container
, kunnen clients de volgende bewerkingen anoniem aanroepen:
De bewerkingen voor blobtoegang die worden vermeld in de vorige sectie.
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