Genereer Azure SAS-tokens met PowerShell en Portal

Er zijn verschillende manieren waarop je toegang tot resources in Azure kunt delegeren. Een manier is via een gedeelde toegangssleutel (Shared Access Signature (SAS)). Een SAS-token biedt de mogelijkheid om nauwkeurig te regelen hoe een client toegang heeft tot Azure-gegevens. Je kunt veel dingen controleren, zoals welke resources de client kan benaderen, welke toestemming de client heeft, hoelang het token geldig is en meer.

Een veelvoorkomend gebruik van een SAS-token is het beveiligen van Azure-opslagaccounts met behulp van een account SAS.

In dit artikel leer je hoe je een Azure SAS-token kunt maken, zowel via het Azure-portal als via PowerShell. Tegen de tijd dat je klaar bent, heb je een SAS-token dat je kunt doorgeven aan verschillende clientopdrachten om Azure-opslagbeheer te authenticeren en autoriseren.

Vereisten

In dit artikel leer je hands-on hoe je verschillende taken uitvoert. Als je wilt meedoen, zorg er dan voor dat je aan de volgende vereisten voldoet.

  • Een Azure-abonnement. Als je dit nog niet hebt, kun je een proefabonnement aanvragen.
  • Een Azure-opslagaccount. Raadpleeg Een opslagaccount maken voor meer informatie.
  • De module Az PowerShell (optioneel). Dit is alleen vereist als u Shared Access Signature-tokens wilt genereren met PowerShell
  • Windows PowerShell 5.1 of PowerShell Core 6+ bij het genereren van een SAS-token via PowerShell

Het genereren van een SAS-token via de Azure Portal

De meest eenvoudige manier om een SAS-token te genereren, is via de Azure-portal. Door de Azure-portal te gebruiken, kunt u de verschillende opties grafisch navigeren.

Om een token via de Azure-portal te maken, navigeert u eerst naar de opslagaccount die u wilt openen onder de Instellingen-sectie en klikt u vervolgens op Shared access signature. Hieronder ziet u een voorbeeld van hoe dit eruit zou kunnen zien.

Er zijn veel machtigingen die u aan SAS-tokens kunt toekennen, evenals start-/eindtijden. Voor dit artikel gaat u volledige machtigingen toewijzen en laat u de standaard vervaltijd van acht uur staan. Als u een uitsplitsing en uitleg van elke toestemming wilt, bekijk dan de Microsoft-documentatie.

Laat alle standaard selectievakjes ingeschakeld en klik op de knop Generate SAS and connection string zoals hieronder weergegeven.

Generating SAS Token from the Azure Portal

Zodra het token is gegenereerd, ziet u het vermeld in de vakken onder de knop Generate SAS and connection string zoals hieronder weergegeven.

Copying the generated SAS token

Op dit punt kunt u het SAS-token kopiëren en de waarde ervan plakken waar u het nodig heeft.

Het genereren van een SAS-token met behulp van PowerShell

Om te voorkomen dat je telkens moet inloggen op het Azure-portal of, misschien, als je SAS-tokens genereert voor veel opslagaccounts tegelijk, kun je PowerShell gebruiken. PowerShell maakt gebruik van de REST API van Azure om oproepen naar Azure te doen om het token te genereren.

Om een SAS-token via PowerShell te maken, open je eerst een PowerShell-console en authenticeer je met Connect-AzAccount. Zodra je geauthenticeerd bent, zoek je het opslagaccount op waar je toegang toe wilt hebben. Hieronder zie je een voorbeeld van het opvragen van een opslagaccount genaamd demo_account in de resourcegroep demo_rg. Met de waarde van $context geef je vervolgens dit door aan het opdracht voor het genereren van het token.

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

Zodra het opslagaccountcontext is gevonden, maak je een SAS-token met behulp van de opdracht New-AzStorageAccountSASToken. Het onderstaande voorbeeld toont het genereren van een SAS-token dat volledige toegangsrechten geeft tot het opslagaccount en alle subonderdelen.

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

Wanneer je SAS-tokens maakt via New-AzStorageAccountSASToken, is het token één uur geldig. Als je deze tijd wilt verlengen, kun je de parameter ExpiryTime gebruiken.

Beperking van machtigingen van SAS-token

Een reden om een SAS-token te gebruiken is het geven van toegang aan andere partijen voor een beperkte tijd en reeks van machtigingen. Het vorige voorbeeld genereerde een SAS-token met volledige toegangsrechten. Volledige toegang geven is niet altijd de beste situatie.

De parameter Service definieert toegang tot een service of services. Gebruik bijvoorbeeld blob om alleen toegang toe te staan tot de Azure Blob Storage-service. Andere services zijn onder andere File, Table en Queue.

De parameter ResourceType beperkt de toegang tot specifieke typen resources. Door bijvoorbeeld container als waarde te gebruiken, wordt alleen toegang verleend tot containerresources. Andere geldige resourcetypes zijn Service en Object.

De parameter Permission stelt je in staat om toegestane machtigingen te definiëren. Geef één of meer machtigingen op zoals nodig. De waarde van rwd staat gelijk aan het geven van lees, schrijf en verwijder machtigingen. Andere geldige machtigingswaarden zijn (l)ijst, (t)oevoegen, (b)ijwerken en (v)erwerken.

Gebruik van de SAS-token

Er zijn veel manieren om de gegenereerde SAS-token te gebruiken. Een van de meest voorkomende manieren is om deze te gebruiken in een opslagcontext. Een opslagcontext is een manier waarop je referenties kunt “verpakken” om ze vervolgens door te geven aan verschillende opdrachten.

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'

Samenvatting

Het maken van een SAS-token kan op verschillende manieren worden gedaan. In dit artikel heb je een paar van de meest voorkomende manieren geleerd. Eenmaal gemaakt, kan een SAS-token op veel verschillende manieren worden gebruikt, maar de beslissing daarover ligt bij jou.

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