Generieren von Azure SAS-Tokens mit PowerShell und Portal

Es gibt verschiedene Möglichkeiten, den Zugriff auf Ressourcen in Azure zu delegieren. Eine Möglichkeit besteht darin, über ein Shared Access Signature (SAS)-Token zu delegieren. Ein SAS-Token ermöglicht eine granulare Kontrolle darüber, wie ein Client auf Azure-Daten zugreifen kann. Sie können viele Dinge kontrollieren, wie z.B. auf welche Ressourcen der Client zugreifen kann, welche Berechtigungen der Client hat, wie lange das Token gültig ist und vieles mehr.

Eine häufige Verwendung von SAS-Token besteht darin, Azure-Speicherkonten durch die Verwendung eines KontoSAS abzusichern.

In diesem Artikel erfahren Sie, wie Sie ein Azure SAS-Token sowohl über das Azure-Portal als auch über PowerShell erstellen können. Am Ende haben Sie ein SAS-Token, das Sie dann verschiedenen Client-Befehlen übergeben können, um die Verwaltung von Azure-Speicher zu authentifizieren und zu autorisieren.

Voraussetzungen

In diesem Artikel lernen Sie praktisch, wie Sie verschiedene Aufgaben durchführen können. Wenn Sie mitmachen möchten, stellen Sie bitte sicher, dass Sie die folgenden Voraussetzungen erfüllen.

  • Ein Azure-Abonnement. Wenn Sie dies noch nicht haben, können Sie eine Testversion beantragen.
  • Ein Azure-Speicherkonto. Bitte lesen Sie Erstellen eines Speicherkontos, um mehr zu erfahren.
  • Das Az PowerShell-Modul (optional). Dies ist nur erforderlich, wenn Sie Shared Access Signature-Tokens mit PowerShell generieren möchten.
  • Windows PowerShell 5.1 oder PowerShell Core 6+, wenn Sie ein SAS-Token über PowerShell generieren

Generieren eines SAS-Tokens mit dem Azure-Portal

Der einfachste Weg, ein SAS-Token zu generieren, besteht darin, das Azure-Portal zu verwenden. Mit dem Azure-Portal können Sie die verschiedenen Optionen grafisch navigieren.

Um ein Token über das Azure-Portal zu erstellen, navigieren Sie zunächst zum Speicherkonto, auf das Sie zugreifen möchten, unter dem Abschnitt Einstellungen und klicken Sie dann auf Shared Access Signature. Ein Beispiel dafür finden Sie unten.

Es gibt viele Berechtigungen, die Sie SAS-Tokens gewähren können, sowie Start-/Endzeiten. In diesem Artikel werden Ihnen Vollzugriffsberechtigungen zugewiesen und die Standardablaufzeit von acht Stunden belassen. Wenn Sie eine Aufschlüsselung und Erklärung jeder Berechtigung wünschen, schauen Sie sich die Microsoft-Dokumentation an.

Lassen Sie alle Standardkontrollkästchen aktiviert und klicken Sie auf die Schaltfläche SAS und Verbindungszeichenfolge generieren, wie unten gezeigt.

Generating SAS Token from the Azure Portal

Sobald das Token generiert wurde, wird es in den Feldern unter der Schaltfläche SAS und Verbindungszeichenfolge generieren angezeigt, wie unten gezeigt.

Copying the generated SAS token

An diesem Punkt können Sie das SAS-Token kopieren und seinen Wert überall dort einfügen, wo Sie es verwenden möchten.

Generierung eines SAS-Tokens mit PowerShell

Um zu verhindern, dass Sie sich im Azure-Portal anmelden müssen oder möglicherweise, wenn Sie gleichzeitig SAS-Tokens für viele Speicherkonten generieren, können Sie PowerShell verwenden. PowerShell verwendet die REST-API von Azure, um Anfragen an Azure zu stellen und das Token zu generieren.

