(0) exportieren Drucken
Alle erweitern

Set Container ACL

Letzte Aktualisierung: April 2014

Der Set Container ACL-Vorgang legt die Berechtigungen für den angegebenen Container fest. Die Berechtigungen geben an, ob öffentlicher Zugriff auf BLOBs in einem Container zulässig ist.

Ab Version 2009-09-19 bieten die Containerberechtigungen die folgenden Optionen zum Verwalten des Containerzugriffs:

  • Vollständiger öffentlicher Lesezugriff: Container und BLOB-Daten können über anonyme Anforderungen gelesen werden. Clients können BLOBs innerhalb des Containers über anonyme Anforderungen auflisten, Container innerhalb des Speicherkontos können jedoch nicht aufgelistet werden.

  • Öffentlicher Lesezugriff nur für BLOBs: BLOB-Daten in diesem Container können über eine anonyme Anforderung gelesen werden, Containerdaten sind jedoch nicht verfügbar. Clients können BLOBs innerhalb des Containers nicht über anonyme Anforderungen auflisten.

  • Kein öffentlicher Lesezugriff: Container und BLOB-Daten können nur vom Kontobesitzer gelesen werden.

Mit Set Container ACL wird außerdem eine gespeicherte Zugriffsrichtlinie für die Verwendung mit SAS (Shared Access Signatures, Signaturen für gemeinsamen Zugriff) festgelegt. Weitere Informationen finden Sie unter Verwenden einer gespeicherten Zugriffsrichtlinie.

Sämtlicher Zugriff auf den Container ist anonym, wie auch der Zugriff über eine SAS.

Die Set Container ACL-Anforderung kann wie folgt erstellt werden. HTTPS wird empfohlen. Ersetzen Sie myaccount durch den Namen Ihres Speicherkontos:

 

Methode Anforderungs-URI HTTP-Version

PUT

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl

HTTP/1.1

Wenn Sie eine Anforderung für den emulierten Speicherdienst ausführen, geben Sie den Emulatorhostnamen und den Port des Blob-Diensts mit 127.0.0.1:10000 an, gefolgt vom Namen des emulierten Speicherkontos:

 

Methode Anforderungs-URI HTTP-Version

PUT

http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=acl

HTTP/1.1

Weitere Informationen finden Sie unter Einsatz des Azure-Speicheremulators für Entwicklung und Tests.

Im Anforderungs-URI können die folgenden zusätzlichen Parameter angegeben werden.

 

Parameter Beschreibung

timeout

Optional. Der timeout-Parameter wird in Sekunden angegeben. Weitere Informationen finden Sie unter Festlegen von Timeouts für Blob-Dienstvorgänge.

In der folgenden Tabelle werden erforderliche und optionale Anforderungsheader beschrieben.

 

Anforderungsheader Beschreibung

Authorization

Erforderlich. Gibt das Authentifizierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Authentifizierung für die Azure-Speicherdienste.

Date - oder - x-ms-date

Erforderlich. Gibt die Uhrzeit der Anforderung in koordinierter Weltzeit (UTC) an. Weitere Informationen finden Sie unter Authentifizierung für die Azure-Speicherdienste.

x-ms-version

Optional. Gibt die Version des für die Anforderung zu verwendenden Vorgangs an. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure-Speicherdienste.

x-ms-blob-public-access

Optional. Gibt an, ob öffentlicher Zugriff auf Daten im Container zulässig ist, und gibt die Zugriffsebene an. Zulässige Werte:

  • container: Gibt vollständigen öffentlichen Lesezugriff für Container- und BLOB-Daten an. Clients können BLOBs innerhalb des Containers über anonyme Anforderungen auflisten, Container innerhalb des Speicherkontos können jedoch nicht aufgelistet werden.

  • blob:: Gibt öffentlichen Lesezugriff für BLOBs an. BLOB-Daten im Container können per anonymer Anforderung gelesen werden, Containerdaten sind jedoch nicht verfügbar. Clients können BLOBs innerhalb des Containers nicht über anonyme Anforderungen auflisten.

Wenn dieser Header nicht in der Anforderung enthalten ist, sind Containerdaten für den Kontobesitzer privat.

x-ms-lease-id: <ID>

Optional, Version 2012-02-12 und höher. Falls angegeben, wird Set Container ACL nur erfolgreich ausgeführt, wenn die Containerleasedauer aktiv ist und dieser ID entspricht. Wenn keine aktive Leasedauer vorhanden ist oder die ID nicht übereinstimmt, wird der Statuscode 412 (Vorbedingung nicht erfüllt) zurückgegeben.

