Durchsuchen von gespeicherten Zugriffsrichtlinien
Eine gespeicherte Zugriffsrichtlinie bietet eine zusätzliche Kontrolle über freigegebene Zugriffssignaturen auf Dienstebene (SAS) auf serverseitiger Seite. Durch das Festlegen einer gespeicherten Zugriffsrichtlinie werden SAS gruppiert und zusätzliche Einschränkungen für Signaturen bereitgestellt, die von der Richtlinie abhängig sind. Sie können eine gespeicherte Zugriffsrichtlinie verwenden, um die Startzeit, die Ablaufzeit oder die Berechtigungen für eine Signatur zu ändern oder sie nach der Ausstellung zu widerrufen.
Die folgenden Speicherressourcen unterstützen gespeicherte Zugriffsrichtlinien:
- Blobcontainer
- Dateifreigaben
- Warteschlangen
- Tabellen
Erstellen einer gespeicherten Zugriffsrichtlinie
Die Zugriffsrichtlinie für ein SAS besteht aus der Startzeit, der Ablaufzeit und den Berechtigungen für die Signatur. Sie können alle diese Parameter für den Signatur-URI und keine innerhalb der gespeicherten Zugriffsrichtlinie angeben; alle innerhalb der gespeicherten Zugriffsrichtlinie und keine auf dem URI; oder eine Kombination der beiden. Sie können jedoch keinen bestimmten Parameter sowohl für das SAS-Token als auch für die gespeicherte Zugriffsrichtlinie angeben.
Um eine gespeicherte Zugriffsrichtlinie zu erstellen oder zu ändern, rufen Sie den Set ACL Vorgang für die Ressource auf (siehe Set Container ACL, Set Queue ACL, Set Table ACLoder Set Share ACL) mit einem Anforderungstext, der die Bedingungen der Zugriffsrichtlinie angibt. Der Textkörper der Anforderung enthält einen eindeutigen signierten Bezeichner Ihrer Wahl, bis zu 64 Zeichen Länge, sowie die optionalen Parameter der Zugriffsrichtlinie, wie folgt:
Anmerkung
Wenn Sie eine gespeicherte Zugriffsrichtlinie für einen Container, eine Tabelle, Warteschlange oder Freigabe einrichten, kann es bis zu 30 Sekunden dauern, bis sie wirksam wird. Während dieser Zeit können Anforderungen an ein SAS, das der gespeicherten Zugriffsrichtlinie zugeordnet ist, mit dem Statuscode 403 (Verboten) fehlschlagen, bis die Zugriffsrichtlinie aktiv wird. Einschränkungen des Tabellenentitätsbereichs (startpk, startrk, endpkund endrk) können in einer gespeicherten Zugriffsrichtlinie nicht angegeben werden.
Es folgen Beispiele für das Erstellen einer gespeicherten Zugriffsrichtlinie mithilfe von C# .NET und der Azure CLI.
BlobSignedIdentifier identifier = new BlobSignedIdentifier
{
Id = "stored access policy identifier",
AccessPolicy = new BlobAccessPolicy
{
ExpiresOn = DateTimeOffset.UtcNow.AddHours(1),
Permissions = "rw"
}
};
blobContainer.SetAccessPolicy(permissions: new BlobSignedIdentifier[] { identifier });
az storage container policy create \
--name <stored access policy identifier> \
--container-name <container name> \
--start <start time UTC datetime> \
--expiry <expiry time UTC datetime> \
--permissions <(a)dd, (c)reate, (d)elete, (l)ist, (r)ead, or (w)rite> \
--account-key <storage account key> \
--account-name <storage account name> \
Ändern oder Widerrufen einer gespeicherten Zugriffsrichtlinie
Um die Parameter der gespeicherten Zugriffsrichtlinie zu ändern, können Sie den Zugriffssteuerungslistenvorgang für den Ressourcentyp aufrufen, um die vorhandene Richtlinie zu ersetzen. Wenn Ihre vorhandene Richtlinie beispielsweise Lese- und Schreibberechtigungen für eine Ressource gewährt, können Sie sie ändern, um nur Leseberechtigungen für alle zukünftigen Anforderungen zu erteilen.
Um eine gespeicherte Zugriffsrichtlinie zu widerrufen, können Sie sie löschen, umbenennen, indem Sie den signierten Bezeichner ändern oder die Ablaufzeit in einen Wert in der Vergangenheit ändern. Durch das Ändern des signierten Bezeichners werden die Zuordnungen zwischen vorhandenen Signaturen und der gespeicherten Zugriffsrichtlinie unterbrochen. Wenn Sie die Ablaufzeit in einen Wert in der Vergangenheit ändern, laufen alle zugehörigen Signaturen ab. Das Löschen oder Ändern der gespeicherten Zugriffsrichtlinie wirkt sich sofort auf alle damit verbundenen SAS aus.
Um eine einzelne Zugriffsrichtlinie zu entfernen, rufen Sie den Set ACL-Vorgang der Ressource auf, und übergeben Sie den Satz signierter Bezeichner, die Sie im Container verwalten möchten. Um alle Zugriffsrichtlinien aus der Ressource zu entfernen, rufen Sie den Set ACL Vorgang mit einem leeren Anforderungstext auf.