Definieren einer gespeicherten Zugriffsrichtlinie
Eine gespeicherte Zugriffsrichtlinie bietet eine zusätzliche Kontrolle über Shared Access Signatures (SASs) auf Dienstebene auf serverseitiger Seite. Durch Festlegen einer gespeicherten Zugriffsrichtlinie können SAS (Shared Access Signatures) gruppiert werden, und es werden zusätzliche Einschränkungen für Signaturen bereitgestellt, die von der Richtlinie abhängig sind.
Sie können mithilfe einer gespeicherten Zugriffsrichtlinie die Startzeit, Ablaufzeit oder Berechtigungen für eine Signatur ändern. Außerdem können Sie mit einer gespeicherten Zugriffsrichtlinie eine Signatur widerrufen, nachdem sie ausgegeben wurde.
Die folgenden Speicherressourcen unterstützen gespeicherte Zugriffsrichtlinien:
- Blobcontainer
- Dateifreigaben
- Warteschlangen
- Tabellen
Hinweis
Eine gespeicherte Zugriffsrichtlinie für einen Container kann einer Shared Access Signature zugeordnet werden, die dem Container selbst oder den darin enthaltenen Blobs Berechtigungen erteilt. Ebenso kann eine gespeicherte Zugriffsrichtlinie auf einer Dateifreigabe einer Shared Access Signature zugeordnet werden, die der Freigabe selbst oder den darin enthaltenen Dateien Berechtigungen erteilt.
Gespeicherte Zugriffsrichtlinien werden für die SAS für die Benutzerdelegierung oder die Konto-SAS nicht unterstützt.
Erstellen oder Ändern einer gespeicherten Zugriffsrichtlinie
Die Zugriffsrichtlinie für eine SAS umfasst die Startzeit, die Ablaufzeit und Berechtigungen für die Signatur. Sie können eine der folgenden Optionen angeben oder kombinieren:
- Alle diese Parameter für den Signatur-URI und keine für die gespeicherte Zugriffsrichtlinie
- Alle diese Parameter für die gespeicherte Zugriffsrichtlinie und keine für den URI
Sie können jedoch keinen Parameter sowohl für das SAS-Token als auch für die gespeicherte Zugriffsrichtlinie angeben.
Wenn Sie eine gespeicherte Zugriffsrichtlinie erstellen oder ändern möchten, rufen Sie den Vorgang Set ACL
für die Ressource (siehe Festlegen der Container-ACL, Festlegen der Warteschlangen-ACL, Festlegen der Tabellen-ACL oder Festlegen der Freigabe-ACL) mit einem Anforderungstext auf, der die Bestimmungen der Zugriffsrichtlinie angibt. Der Text der Anforderung enthält einen eindeutigen signierten Bezeichner Ihrer Wahl, der bis zu 64 Zeichen lang ist. Der Text der Anforderung enthält auch optionale Parameter der Zugriffsrichtlinie, wie folgt:
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>unique-64-char-value</Id>
<AccessPolicy>
<Start>start-time</Start>
<Expiry>expiry-time</Expiry>
<Permission>abbreviated-permission-list</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
Sie können maximal fünf Zugriffsrichtlinien für einen Container, eine Tabelle, eine Warteschlange oder eine Freigabe gleichzeitig festlegen. Jedes SignedIdentifier
-Feld mit dem zugehörigen eindeutigen Id
-Feld entspricht einer Zugriffsrichtlinie. Der Versuch, mehr als fünf Zugriffsrichtlinien gleichzeitig festzulegen, führt dazu, dass der Dienst status Code 400 (Ungültige Anforderung) zurückgibt.
Hinweis
Wenn Sie eine gespeicherte Zugriffsrichtlinie für einen Container, eine Tabelle, eine Warteschlange oder eine Freigabe erstellen oder aktualisieren, kann es bis zu 30 Sekunden dauern, bis die Änderung wirksam wird. Während dieses Intervalls können Anforderungen an eine Shared Access Signature, die der gespeicherten Zugriffsrichtlinie zugeordnet ist, mit status Code 403 (Verboten) fehlschlagen, bis die Zugriffsrichtlinie aktiv wird.
Sie können keine Bereichseinschränkungen für Tabellenentitäten (startpk
, startrk
, endpk
und endrk
) in einer gespeicherten Zugriffsrichtlinie angeben.
Ändern oder Widerrufen einer gespeicherten Zugriffsrichtlinie
Um die Parameter einer gespeicherten Zugriffsrichtlinie zu ändern, können Sie den Vorgang für die Zugriffssteuerungsliste (Access Control List, ACL) für den Ressourcentyp aufrufen, um die vorhandene Richtlinie zu ersetzen. Geben Sie in diesem Vorgang eine neue Startzeit, eine neue Ablaufzeit oder einen Satz von Berechtigungen an.
Wenn die vorhandene Richtlinie einer Ressource Lese- und Schreibberechtigungen gewährt, können Sie sie z. B. ändern, um für alle zukünftigen Anforderungen ausschließlich Leseberechtigungen zu gewähren. In diesem Fall wäre der signierte Bezeichner der neuen Richtlinie, wie im ID
Feld angegeben, mit dem signierten Bezeichner der Richtlinie identisch, die Sie ersetzen.
Wenn Sie eine gespeicherte Zugriffsrichtlinie widerrufen möchten, können Sie sie löschen, umbenennen, indem Sie den signierten Bezeichner ändern, oder ihre Ablaufzeit in einen Wert in der Vergangenheit ändern. Durch die Änderung des signierten Bezeichners werden die Zuordnungen zwischen vorhandenen Signaturen und der gespeicherten Zugriffsrichtlinie aufgehoben. Das Ändern der Ablaufzeit in einen Wert in der Vergangenheit führt dazu, dass alle zugeordneten Signaturen ablaufen. Das Löschen oder Ändern der gespeicherten Zugriffsrichtlinie wirkt sich sofort auf alle ihr zugeordneten SAS (Shared Access Signatures) aus.
Um eine einzelne Zugriffsrichtlinie zu entfernen, rufen Sie den Vorgang der Ressource auf Set ACL
. Übergeben Sie den Satz signierter Bezeichner, den Sie für den Container verwalten möchten. Wenn Sie alle Zugriffsrichtlinien aus der Ressource entfernen möchten, rufen Sie den Vorgang Set ACL
mit einem leeren Anforderungstext auf.