x-ms-client-request-id

Optional. Stellt einen vom Client generierten, nicht transparenten Wert mit einer Zeichenbeschränkung von 1 KB bereit, der in den Analyseprotokollen erfasst wird, wenn die Protokollierung der Speicheranalyse aktiviert ist. Die Verwendung dieses Headers wird dringend empfohlen, um clientseitige Aktivitäten mit den vom Server empfangenen Anforderungen zu korrelieren. Weitere Informationen finden Sie unter Informationen zur Protokollierung durch die Speicheranalyse und Windows Azure-Protokollierung: Verwenden von Protokollen zur Nachverfolgung von Speicheranforderungen.

Dieser Vorgang unterstützt zudem die Verwendung von bedingten Headern zum Ausführen des Vorgangs, wobei eine bestimmte Bedingung erfüllt sein muss. Weitere Informationen finden Sie unter Angeben von bedingten Headern für Vorgänge des Blob-Diensts.

Sie geben eine gespeicherte Zugriffsrichtlinie an, indem Sie im Anforderungstext für den Set Container ACL-Vorgang einen eindeutigen Bezeichner und eine Zugriffsrichtlinie bereitstellen.

Das SignedIdentifier-Element enthält den eindeutigen Bezeichner, der im Id-Element angegeben ist, und die Details der Zugriffsrichtlinie, die im AccessPolicy-Element angegeben sind. Die maximale Länge des eindeutigen Bezeichners beträgt 64 Zeichen.

Das Start-Feld und das Expiry-Feld müssen als UTC-Zeit ausgedrückt werden und einem gültigen ISO 8061-Format entsprechen. Folgende ISO 8061-Formate werden unterstützt:

  • YYYY-MM-DD

  • YYYY-MM-DDThh:mmTZD

  • YYYY-MM-DDThh:mm:ssTZD

  • YYYY-MM-DDThh:mm:ss.fffffffTZD

Im Datumsteil dieser Formate ist YYYY die vierstellige Darstellung des Jahrs, MM die zweistellige Darstellung des Monats und DD die zweistellige Darstellung des Tags. Im Uhrzeitteil ist hh die Darstellung der Stunden in 24-Stunden-Notation, mm die zweistellige Darstellung der Minuten, ss die zweistellige Darstellung der Sekunden und fffffff die siebenstellige Darstellung der Millisekunden. Der Zeitkennzeichner T trennt den Datums- und Uhrzeitteil der Zeichenfolge, und der Zeitzonenkennzeichner TZD gibt die Zeitzone an.

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

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>

Die Antwort enthält den HTTP-Statuscode und einen Satz von Antwortheadern.

Bei einem erfolgreichen Vorgang wird der Statuscode 200 (OK) zurückgegeben.

Weitere Informationen zu Statuscodes finden Sie unter Status- und Fehlercodes.

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann außerdem weitere HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

 

Antwortheader Beschreibung

ETag

Das ETag für den Container. Wenn die Anforderungsversion 2011-08-18 oder höher ist, wird der ETag-Wert in Anführungszeichen eingeschlossen.

Last-Modified

Gibt das Datum und die Uhrzeit der letzten Änderung des Containers zurück. Das Datumsformat entspricht RFC 1123. Weitere Informationen finden Sie unter Darstellung von Datums-/Uhrzeitwerten in Headern.

Durch jeden Vorgang, der den Container, seine Eigenschaften oder Metadaten ändert, wird der Zeitpunkt der letzten Änderung, einschließlich des Festlegens der Berechtigungen für den Container, geändert. Vorgänge für BLOBs sind ohne Auswirkung auf den Zeitpunkt der letzten Änderung des Containers.

x-ms-request-id

Dieser Header identifiziert die erfolgte Anforderung eindeutig und kann für die Problembehandlung der Anforderung verwendet werden. Weitere Informationen finden Sie unter Problembehandlung für API-Vorgänge.

x-ms-version

Gibt die Version des Blob-Diensts an, der zum Ausführen der Abfrage verwendet wird. Dieser Header wird für Anforderungen zurückgegeben, die für Version 2009-09-19 und höher erfolgen.

Date

Ein vom Dienst generierter Datums-/Uhrzeitwert in UTC, der angibt, wann die Antwort initiiert wurde.

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