Um ein SAS-Token über PowerShell zu erstellen, öffnen Sie zuerst eine PowerShell-Konsole und melden Sie sich mit Connect-AzAccount an. Sobald Sie authentifiziert sind, suchen Sie das Speicherkonto, auf das Sie zugreifen möchten. Unten sehen Sie ein Beispiel für die Abfrage eines Speicherkontos namens demo_account in der Ressourcengruppe demo_rg. Verwenden Sie den Wert von $context und übergeben Sie ihn dann an den Befehl zur Token-Generierung.

$context = (Get-AzStorageAccount -ResourceGroupName 'demo_rg' -AccountName 'demo_account').context

Sobald der Kontext des Speicherkontos gefunden ist, erstellen Sie ein SAS-Token mit dem Befehl New-AzStorageAccountSASToken. Das folgende Beispiel zeigt die Generierung eines SAS-Tokens mit voller Berechtigung für das Speicherkonto und alle Unterkomponenten.

New-AzStorageAccountSASToken -Context $context -Service Blob,File,Table,Queue -ResourceType Service,Container,Object -Permission racwdlup

Beim Erstellen von SAS-Tokens über New-AzStorageAccountSASToken ist das Token eine Stunde lang gültig. Wenn Sie diese Zeit verlängern möchten, können Sie den Parameter ExpiryTime verwenden.

Einschränkung der Berechtigungen eines SAS-Tokens

Ein Grund, ein SAS-Token zu verwenden, besteht darin, anderen Parteien für eine begrenzte Zeit und einen begrenzten Satz von Berechtigungen Zugriff zu gewähren. Das vorherige Beispiel hat ein SAS-Token mit vollständigen Zugriffsberechtigungen generiert. Den vollständigen Zugriff zu gewähren ist nicht immer die beste Lösung.

Der Service-Parameter definiert den Zugriff auf einen oder mehrere Dienste. Verwenden Sie beispielsweise blob, um den Zugriff nur auf den Azure Blob Storage-Dienst zu erlauben. Andere Dienste umfassen File, Table und Queue.

Der ResourceType-Parameter beschränkt den Zugriff auf bestimmte Arten von Ressourcen. Wenn Sie beispielsweise den Wert container verwenden, ist der Zugriff nur auf Container-Ressourcen möglich. Andere gültige Ressourcentypen sind Service und Object.

Der Permission-Parameter ermöglicht es Ihnen, erlaubte Berechtigungen festzulegen. Geben Sie je nach Bedarf eine oder mehrere Berechtigungen an. Der Wert rwd entspricht den Berechtigungen read, write und delete. Andere gültige Berechtigungswerte sind (l)ist, (a)dd, (u)pdate und (p)rocess.

Verwendung des SAS-Tokens

Es gibt viele Möglichkeiten, das generierte SAS-Token zu verwenden. Eine der häufigsten Methoden besteht darin, es in einem Speicherkontext zu verwenden. Ein Speicherkontext ist eine Art, Anmeldeinformationen zu „verpacken“ und sie dann an verschiedene Befehle weiterzugeben.

A common way to use the SAS token is via PowerShell. Using the New-AzStorageContext command that’s part of the Az PowerShell module. You can see an example below using the SAS token to upload a file to an existing storage container.

$StorageAccountName = 'foo'
 $ContainerName = 'bar'
 Create a storage context
 $sasToken = ''
 $StorageContext = New-AzStorageContext $StorageAccountName -SasToken $sasToken
 Upload a file
 $storageContainer = Get-AzStorageContainer -Name $ContainerName -Context $StorageContext
 $storageContainer | Set-AzStorageBlobContent –File 'C:\file.txt' –Blob 'file.txt'

Zusammenfassung

Das Erstellen eines SAS-Tokens kann auf verschiedene Arten erfolgen. In diesem Artikel haben Sie einige der häufigsten Möglichkeiten kennengelernt. Einmal erstellt, kann ein SAS-Token auf viele verschiedene Arten verwendet werden, aber die Entscheidung darüber liegt bei Ihnen.

Source:
https://adamtheautomator.com/azure-sas-token/