Erstellen einer Dienst-SAS
Wichtig
Für optimale Sicherheit empfiehlt Microsoft die Verwendung Microsoft Entra ID mit verwalteten Identitäten, um Anforderungen für Blob-, Warteschlangen- und Tabellendaten nach Möglichkeit zu autorisieren. Die Autorisierung mit Microsoft Entra ID und verwalteten Identitäten bietet eine überlegene Sicherheit und Benutzerfreundlichkeit gegenüber der Freigabeschlüsselautorisierung. Weitere Informationen finden Sie unter Autorisieren mit Microsoft Entra ID. Weitere Informationen zu verwalteten Identitäten finden Sie unter Was sind verwaltete Identitäten für Azure-Ressourcen?
Für Ressourcen, die außerhalb von Azure gehostet werden, z. B. lokale Anwendungen, können Sie verwaltete Identitäten über Azure Arc verwenden. Beispielsweise können Apps, die auf Azure Arc-fähigen Servern ausgeführt werden, verwaltete Identitäten verwenden, um eine Verbindung mit Azure-Diensten herzustellen. Weitere Informationen finden Sie unter Authentifizieren bei Azure-Ressourcen mit Azure Arc-fähigen Servern.
Für Szenarien, in denen SAS (Shared Access Signatures) verwendet werden, empfiehlt Microsoft die Verwendung einer SAS für die Benutzerdelegierung. Eine Benutzerdelegierungs-SAS wird mit Microsoft Entra Anmeldeinformationen anstelle des Kontoschlüssels gesichert. Informationen zu Shared Access Signatures finden Sie unter Create einer Benutzerdelegierungs-SAS.
Eine Sas (Shared Access Signature) delegiert den Zugriff auf eine Ressource nur in einem der Speicherdienste: Azure Blob Storage, Azure Queue Storage, Azure Table Storage oder Azure Files. Der URI für eine SAS auf Dienstebene besteht aus dem URI an die Ressource, für die die SAS den Zugriff delegiert, gefolgt vom SAS-Token.
Das SAS-Token ist die Abfragezeichenfolge, die alle Informationen enthält, die zum Autorisieren einer Anforderung erforderlich sind. Das Token gibt die Ressource an, auf die ein Client zugreifen kann, die erteilten Berechtigungen und den Zeitraum, in dem die Signatur gültig ist.
Eine SAS kann auch die unterstützte IP-Adresse oder den Adressbereich angeben, aus dem Anforderungen stammen können, das unterstützte Protokoll, mit dem eine Anforderung gestellt werden kann, oder einen optionalen Zugriffsrichtlinienbezeichner, der der Anforderung zugeordnet ist.
Schließlich enthält jedes SAS-Token eine Signatur.
Achtung
Shared Access Signatures sind Schlüssel, die Speicherressourcen Berechtigungen erteilen, und Sie sollten sie genauso schützen wie einen Kontoschlüssel. Es ist wichtig, eine SAS vor böswilliger oder unbeabsichtigter Verwendung zu schützen. Verteilen Sie eine SAS mit Diskretion, und halten Sie einen Plan für den Widerruf einer kompromittierten SAS bereit. Vorgänge, die Shared Access Signaturen verwenden, sollten nur über eine HTTPS-Verbindung ausgeführt werden, und SAS-URIs sollten nur über eine sichere Verbindung wie HTTPS verteilt werden.
Autorisieren einer Dienst-SAS
Sie sichern eine Konto-SAS mithilfe eines Speicherkontoschlüssels. Wenn Sie eine Konto-SAS erstellen, muss Ihre Clientanwendung über den Kontoschlüssel verfügen.
Um Microsoft Entra Anmeldeinformationen zum Sichern einer SAS für einen Container oder Blob zu verwenden, erstellen Sie eine Benutzerdelegierungs-SAS.
Service SAS-Unterstützung für verzeichnisbezogenen Zugriff
Eine Dienst-SAS unterstützt den Verzeichnisbereich (sr=d
), wenn die Autorisierungsversion (sv
) 2020-02-10 oder höher ist und ein hierarchischer Namespace aktiviert ist. Die Semantik für den Verzeichnisbereich (sr=d
) ähnelt denen für den Containerbereich (sr=c
), mit der Ausnahme, dass der Zugriff auf ein Verzeichnis und alle darin enthaltenen Dateien und Unterverzeichnisse beschränkt ist. Wenn sr=d
angegeben wird, ist auch der sdd
Abfrageparameter erforderlich.
Das Zeichenfolgen-zu-Sign-Format für die Autorisierungsversion 2020-02-10 ist unverändert.
Erstellen einer Dienst-SAS
Die folgende Abbildung stellt die Teile des Shared Access Signature-URI dar. Die erforderlichen Teile werden orange angezeigt. Die Felder, aus denen das SAS-Token besteht, werden in den folgenden Abschnitten beschrieben.
In den folgenden Abschnitten wird beschrieben, wie Sie die Parameter angeben, aus denen das Dienst-SAS-Token besteht.
Geben Sie das Feld an.signedVersion
Das signedVersion
Feld (sv
) enthält die Dienstversion der Shared Access Signature. Dieser Wert gibt die Version der Shared Key-Autorisierung an, die von dieser Shared Access Signature (im signature
Feld) verwendet wird. Der Wert gibt auch die Dienstversion für Anforderungen an, die mit dieser Shared Access Signature gestellt werden.
Informationen dazu, welche Version verwendet wird, wenn Sie Anforderungen über eine Freigegebene Zugriffssignatur ausführen, finden Sie unter Versionsverwaltung für Azure Storage-Dienste.
Informationen dazu, wie sich dieser Parameter auf die Autorisierung von Anforderungen mit einer Shared Access Signature auswirkt, finden Sie unter Delegieren des Zugriffs mit einer Shared Access Signature.
Feldname | Query parameter (Abfrageparameter) | BESCHREIBUNG |
---|---|---|
signedVersion |
sv |
Erforderlich. Unterstützt in Version 2012-02-12 und höher. Die Speicherdienstversion, die zum Autorisieren und Behandeln von Anforderungen verwendet werden soll, die Sie mit dieser Freigegebenen Zugriffssignatur stellen. Weitere Informationen finden Sie unter Versionsverwaltung für Azure Storage-Dienste. |
Ermitteln der Version einer LEGACY-SAS-Anforderung
In Legacyszenarien, in denen signedVersion
nicht verwendet wird, wendet Blob Storage Regeln an, um die Version zu bestimmen. Weitere Informationen zu diesen Regeln finden Sie unter Versionsverwaltung für Azure Storage-Dienste.
Wichtig
Bei Clientsoftware kann ein unerwartetes Protokollverhalten auftreten, wenn Sie einen Shared Access Signature-URI verwenden, der eine Speicherdienstversion verwendet, die neuer als die Clientsoftware ist. Code, der URIs für freigegebene Zugriffssignaturen erstellt, sollte auf Versionen basieren, die von der Clientsoftware verstanden werden, die Speicherdienstanforderungen stellt.
Geben Sie die signierte Ressource an (nur Blob Storage)
Das feld required signedResource
(sr
) gibt an, auf welche Ressourcen über die Shared Access Signature zugegriffen werden kann. In der folgenden Tabelle wird beschrieben, wie Sie auf eine Blob- oder Containerressource im SAS-Token verweisen.
Resource | Parameterwert | Unterstützte Versionen | BESCHREIBUNG |
---|---|---|---|
Blob | b | Alle | Gewährt Zugriff auf den Inhalt und die Metadaten des Blobs. |
Blobversion | Bv | 09.11.2018 und höher | Gewährt Zugriff auf den Inhalt und die Metadaten der Blobversion, aber nicht auf das Basisblob. |
Momentaufnahme eines Blobs | bs | 09.11.2018 und höher | Gewährt Zugriff auf den Inhalt und die Metadaten des Blob-Momentaufnahme, aber nicht auf das Basisblob. |
Container | c | Alle | Gewährt Zugriff auf den Inhalt und die Metadaten eines beliebigen Blobs im Container sowie auf die Liste der Blobs im Container. |
Verzeichnis | T | 10.02.2020 und höher | Gewährt Zugriff auf den Inhalt und die Metadaten eines beliebigen Blobs im Verzeichnis sowie auf die Liste der Blobs im Verzeichnis in einem Speicherkonto mit aktiviertem hierarchischen Namespace. Wenn für das signedResource Feld ein Verzeichnis angegeben wird, ist auch der signedDirectoryDepth Parameter (sdd ) erforderlich. Ein Verzeichnis wird immer in einem Container geschachtelt. |
Geben Sie die signierte Ressource an (Azure Files)
SAS wird für Azure Files Version 2015-02-21 und höher unterstützt.
Das signedResource
-Feld gibt die Ressourcen an, auf die über die SAS zugegriffen werden kann. In der folgenden Tabelle wird beschrieben, wie Sie auf eine Datei- oder Freigaberessource im URI verweisen.
Feldname | Query parameter (Abfrageparameter) | BESCHREIBUNG |
---|---|---|
signedResource |
sr |
Erforderlich. Geben Sie an f , ob es sich bei der freigegebenen Ressource um eine Datei handelt. Dadurch wird Zugriff auf den Inhalt und die Metadaten der Datei gewährt.Geben Sie an s , ob es sich bei der freigegebenen Ressource um eine Freigabe handelt. Dadurch wird Zugriff auf den Inhalt und die Metadaten jeder Datei in der Freigabe sowie auf die Liste der Verzeichnisse und Dateien in der Freigabe gewährt. |
Angeben von Abfrageparametern zum Überschreiben von Antwortheadern (nur Blob Storage und Azure Files)
Um Werte für bestimmte Antwortheader zu definieren, die zurückgegeben werden sollen, wenn die SAS in einer Anforderung verwendet wird, können Sie Antwortheader in Abfrageparametern angeben. Dieses Feature wird ab Version 2013-08-15 für Blob Storage und Version 2015-02-21 für Azure Files unterstützt. Shared Access Signaturen, die dieses Feature verwenden, müssen den Parameter enthalten, der sv
auf 2013-08-15
oder höher für Blob Storage oder auf 2015-02-21
oder höher für Azure Files festgelegt ist.
Die Antwortheader und die entsprechenden Abfrageparameter sind in der folgenden Tabelle aufgeführt:
Antwortheadername | Entsprechender SAS-Abfrageparameter |
---|---|
Cache-Control |
rscc |
Content-Disposition |
rscd |
Content-Encoding |
rsce |
Content-Language |
rscl |
Content-Type |
rsct |
Wenn Sie beispielsweise den rsct=binary
Abfrageparameter für eine Shared Access Signature angeben, die mit Version 2013-08-15 oder höher erstellt wurde, wird der Content-Type
Antwortheader auf binary
festgelegt. Dieser Wert überschreibt den Headerwert, der Content-Type
für das Blob für eine Anforderung gespeichert wird, die nur diese Shared Access Signature verwendet.
Wenn Sie eine Shared Access Signature erstellen, die Antwortheader als Abfrageparameter angibt, müssen Sie sie in die Zeichenfolge einfügen, die zum Erstellen der Signaturzeichenfolge verwendet wird. Weitere Informationen finden Sie im Abschnitt "Erstellen der Signaturzeichenfolge" weiter unten in diesem Artikel. Weitere Beispiele finden Sie unter Service SAS-Beispiele.
Angeben des Tabellennamens (nur Tabellenspeicher)
Im tableName
-Feld wird der Name der freizugebenden Tabelle angegeben.
Feldname | Query parameter (Abfrageparameter) | BESCHREIBUNG |
---|---|---|
tableName |
tn |
Erforderlich. Der Name der freizugebenden Tabelle. |
Angeben der Zugriffsrichtlinie
Der Teil der Zugriffsrichtlinie des URI gibt den Zeitraum an, in dem die Shared Access Signature gültig ist, und die Berechtigungen, die dem Benutzer gewährt werden sollen. Die Teile des URI, aus denen die Zugriffsrichtlinie besteht, werden in der folgenden Tabelle beschrieben:
Feldname | Query parameter (Abfrageparameter) | BESCHREIBUNG |
---|---|---|
signedStart |
st |
Optional. Der Zeitpunkt, zu dem die Shared Access Signature gültig wird, ausgedrückt in einem der akzeptierten ISO 8601 UTC-Formate. Wenn dieser Parameter ausgelassen wird, wird die aktuelle UTC-Zeit als Startzeit verwendet. In Versionen, die älter als 2012-02-12 sind, darf die Dauer zwischen signedStart und signedExpiry eine Stunde nur überschreiten, wenn eine Containerrichtlinie verwendet wird. Weitere Informationen zu akzeptierten UTC-Formaten finden Sie unter Formatieren von Datums-/Uhrzeitwerten. |
signedExpiry |
se |
Erforderlich. Der Zeitpunkt, zu dem die Shared Access Signature ungültig wird, ausgedrückt in einem der akzeptierten ISO 8601 UTC-Formate. Sie müssen dieses Feld weglassen, wenn es in einer zugeordneten gespeicherten Zugriffsrichtlinie angegeben wurde. Weitere Informationen zu akzeptierten UTC-Formaten finden Sie unter Formatieren von Datums-/Uhrzeitwerten. |
signedPermissions
1 |
sp |
Erforderlich. Die Berechtigungen, die der Shared Access Signature zugeordnet sind. Der Benutzer ist auf Vorgänge beschränkt, die durch die Berechtigungen zulässig sind. Sie müssen dieses Feld weglassen, wenn es in einer zugeordneten gespeicherten Zugriffsrichtlinie angegeben wurde. |
startPk
2startRk
2 |
spk srk |
Nur Tabellenspeicher. Optional, startPk und startRk müssen jedoch zusammen verwendet werden. Die Mindestpartitions- und Zeilenschlüssel, auf die mit dieser Shared Access Signature zugegriffen werden kann. Schlüsselwerte verstehen sich als inklusive Werte. Wenn sie weggelassen werden, gibt es keine Untergrenze für die Tabellenentitäten, auf die zugegriffen werden kann. |
endPk
2endRk
2 |
epk erk |
Nur Tabellenspeicher. Optional, endPk und endRk müssen jedoch zusammen verwendet werden. Die maximalen Partitions- und Zeilenschlüssel, auf die mit dieser Shared Access Signature zugegriffen werden kann. Schlüsselwerte verstehen sich als inklusive Werte. Wenn sie weggelassen werden, gibt es keine Obergrenze für die Tabellenentitäten, auf die zugegriffen werden kann. |
1 Das signedPermissions
Feld ist für den URI erforderlich, es sei denn, es wird als Teil einer gespeicherten Zugriffsrichtlinie angegeben.
2 Die startPk
Felder , startRk
, endPk
und endRk
können nur für Table Storage-Ressourcen angegeben werden.
Berechtigungen angeben
Die Berechtigungen, die für das signedPermissions
Feld (sp
) im SAS-Token angegeben sind, geben an, welche Vorgänge ein Client für die Ressource ausführen kann.
Sie können Berechtigungen kombinieren, damit ein Client mehrere Vorgänge mit derselben SAS ausführen kann. Wenn Sie die SAS erstellen, müssen Sie Berechtigungen in der folgenden Reihenfolge einschließen:
racwdxltmeop
Beispiele für gültige Berechtigungseinstellungen für einen Container sind rw
, rd
, wd
rl
, wl
, und rl
. Beispiele für ungültige Einstellungen sind wr
, dr
, lr
und dw
. Sie können eine Berechtigungsbezeichnung nicht mehr als einmal angeben.
Eine Dienst-SAS kann keinen Zugriff auf bestimmte Vorgänge gewähren:
- Container, Warteschlangen und Tabellen können nicht erstellt, gelöscht oder aufgelistet werden.
- Containermetadaten und -eigenschaften können nicht gelesen oder geschrieben werden.
- Warteschlangen können nicht gelöscht werden, und ihre Metadaten können nicht geschrieben werden.
- Container können nicht geleast werden.
Verwenden Sie eine Konto-SAS, um eine SAS zu erstellen, die Zugriff auf diese Vorgänge gewährt. Weitere Informationen finden Sie unter Erstellen einer SAS für ein Konto.
Wichtig
Shared Access Signatures sind Schlüssel, die Speicherressourcen Berechtigungen erteilen, und Sie sollten sie genauso schützen, wie Sie einen Kontoschlüssel schützen würden. Führen Sie Vorgänge aus, bei denen Shared Access Signatures nur über eine HTTPS-Verbindung verwendet werden, und verteilen Sie Shared Access Signature-URIs nur über eine sichere Verbindung, z. B. HTTPS.
Die Berechtigungen, die für jeden Ressourcentyp unterstützt werden, werden in den folgenden Abschnitten beschrieben.
Berechtigungen für ein Verzeichnis, einen Container oder ein Blob
Die Berechtigungen, die für jeden Ressourcentyp unterstützt werden, werden in der folgenden Tabelle beschrieben:
Berechtigung | URI-Symbol | Resource | Versionsunterstützung | Zulässige Vorgänge |
---|---|---|---|---|
Lesen | r | Container Verzeichnis Blob |
Alle | Lesen Sie den Inhalt, die Blockliste, die Eigenschaften und metadaten eines beliebigen Blobs im Container oder Verzeichnis. Verwenden Sie ein Blob als Quelle für einen Kopiervorgang. |
Hinzufügen | a | Container Verzeichnis Blob |
Alle | Fügen Sie einem Anfügeblob einen -Block hinzu. |
Erstellen | c | Container Verzeichnis Blob |
Alle | Schreiben Sie ein neues Blob, Momentaufnahme ein Blob, oder kopieren Sie ein Blob in ein neues Blob. |
Schreiben | w | Container Verzeichnis Blob |
Alle | Create oder schreiben Sie Inhalte, Eigenschaften, Metadaten oder Blockliste. Momentaufnahme oder Leasen des BLOBs. Ändern der BLOB-Größe (nur Seitenblob). Verwenden Sie das Blob als Ziel eines Kopiervorgangs. |
Löschen | T | Container Verzeichnis Blob |
Alle | Löschen eines Blobs Ab Version 2017-07-29 ermöglicht die Delete-Berechtigung auch das Unterbrechen einer Lease für ein Blob. Weitere Informationen finden Sie unter Lease Blob-Vorgang . |
Version löschen | x | Container Blob |
12.12.2019 und höher | Löschen einer Blobversion. |
Permanent delete | j | Blob | 10.02.2020 und höher | Löschen Sie ein Blob Momentaufnahme oder -Version endgültig. |
List | l | Container Verzeichnis |
Alle | Listet Blobs nicht rekursiv auf. |
Tags | t | Blob | 12.12.2019 und höher | Lesen oder Schreiben der Tags in einem Blob. |
Suchen | f | Container | 12.12.2019 und höher | Suchen sie Blobs mit Indextags. |
Move | m | Container Verzeichnis Blob |
10.02.2020 und höher | Verschieben Sie ein Blob oder ein Verzeichnis und seinen Inhalt an einen neuen Speicherort. Dieser Vorgang kann optional auf den Besitzer des untergeordneten Blobs, Verzeichnisses oder übergeordneten Verzeichnisses beschränkt werden, wenn der saoid Parameter im SAS-Token enthalten ist und das Klebbit im übergeordneten Verzeichnis festgelegt ist. |
Execute | e | Container Verzeichnis Blob |
10.02.2020 und höher | Rufen Sie die Systemeigenschaften ab, und rufen Sie die POSIX-ACL eines Blobs ab, wenn der hierarchische Namespace für das Speicherkonto aktiviert ist. Wenn der hierarchische Namespace aktiviert ist und der Aufrufer der Besitzer eines Blobs ist, gewährt diese Berechtigung die Möglichkeit, die besitzende Gruppe, POSIX-Berechtigungen und POSIX-ACL des Blobs festzulegen. erlaubt dem Aufrufer nicht, benutzerdefinierte Metadaten zu lesen. |
Besitz | o | Container Verzeichnis Blob |
10.02.2020 und höher | Wenn der hierarchische Namespace aktiviert ist, ermöglicht diese Berechtigung dem Aufrufer, den Besitzer oder die besitzende Gruppe festzulegen oder als Besitzer zu fungieren, wenn ein Verzeichnis oder Blob in einem Verzeichnis umbenannt oder gelöscht wird, in dem das sticky Bit festgelegt ist. |
Berechtigungen | p | Container Verzeichnis Blob |
10.02.2020 und höher | Wenn der hierarchische Namespace aktiviert ist, ermöglicht diese Berechtigung dem Aufrufer das Festlegen von Berechtigungen und POSIX-ACLs für Verzeichnisse und Blobs. |
Festlegen einer Unveränderlichkeitsrichtlinie | i | Container Blob |
12.06.2020 und höher | Legen Sie die Unveränderlichkeitsrichtlinie oder den gesetzlichen Haltevorgang für ein Blob fest, oder löschen Sie sie. |
Berechtigungen für eine Datei
Berechtigung | URI-Symbol | Zulässige Vorgänge |
---|---|---|
Lesen | r | Lesen Sie den Inhalt, die Eigenschaften und die Metadaten. Verwenden Sie die Datei als Quelle eines Kopiervorgangs. |
Erstellen | c | Create eine neue Datei oder kopieren Sie eine Datei in eine neue Datei. |
Schreiben | w | Create oder schreiben Sie Inhalte, Eigenschaften, Metadaten. Ändern Sie die Größe der Datei. Verwenden Sie die Datei als Ziel eines Kopiervorgangs. |
Löschen | T | Löschen der Datei |
Berechtigungen für eine Freigabe
Berechtigung | URI-Symbol | Zulässige Vorgänge |
---|---|---|
Lesen | r | Liest den Inhalt, die Eigenschaften oder Metadaten einer beliebigen Datei in der Freigabe. Verwenden Sie eine beliebige Datei in der Freigabe als Quelle eines Kopiervorgangs. |
Erstellen | c | Create eine neue Datei in der Freigabe, oder kopieren Sie eine Datei in eine neue Datei in der Freigabe. |
Schreiben | w | Erstellen oder schreiben Sie für jede Datei in der Freigabe Inhalte, Eigenschaften oder Metadaten. Ändern Sie die Größe der Datei. Verwenden Sie die Datei als Ziel eines Kopiervorgangs. Hinweis: Sie können keine Berechtigungen zum Lesen oder Schreiben von Freigabeeigenschaften oder Metadaten mithilfe einer Dienst-SAS erteilen. Verwenden Sie stattdessen eine Konto-SAS. |
Löschen | T | Löschen Sie eine beliebige Datei in der Freigabe. Hinweis: Sie können keine Berechtigungen zum Löschen einer Freigabe mithilfe einer Dienst-SAS erteilen. Verwenden Sie stattdessen eine Konto-SAS. |
List | l | Auflisten von Dateien und Verzeichnissen in der Freigabe. |
Berechtigungen für eine Warteschlange
Berechtigung | URI-Symbol | Zulässige Vorgänge |
---|---|---|
Lesen | r | Lesen von Metadaten und Eigenschaften einschließlich der Nachrichtenanzahl. Überprüfung auf vorliegende Nachrichten. |
Hinzufügen | a | Hinzufügen von Nachrichten zur Warteschlange |
Aktualisieren | u | Aktualisieren von Nachrichten in der Warteschlange. Hinweis: Verwenden Sie die Berechtigung Verarbeiten mit Update, damit Sie zuerst die Meldung abrufen können, die Sie aktualisieren möchten. |
Prozess | p | Abrufen und Löschen von Nachrichten aus der Warteschlange |
Berechtigungen für eine Tabelle
Berechtigung | URI-Symbol | Zulässige Vorgänge |
---|---|---|
Abfrage | r | Abrufen und Abfragen von Entitäten |
Hinzufügen | a | Hinzufügen von Entitäten Hinweis: Für Upsert-Vorgänge sind Die Berechtigungen "Hinzufügen" und "Aktualisieren" erforderlich. |
Aktualisieren | u | Aktualisieren von Entitäten Hinweis: Für Upsert-Vorgänge sind Die Berechtigungen "Hinzufügen" und "Aktualisieren" erforderlich. |
Löschen | T | Löschen von Entitäten |
Angeben einer IP-Adresse oder eines IP-Adressbereichs
Ab Version 2015-04-05 gibt das optionale signedIp
Feld (sip
) eine öffentliche IP-Adresse oder einen Bereich öffentlicher IP-Adressen an, von denen Anforderungen akzeptiert werden sollen. Wenn die IP-Adresse, von der die Anforderung stammt, nicht mit der IP-Adresse oder dem Adressbereich übereinstimmt, die im SAS-Token angegeben ist, ist die Anforderung nicht autorisiert. Es werden nur IPv4-Adressen unterstützt.
Wenn Sie einen IP-Adressbereich angeben, beachten Sie, dass der Bereich inklusiv ist. Wenn Sie beispielsweise oder sip=168.1.5.60-168.1.5.70
auf der SAS angebensip=168.1.5.65
, wird die Anforderung auf diese IP-Adressen beschränkt.
In der folgenden Tabelle wird basierend auf der Clientumgebung und dem signedIp
Speicherort des Speicherkontos beschrieben, ob das Feld in ein SAS-Token für ein angegebenes Szenario eingeschlossen werden soll.
Clientumgebung | Standort des Speicherkontos | Empfehlung |
---|---|---|
Client, der in Azure ausgeführt wird | In derselben Region wie der Client | Eine SAS, die in diesem Szenario für den Client bereitgestellt wird, sollte keine ausgehende IP-Adresse für das signedIp Feld enthalten. Anforderungen, die aus derselben Region erfolgen, die eine SAS mit einer angegebenen ausgehenden IP-Adresse verwenden, schlagen fehl.Verwenden Sie stattdessen ein virtuelles Azure-Netzwerk, um Netzwerksicherheitseinschränkungen zu verwalten. Anforderungen an Azure Storage aus derselben Region erfolgen immer über eine private IP-Adresse. Weitere Informationen finden Sie unter Konfigurieren von Firewalls und virtuellen Netzwerken in Azure Storage. |
Client, der in Azure ausgeführt wird | In einer anderen Region als der Client | Eine SAS, die in diesem Szenario für den Client bereitgestellt wird, kann eine öffentliche IP-Adresse oder einen Adressbereich für das signedIp Feld enthalten. Eine mit der SAS durchgeführte Anforderung muss von der angegebenen IP-Adresse oder dem angegebenen Adressbereich stammen. |
Client, der lokal oder in einer anderen Cloudumgebung ausgeführt wird | In jeder Azure-Region | Eine SAS, die in diesem Szenario für den Client bereitgestellt wird, kann eine öffentliche IP-Adresse oder einen Adressbereich für das signedIp Feld enthalten. Eine mit der SAS durchgeführte Anforderung muss von der angegebenen IP-Adresse oder dem angegebenen Adressbereich stammen.Wenn die Anforderung einen Proxy oder ein Gateway durchläuft, geben Sie die öffentliche ausgehende IP-Adresse dieses Proxys oder Gateways für das signedIp Feld an. |
Angeben des HTTP-Protokolls
Ab Version 2015-04-05 gibt das optionale signedProtocol
Feld (spr
) das Protokoll an, das für eine Anforderung mit der SAS zulässig ist. Mögliche Werte sind HTTPS und HTTP (https,http
) oder nur HTTPS (https
). Standardwert: https,http
. Beachten Sie, dass HTTP allein kein zulässiger Wert ist.
Angeben von Tabellenzugriffsbereichen
Die startPk
Felder , startRk
, endPk
und endRk
definieren einen Bereich von Tabellenentitäten, die einer Shared Access Signature zugeordnet sind. Tabellenabfragen geben nur Ergebnisse zurück, die innerhalb des Bereichs liegen, und Versuche, die Shared Access Signature zum Hinzufügen, Aktualisieren oder Löschen von Entitäten außerhalb dieses Bereichs zu verwenden, schlagen fehl.
Wenn startPk
gleich endPk
ist, autorisiert die Shared Access Signature den Zugriff auf Entitäten in nur einer Partition in der Tabelle.
Wenn startPk
gleich endPk
und startRk
gleich endRk
ist, kann die Shared Access Signature nur auf eine Entität in einer Partition zugreifen.
Informationen dazu, wie diese Felder den Zugriff auf Entitäten in einer Tabelle einschränken, finden Sie in der folgenden Tabelle:
Vorhandene Felder | Einschränkungsbereich |
---|---|
startPk |
partitionKey >= startPk |
endPk |
partitionKey <= endPk |
startPk , startRk |
(partitionKey >startPk ) || (partitionKey == startPk && rowKey >= startRk ) |
endPk , endRk |
(partitionKey <endPk ) || (partitionKey == endPk && rowKey <= endRk ) |
Angeben der Verzeichnistiefe
Wenn ein hierarchischer Namespace aktiviert ist und das signedResource
Feld ein Verzeichnis angibt (sr=d
), müssen Sie auch das signedDirectoryDepth
Feld (sdd
) angeben, um die Anzahl der Unterverzeichnisse unter dem Stammverzeichnis anzugeben. Der Wert des sdd
Felds muss eine nicht negative ganze Zahl sein.
Das Stammverzeichnis https://{account}.blob.core.windows.net/{container}/
hat beispielsweise eine Tiefe von 0. Jedes Unterverzeichnis innerhalb des Stammverzeichnisses fügt der Tiefe um 1 hinzu. Das Verzeichnis https://{account}.blob.core.windows.net/{container}/d1/d2
hat eine Tiefe von 2.
Dieses Feld wird ab Version 2020-02-10 unterstützt.
Geben Sie den signierten Bezeichner an.
Wenn Sie das Feld für den signedIdentifier
URI angeben, verknüpfen Sie die angegebene Shared Access Signature mit einer entsprechenden gespeicherten Zugriffsrichtlinie. Eine gespeicherte Zugriffsrichtlinie ist eine zusätzliche Kontrollmaßnahme für eine oder mehrere SAS. Sie bietet die Möglichkeit, die Signatur bei Bedarf zu widerrufen. Jeder Container, jede Warteschlange, Tabelle oder Freigabe kann über bis zu fünf gespeicherte Zugriffsrichtlinien verfügen.
In der folgenden Tabelle wird beschrieben, wie Sie auf einen signierten Bezeichner für den URI verweisen:
Feldname | Query parameter (Abfrageparameter) | BESCHREIBUNG |
---|---|---|
signedIdentifier |
si |
Optional. Ein eindeutiger Wert von bis zu 64 Zeichen, der mit einer Zugriffsrichtlinie korreliert, die für den Container, die Warteschlange oder die Tabelle angegeben ist. |
Eine gespeicherte Zugriffsrichtlinie enthält einen signierten Bezeichner, einen Wert von bis zu 64 Zeichen, der innerhalb der Ressource eindeutig ist. Sie können den Wert dieses signierten Bezeichners für das signedidentifier
Feld im URI für die Shared Access Signature angeben. Wenn Sie einen signierten Bezeichner für den URI angeben, ordnen Sie die Signatur der gespeicherten Zugriffsrichtlinie zu. Informationen zum Einrichten einer Zugriffsrichtlinie auf Containerebene mithilfe der REST-API finden Sie unter Delegieren des Zugriffs mit einer freigegebenen Zugriffssignatur.
Angeben des Verschlüsselungsbereichs
Mithilfe des signedEncryptionScope
Felds für den URI können Sie den Verschlüsselungsbereich angeben, den die Clientanwendung verwenden kann. Es erzwingt die serverseitige Verschlüsselung mit dem angegebenen Verschlüsselungsbereich, wenn Sie Blobs (PUT) mit dem SAS-Token hochladen. Die GET- und HEAD werden nicht wie zuvor eingeschränkt und ausgeführt.
In der folgenden Tabelle wird beschrieben, wie Sie auf einen signierten Verschlüsselungsbereich für den URI verweisen:
Feldname | Query parameter (Abfrageparameter) | BESCHREIBUNG |
---|---|---|
signedEncryptionScope |
ses |
Optional. Gibt den Verschlüsselungsbereich an, der zum Verschlüsseln des Anforderungsinhalts verwendet werden soll. |
Dieses Feld wird ab Version 2020-12-06 unterstützt. Wenn Sie die ses
vor der unterstützten Version hinzufügen, gibt der Dienst den Fehlerantwortcode 403 (Verboten) zurück.
Wenn Sie den Standardverschlüsselungsbereich für den Container oder das Dateisystem festlegen, berücksichtigt der ses
Abfrageparameter die Containerverschlüsselungsrichtlinie. Wenn zwischen Abfrageparameter ses
und x-ms-default-encryption-scope
Header ein Konflikt besteht und der x-ms-deny-encryption-scope-override
Header auf true
festgelegt ist, gibt der Dienst den Fehlerantwortcode 403 (Verboten) zurück.
Wenn Sie den x-ms-encryption-scope
Header und den Abfrageparameter in der ses
PUT-Anforderung angeben, gibt der Dienst den Fehlerantwortcode 400 (Ungültige Anforderung) zurück, wenn ein Konflikt vorliegt.
Geben Sie die Signatur an
Sie verwenden den Signaturteil des URI, um die Anforderung zu autorisieren, die mit der Shared Access Signature gestellt wird. Azure Storage verwendet ein Autorisierungsschema für gemeinsam genutzte Schlüssel, um eine Dienst-SAS zu autorisieren.
In der folgenden Tabelle wird beschrieben, wie Die Signatur für den URI angegeben wird:
Feldname | Query parameter (Abfrageparameter) | BESCHREIBUNG |
---|---|---|
signature |
sig |
Das Zeichen von Zeichenfolge zu Vorzeichen ist eine eindeutige Zeichenfolge, die aus den Feldern erstellt wird und die überprüft werden muss, um die Anforderung zu autorisieren. Die Signatur ist ein hashbasierter Nachrichtenauthentifizierungscode (Hash-Based Message Authentication Code, HMAC), den Sie mithilfe des SHA256-Algorithmus über die Zeichenfolge und den Schlüssel berechnen und dann mithilfe der Base64-Codierung codieren. |
Erstellen der Signaturzeichenfolge
Um die Signaturzeichenfolge einer Shared Access Signature zu erstellen, erstellen Sie zuerst die Zeichenfolge zu Sign aus den Feldern, aus denen die Anforderung besteht, und codieren Sie die Zeichenfolge als UTF-8, und berechnen Sie dann die Signatur mithilfe des HMAC-SHA256-Algorithmus. Die Felder, die in der Zeichenfolge enthalten sind, müssen URL-decodiert sein.
Version 2020-12-06 und höher
Version 2020-12-06 fügt Unterstützung für das Feld für den signierten Verschlüsselungsbereich hinzu. Verwenden Sie das folgende Format, um die Zeichenfolge für Blob Storage-Ressourcen zu erstellen:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedIP + "\n" +
signedProtocol + "\n" +
signedVersion + "\n" +
signedResource + "\n" +
signedSnapshotTime + "\n" +
signedEncryptionScope + "\n" +
rscc + "\n" +
rscd + "\n" +
rsce + "\n" +
rscl + "\n" +
Version 2018-11-09 und höher
Version 2018-11-09 fügt Unterstützung für die signierte Ressource und das signierte Blob Momentaufnahme Zeitfeldern hinzu. Diese Felder müssen in der Zeichenfolge enthalten sein. Verwenden Sie das folgende Format, um die Zeichenfolge für Blob Storage-Ressourcen zu erstellen:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedIP + "\n" +
signedProtocol + "\n" +
signedVersion + "\n" +
signedResource + "\n"
signedSnapshotTime + "\n" +
rscc + "\n" +
rscd + "\n" +
rsce + "\n" +
rscl + "\n" +
rsct
Version 2015-04-05 und höher
Version 2015-04-05 fügt Unterstützung für die Felder mit signierter IP-Adresse und signiertem Protokoll hinzu. Diese Felder müssen in der Zeichenfolge enthalten sein. Verwenden Sie das folgende Format, um die Zeichenfolge für Blob Storage oder Azure Files Ressourcen zu erstellen:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedIP + "\n" +
signedProtocol + "\n" +
signedVersion + "\n" +
rscc + "\n" +
rscd + "\n" +
rsce + "\n" +
rscl + "\n" +
rsct
Verwenden Sie das folgende Format, um die Zeichenfolge für Tabellenspeicherressourcen zu erstellen:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedIP + "\n" +
signedProtocol + "\n" +
signedVersion + "\n" +
startingPartitionKey + "\n"
startingRowKey + "\n"
endingPartitionKey + "\n"
endingRowKey
Verwenden Sie das folgende Format, um die Zeichenfolge für Warteschlangenspeicherressourcen zu erstellen:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedIP + "\n" +
signedProtocol + "\n" +
signedVersion
Version 2013-08-15 bis 2015-02-21
Verwenden Sie das folgende Format, um die Zeichenfolge für Blob Storage oder Azure Files Ressourcen mithilfe der Version 2013-08-15 bis 2015-02-21 zu erstellen. Für Azure Files wird SAS ab Version 2015-02-21 unterstützt.
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedVersion + "\n" +
rscc + "\n" +
rscd + "\n" +
rsce + "\n" +
rscl + "\n" +
rsct
Um die StringToSign-Zeichenfolge für eine Tabelle zu erstellen, halten Sie folgende Formatvorgaben ein:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedVersion + "\n" +
startPk + "\n" +
startRk + "\n" +
endPk + "\n" +
endRk
Verwenden Sie das folgende Format, um die Zeichenfolge für eine Warteschlange zu erstellen:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedVersion
Version 2012-02-12
Verwenden Sie das folgende Format, um die Zeichenfolgen-zu-Sign für Blob Storage-Ressourcen für Version 2012-02-12 zu erstellen:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier + "\n" +
signedVersion
Versionen vor 12.02.2012
Verwenden Sie das folgende Format, um die Zeichenfolgen-zu-Sign für Blob Storage-Ressourcen für Versionen zu erstellen, die älter als 2012-02-12 sind:
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedIdentifier
Beachten Sie beim Erstellen der zu signierten Zeichenfolge Folgendes:
Wenn ein Feld optional ist und nicht als Teil der Anforderung bereitgestellt wird, geben Sie eine leere Zeichenfolge für das Feld an. Achten Sie darauf, nach der leeren Zeichenfolge das Neue-Zeile-Zeichen (\n) einzufügen.
Zeichenfolgen-zu-Vorzeichen für eine Tabelle müssen die zusätzlichen Parameter enthalten, auch wenn es sich um leere Zeichenfolgen handelt.
Der
signedpermission
Teil der Zeichenfolge muss die Berechtigungsbezeichnungen in einer festen Reihenfolge enthalten, die für jeden Ressourcentyp spezifisch ist. Beliebige Kombinationen dieser Berechtigungen sind zulässig, aber die Reihenfolge der Buchstaben muss der Reihenfolge in der folgenden Tabelle entsprechen.Ressourcentyp Reihenfolge der Berechtigungen Blob racwd Container racwdl Warteschlange raup Datei rcwd Teilen rcwdl Tabelle raud Beispiele für gültige Berechtigungseinstellungen für einen Container sind
rw
beispielsweise , ,rd
rl
,wd
undwl
rl
. Beispiele für ungültige Einstellungen sindwr
,dr
,lr
unddw
. Das Angeben einer Berechtigungsbezeichnung mehr als einmal ist nicht zulässig.Geben Sie einen Wert für den
signedIdentifier
Teil der Zeichenfolge an, wenn Sie die Anforderung einer gespeicherten Zugriffsrichtlinie zuordnen.Eine Shared Access Signature, die eine Speicherdienstversion angibt, die älter als 2012-02-12 ist, kann nur ein Blob oder Container gemeinsam nutzen, und sie muss und das Zeilenumbruchzeichen davor weglassen
signedVersion
.Der
canonicalizedResource
-Teil der Zeichenfolge ist ein kanonischer Pfad zur signierten Ressource. Er muss den Dienstnamen (Blob Storage, Tabellenspeicher, Warteschlangenspeicher oder Azure Files) für Version 2015-02-21 oder höher, den Namen des Speicherkontos und den Ressourcennamen enthalten und muss URL-decodiert sein. Der BLOB-Container muss in den Namen der BLOBs enthalten sein. Tabellennamen müssen Kleinbuchstaben sein.
Die kanonische Ressourcenzeichenfolge für einen Container, eine Warteschlange, eine Tabelle oder eine Dateifreigabe muss den nachgestellten Schrägstrich (/) für eine SAS weglassen, die Zugriff auf dieses Objekt ermöglicht.
Die folgenden Beispiele zeigen, wie der canonicalizedResource
Teil der Zeichenfolge je nach Ressourcentyp erstellt wird.
Container
Für Version 2015-02-21 und höher:
URL = https://myaccount.blob.core.windows.net/music
canonicalizedResource = "/blob/myaccount/music"
Für Versionen vor 2015-02-21:
URL = https://myaccount.blob.core.windows.net/music
canonicalizedResource = "/myaccount/music"
Blobs
Für Version 2015-02-21 und höher:
URL = https://myaccount.blob.core.windows.net/music/intro.mp3
canonicalizedResource = "/blob/myaccount/music/intro.mp3"
Für Versionen vor 2015-02-21:
URL = https://myaccount.blob.core.windows.net/music/intro.mp3
canonicalizedResource = "/myaccount/music/intro.mp3"
Dateifreigaben
URL = https://myaccount.file.core.windows.net/music
canonicalizedResource = "/file/myaccount/music"
Dateien
URL = https://myaccount.file.core.windows.net/music/intro.mp3
canonicalizedResource = "/file/myaccount/music/intro.mp3"
Warteschlangen
Für Version 2015-02-21 und höher:
URL = https://myaccount.queue.core.windows.net/thumbnails
canonicalizedResource = "/queue/myaccount/thumbnails"
Für Versionen vor 2015-02-21:
URL = https://myaccount.queue.core.windows.net/thumbnails
canonicalizedResource = "/myaccount/thumbnails"
Tabellen
Wenn es sich bei der signierten Ressource um eine Tabelle handelt, stellen Sie sicher, dass der Tabellenname im kanonisierten Format klein geschrieben ist.
Für Version 2015-02-21 und höher:
URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price')
canonicalizedResource = "/table/myaccount/employees"
Für Versionen vor 2015-02-21:
URL = https://myaccount.table.core.windows.net/Employees(PartitionKey='Jeff',RowKey='Price')
canonicalizedResource = "/myaccount/employees"
Lebensdauer und Sperrung einer Shared Access Signature
Über eine SAS werden dem Benutzer Zugriffsberechtigungen für Speicherkontoressourcen gewährt. Wenn Sie planen, eine SAS zu verwenden, überlegen Sie sich die Lebensdauer der SAS und ob Ihre Anwendung unter bestimmten Umständen Zugriffsrechte widerrufen muss.
Ad-hoc-SAS im Vergleich zur gespeicherten Zugriffsrichtlinie
Eine Dienst-SAS kann eine von zwei Formen annehmen:
Ad-hoc-SAS: Wenn Sie eine Ad-hoc-SAS erstellen, werden Startzeit, Ablaufzeit und Berechtigungen für die SAS alle im SAS-URI angegeben (oder impliziert, wenn die Startzeit ausgelassen wird). Jede Art von SAS kann eine Ad-hoc-SAS sein.
Sie können die Lebensdauer einer Ad-hoc-SAS mithilfe des
signedExpiry
Felds verwalten. Wenn Sie einem Client nach der Ablaufzeit weiterhin Zugriff auf die Ressource gewähren möchten, müssen Sie eine neue Signatur ausstellen. Es wird empfohlen, die Lebensdauer einer Shared Access Signature kurz zu halten. Vor Version 2012-02-12 konnte eine Shared Access Signature, die keiner gespeicherten Zugriffsrichtlinie zugeordnet ist, keinen aktiven Zeitraum aufweisen, der eine Stunde überschreitet.SAS mit gespeicherter Zugriffsrichtlinie: Eine gespeicherte Zugriffsrichtlinie wird für einen Ressourcencontainer definiert, bei dem es sich um einen Blobcontainer, eine Tabelle, eine Warteschlange oder eine Dateifreigabe handelt. Sie können die gespeicherte Zugriffsrichtlinie verwenden, um Einschränkungen für eine oder mehrere Shared Access Signatures zu verwalten. Wenn Sie eine SAS einer gespeicherten Zugriffsrichtlinie zuordnen, erbt die SAS die Einschränkungen (d. h. Startzeit, Ablaufzeit und Berechtigungen), die für die gespeicherte Zugriffsrichtlinie definiert sind.
Die gespeicherte Zugriffsrichtlinie wird durch das
signedIdentifier
-Feld des URIs dargestellt. Eine gespeicherte Zugriffsrichtlinie ist eine zusätzliche Kontrollmaßnahme für eine oder mehrere SAS. Sie bietet die Möglichkeit, die Signatur bei Bedarf zu widerrufen.
Widerrufen einer SAS
Da ein SAS-URI eine URL ist, kann jeder, der die SAS erhält, sie verwenden, unabhängig davon, wer sie ursprünglich erstellt hat. Wenn eine SAS veröffentlicht wird, kann diese von beliebiger Stelle weltweit verwendet werden. Eine SAS gewährt allen Personen, die über sie verfügen, Zugriff auf Ressourcen, bis eines von vier Dingen geschieht:
Die für eine Ad-hoc-SAS angegebene Ablaufzeit wird erreicht.
Die für die gespeicherte Zugriffsrichtlinie angegebene Ablaufzeit, auf die von der SAS verwiesen wird, wird erreicht, wenn auf eine gespeicherte Zugriffsrichtlinie verwiesen wird und die Zugriffsrichtlinie eine Ablaufzeit angibt.
Die Ablaufzeit kann entweder erreicht werden, weil das Intervall verstrichen ist oder weil Sie die gespeicherte Zugriffsrichtlinie in der Vergangenheit so geändert haben, dass sie in der Vergangenheit eine Ablaufzeit hat. Dies ist eine Möglichkeit, die SAS zu widerrufen.
Die gespeicherte Zugriffsrichtlinie, auf die von der SAS verwiesen wird, wird gelöscht, wodurch die SAS widerrufen wird. Wenn Azure Storage die gespeicherte Zugriffsrichtlinie, die in der Shared Access Signature angegeben ist, nicht finden kann, kann der Client nicht auf die ressource zugreifen, die durch den URI angegeben wird.
Wenn Sie die gespeicherte Zugriffsrichtlinie mit genau dem gleichen Namen wie die gelöschte Richtlinie neu erstellen, sind alle vorhandenen SAS-Token gemäß den Berechtigungen, die dieser gespeicherten Zugriffsrichtlinie zugeordnet sind, erneut gültig. Dabei wird davon ausgegangen, dass die Ablaufzeit auf der SAS nicht abgelaufen ist. Wenn Sie beabsichtigen, die SAS zu widerrufen, achten Sie darauf, einen anderen Namen zu verwenden, wenn Sie die Zugriffsrichtlinie in Zukunft mit einer Ablaufzeit neu erstellen.
Der Kontoschlüssel, mit dem die SAS erstellt wurde, wird erneut generiert. Das Erneute Generieren eines Kontoschlüssels führt dazu, dass alle Anwendungskomponenten, die diesen Schlüssel verwenden, nicht autorisiert werden, bis sie aktualisiert werden, um entweder den anderen gültigen Kontoschlüssel oder den neu generierten Kontoschlüssel zu verwenden. Das Erneute Generieren des Kontoschlüssels ist die einzige Möglichkeit, eine Ad-hoc-SAS sofort zu widerrufen.
Wichtig
Ein Shared Access Signature-URI ist dem Kontoschlüssel zugeordnet, der zum Erstellen der Signatur verwendet wird, und ggf. der zugeordneten gespeicherten Zugriffsrichtlinie. Wenn keine gespeicherte Zugriffsrichtlinie angegeben wird, kann eine SAS nur durch Änderung des Kontoschlüssels aufgehoben werden.
Als bewährte Methode wird empfohlen, eine gespeicherte Zugriffsrichtlinie mit einer Dienst-SAS zu verwenden. Wenn Sie sich dafür entscheiden, keine gespeicherte Zugriffsrichtlinie zu verwenden, sollten Sie den Zeitraum, in dem die Ad-hoc-SAS gültig ist, kurz halten. Weitere Informationen zum Zuordnen einer Dienst-SAS zu einer gespeicherten Zugriffsrichtlinie finden Sie unter Definieren einer gespeicherten Zugriffsrichtlinie.
Beispiel für Dienst-SAS
Das folgende Beispiel zeigt einen Blob-URI, an den ein Dienst-SAS-Token angefügt ist. Das DIENST-SAS-Token bietet Lese- und Schreibberechtigungen für das Blob.
https://myaccount.blob.core.windows.net/sascontainer/blob1.txt?sp=rw&st=2023-05-24T01:13:55Z&se=2023-05-24T09:13:55Z&sip=168.1.5.60-168.1.5.70&spr=https&sv=2022-11-02&sr=b&sig=<signature>
Jeder Teil des URI wird in der folgenden Tabelle beschrieben:
Name | SAS-Teil | BESCHREIBUNG |
---|---|---|
Ressourcen-URI | https://myaccount.blob.core.windows.net/sascontainer/blob1.txt |
Die Blob-Adresse. Es wird dringend empfohlen, HTTPS zu verwenden. |
Trennzeichen | ? |
Das Trennzeichen, das der Abfragezeichenfolge vorangestellt ist. Das Trennzeichen ist nicht Teil des SAS-Tokens. |
Berechtigungen | sp=rw |
Die SAS verleiht die Berechtigungen zum Lesen (r) und Schreiben (w). |
Startzeit | st=2023-05-24T01:13:55Z |
Angegeben im UTC-Zeitformat. Lassen Sie diesen Parameter aus, wenn die SAS sofort gültig sein soll. |
Ablaufzeit | se=2023-05-24T09:13:55Z |
Angegeben im UTC-Zeitformat. |
IP-Bereich | sip=168.1.5.60-168.1.5.70 |
Der Bereich der IP-Adressen, von denen eine Anforderung akzeptiert wird. |
Protocol | spr=https |
Nur Anforderungen, die HTTPS verwenden, sind zulässig. |
Azure Storage-Version | sv=2023-05-24 |
Für Azure Storage ab Version 2012-02-12 gibt dieser Parameter die zu verwendende Version an. |
Resource | sr=b |
Die Ressource ist ein Blob. |
Signatur | sig=<signature> |
Wird verwendet, um den Zugriff auf das Blob zu autorisieren. Die Signatur ist ein HMAC, der mithilfe des SHA256-Algorithmus über eine zu signierende Zeichenfolge und einen Schlüssel berechnet und dann mithilfe der Base64-Codierung codiert wird. |