Dieser Vorgang kann nur vom Kontobesitzer aufgerufen werden.

Nur der Kontobesitzer hat Zugriff auf Ressourcen in einem bestimmten Container, es sei denn, der Besitzer hat durch Festlegen der Berechtigungen für den Container öffentlichen Zugriff auf Containerressourcen zugelassen oder eine SAS für eine Ressource im Container ausgegeben.

Wenn Sie Berechtigungen für einen Container festlegen, werden die vorhandenen Berechtigungen ersetzt. Um die Berechtigungen des Containers zu aktualisieren, rufen Sie Get Container ACL auf, um alle dem Container zugeordneten Zugriffsrichtlinien abzurufen, ändern Sie die gewünschte Zugriffsrichtlinie, und rufen Sie anschließend Set Container ACL mit dem vollständigen Satz von Daten auf, um das Update durchzuführen.

Aktivieren von anonymem öffentlichen Zugriff auf Containerdaten

Um anonymen öffentlichen Lesezugriff auf Containerdaten zu aktivieren, rufen Sie Set Container ACL auf, und legen Sie dabei den x-ms-blob-public-access-Header auf container oder blob fest. Um den anonymen Zugriff zu deaktivieren, rufen Sie Set Container ACL auf, ohne den x-ms-blob-public-access-Header anzugeben.

Wenn Sie x-ms-blob-public-access auf blob festlegen, können Clients die folgenden Vorgänge anonym aufrufen:

Wenn Sie x-ms-blob-public-access auf container festlegen, können Clients die folgenden Vorgänge anonym aufrufen:

Festlegen von Zugriffsrichtlinien auf Containerebene

Eine gespeicherte Zugriffsrichtlinie kann die Startzeit, die Ablaufzeit und die Berechtigungen für die SAS angeben, denen sie zugeordnet ist. Je nachdem, wie Sie den Zugriff auf die Container- oder BLOB-Ressource steuern möchten, können Sie alle diese Parameter in der gespeicherten Zugriffsrichtlinie angeben und sie in der URL für die SAS auslassen. Auf diese Weise können Sie das Verhalten der zugeordneten Signatur jederzeit ändern sowie aufheben. Oder Sie können einen oder mehrere der Zugriffsrichtlinienparameter in der gespeicherten Zugriffsrichtlinie und die anderen Zugriffsrichtlinienparameter in der URL angeben. Schließlich können Sie alle Parameter in der URL angeben. In diesem Fall können Sie die gespeicherte Zugriffsrichtlinie verwenden, um die Signatur aufzuheben, aber nicht um ihr Verhalten zu ändern. Weitere Informationen zum Festlegen von Zugriffsrichtlinien finden Sie unter Verwenden einer gespeicherten Zugriffsrichtlinie.

Die SAS und die gespeicherte Zugriffsrichtlinie müssen zusammen alle Felder enthalten, die zum Authentifizieren der Signatur erforderlich sind. Wenn eines der Pflichtfelder fehlt, schlägt die Anforderung fehl. Wenn ein Feld sowohl in der URL der SAS als auch in der gespeicherten Zugriffsrichtlinie angegeben ist, schlägt die Anforderung mit dem Statuscode 400 (Ungültige Anforderung) fehl. Weitere Informationen zu den Feldern, aus denen eine SAS besteht, finden Sie unter Creating a Shared Access Signature.

Für einen Container können höchstens fünf separate Zugriffsrichtlinien gleichzeitig festgelegt werden. Wenn im Anforderungstext mehr als fünf Zugriffsrichtlinien übergeben werden, gibt der Dienst den Statuscode 400 (Ungültige Anforderung) zurück.

Eine SAS für einen Container oder ein BLOB kann unabhängig davon ausgegeben werden, ob Containerdaten für anonymen Lesezugriff verfügbar sind. Mit einer SAS lässt sich genauer steuern, wie, wann und für wen eine Ressource verfügbar gemacht wird.

noteHinweis
Wenn Sie eine gespeicherte Zugriffsrichtlinie für einen Container einrichten, kann es bis zu 30 Sekunden dauern, bis die Richtlinie angewendet wird. Während dieses Intervalls schlägt eine SAS, die der gespeicherten Zugriffsrichtlinie zugeordnet ist, mit dem Statuscode 403 (Unzulässig) so lange fehl, bis die Zugriffsrichtlinie aktiv ist.

Anzeigen:
© 2014 Microsoft