Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met een Shared Access Signature (SAS) kunt u beperkte toegang verlenen tot containers en blobs in uw opslagaccount. Wanneer u een SAS maakt, geeft u de beperkingen op, waaronder welke Azure Storage-resources een client mag openen, welke machtigingen ze hebben voor deze resources en hoe lang de SAS geldig is.
Elke SAS is ondertekend met een sleutel. U kunt een SAS op twee manieren ondertekenen:
- Met een sleutel die is gemaakt met Microsoft Entra-aanmeldgegevens. Een SAS die is ondertekend met behulp van Microsoft Entra-referenties, is een SAS voor gebruikersdelegatie. Aan een client die een SAS voor gebruikersdelegering maakt, moet een Azure RBAC-rol worden toegewezen die de actie Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey bevat. Voor meer informatie, zie Een SAS voor gebruikersdelegatie maken.
- Met de sleutel van het opslagaccount. Zowel een service-SAS als een account-SAS zijn ondertekend met de sleutel van het opslagaccount. De client die een service-SAS maakt, moet directe toegang hebben tot de accountsleutel of de machtiging Microsoft.Storage/storageAccounts/listkeys/action toegewezen hebben gekregen. Zie Een service-SAS maken of Een account-SAS maken voor meer informatie.
Opmerking
Een SAS voor gebruikersdelegering biedt betere beveiliging dan een SAS die is getekend met de sleutel van het opslagaccount. Microsoft raadt het gebruik van een SAS voor gebruikersdelegering aan, indien mogelijk. Zie Beperkte toegang verlenen tot gegevens met Shared Access Signatures (SAS) voor meer informatie.
Dit artikel laat zien hoe je Microsoft Entra-credentials kunt gebruiken om een gebruikersdelegatie-SAS te maken voor een container of blob met de Azure CLI.
Over de SAS voor gebruikersoverdracht
Een SAS-token voor toegang tot een container of blob kan worden beveiligd met behulp van Microsoft Entra-referenties of een accountsleutel. Een SAS die is beveiligd met Microsoft Entra-referenties wordt een SAS voor gebruikersdelegatie genoemd, omdat het OAuth 2.0-token dat wordt gebruikt om de SAS te ondertekenen namens de gebruiker wordt aangevraagd.
Microsoft raadt u aan om, waar mogelijk, Microsoft Entra-referenties te gebruiken als beveiligingsbest practice, in plaats van de accountsleutel te gebruiken, omdat deze gemakkelijker kan worden gecompromitteerd. Wanneer voor uw toepassingsontwerp handtekeningen voor gedeelde toegang zijn vereist, gebruikt u Microsoft Entra-referenties om een SAS voor gebruikersdelegatie te maken voor superieure beveiliging. Zie Een SAS voor gebruikersdelegatie maken voor meer informatie over de gebruikersdelegatie SAS.
Waarschuwing
Elke client die een geldige SAS heeft, heeft toegang tot gegevens in uw opslagaccount, zoals toegestaan door die SAS. Het is belangrijk om een SAS te beschermen tegen schadelijk of onbedoeld gebruik. Gebruik discretie bij het uitdelen van een SAS en zorg dat je een plan hebt om een gecompromitteerde SAS in te trekken. Om onbedoeld gebruik te voorkomen, gebruikt u een gebruikersgebonden, door gebruikers gedelegeerde SAS, waarmee het SAS-token aan de beoogde eindgebruiker wordt gekoppeld en die door niemand anders kan worden gebruikt.
Zie Beperkte toegang verlenen tot Azure Storage-resources met behulp van Sas (Shared Access Signatures ) voor meer informatie over handtekeningen voor gedeelde toegang.
Installeer de nieuwste versie van de Azure CLI
Om de Azure CLI te gebruiken om een SAS met Microsoft Entra-credentials te beveiligen, zorg je er eerst voor dat je de nieuwste versie van Azure CLI hebt geïnstalleerd. Voor meer informatie over het installeren van de Azure CLI, zie Install the Azure CLI.
Om een gebruikersdelegatie-SAS te maken met de Azure CLI, zorg ervoor dat je versie 2.0.78 of later hebt geïnstalleerd. Om je geïnstalleerde versie te controleren, gebruik je het az --version commando.
Aanmelden met Microsoft Entra referenties
Log in op de Azure CLI met je Microsoft Entra-inloggegevens. Voor meer informatie, zie Meld u aan met de Azure CLI.
Machtigingen toewijzen met Azure RBAC
Om een gebruikersdelegatie-SAS te maken vanuit Azure PowerShell, moet aan het Microsoft Entra-account dat wordt gebruikt om zich aan te melden bij Azure CLI een rol zijn toegewezen die de actie Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey bevat. Deze toestemming stelt dat Microsoft Entra-account in staat om de gebruikersdelegatiesleutel op te vragen. De gebruikersdelegatiesleutel wordt gebruikt om de gebruikersdelegatie-SAS te ondertekenen. De rol die de actie Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey biedt, moet worden toegewezen op het niveau van het opslagaccount, de resourcegroep of het abonnement.
Als je niet voldoende rechten hebt om Azure-rollen toe te wijzen aan een Microsoft Entra security principal, moet je mogelijk de accounteigenaar of beheerder vragen om de benodigde rechten toe te wijzen.
Het volgende voorbeeld wijst de rol Storage Blob Data Contributor toe, die de actie Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey omvat. De rol is beperkt tot het niveau van het opslagaccount.
Vergeet niet om placeholderwaarden in de hoeken te vervangen door uw eigen waarden.
az role assignment create \
--role "Storage Blob Data Contributor" \
--assignee <email> \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>"
Raadpleeg ingebouwde Azure-rollen voor meer informatie over de ingebouwde rollen die de actie Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey bevatten.
Gebruik Microsoft Entra-inloggegevens om een SAS te beveiligen
Wanneer je een gebruikersdelegatie-SAS aanmaakt met de Azure CLI, wordt de gebruikersdelegatiesleutel die wordt gebruikt om de SAS te ondertekenen impliciet voor je aangemaakt. De start- en vervaltijd die je voor de SAS opgeeft, worden ook gebruikt als start- en vervaltijd voor de gebruikersdelegatiesleutel.
Omdat het maximale interval waarin de gebruikersdelegatiesleutel geldig is 7 dagen vanaf de startdatum is, moet je een vervaldatum voor de SAS specificeren die binnen 7 dagen van de starttijd ligt. De SAS is ongeldig nadat de gebruikersdelegatiesleutel is verlopen, dus een SAS met een vervaldatum van meer dan 7 dagen blijft nog steeds slechts 7 dagen geldig.
Bij het aanmaken van een gebruikersdelegatie SAS zijn de --auth-mode login en --as-user parameters vereist. Specificeer inloggen voor de --auth-mode parameter zodat verzoeken aan Azure Storage worden geautoriseerd met je Microsoft Entra-inloggegevens. Specificeer de --as-user parameter die aangeeft dat de teruggegeven SAS een gebruikersdelegatie-SAS moet zijn.
Maak een gebruikersdelegerings-SAS aan voor een container
Om een gebruikersdelegatie SAS te maken voor een container met de Azure CLI, roep je het az storage container generate-sas-commando aan.
Ondersteunde rechten voor een gebruikersdelegatie-SAS op een container zijn onder andere Toevoegen, Aanmaken, Verwijderen, Lijsten, Lezen en Schrijven. Rechten kunnen afzonderlijk of gecombineerd worden opgegeven. Voor meer informatie over deze machtigingen raadpleegt u Een SAS voor gebruikersdelegatie maken.
Het volgende voorbeeld geeft een gebruikersdelegatie SAS-token voor een container terug. Vergeet niet om de tijdelijke aanduidingen tussen haakjes te vervangen door uw eigen waarden:
az storage container generate-sas \
--account-name <storage-account> \
--name <container> \
--permissions acdlrw \
--expiry <date-time> \
--auth-mode login \
--as-user
Het geretourneerde SAS-token voor gebruikersdelegatie zal er ongeveer als volgt uitzien:
se=2019-07-27&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sktid=<sktid>&skt=2019-07-26T18%3A01%3A22Z&ske=2019-07-27T00%3A00%3A00Z&sks=b&skv=2018-11-09&sig=<signature>
Opmerking
Het SAS-token dat door Blob Storage wordt teruggegeven, bevat niet het scheidingsteken ('?') voor de URL-querystring. Als je het SAS-token aan een resource URL toevoegt, vergeet dan niet ook het scheidingsteken toe te voegen.
Maak een gebruikersdelegatie-SAS aan voor een blob
Om een gebruikersdelegatie SAS te maken voor een blob met de Azure CLI, roep je het az storage blob generate-sas-commando aan.
Ondersteunde machtigingen voor een gebruikersdelegatie SAS op een blob zijn onder andere Toevoegen, Aanmaken, Verwijderen, Lezen en Schrijven. Rechten kunnen afzonderlijk of gecombineerd worden opgegeven. Voor meer informatie over deze machtigingen raadpleegt u Create a user delegation SAS.
De volgende syntaxis geeft een gebruikersdelegatie-SAS terug voor een blob. Het voorbeeld specificeert de --full-uri parameter, die de blob-URI teruggeeft met het SAS-token toegevoegd. Vergeet niet om de tijdelijke aanduidingen tussen haakjes te vervangen door uw eigen waarden:
az storage blob generate-sas \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--permissions acdrw \
--expiry <date-time> \
--auth-mode login \
--as-user \
--full-uri
De gebruikersdelegatie die SAS URI terugstuurde, zal vergelijkbaar zijn als:
https://storagesamples.blob.core.windows.net/sample-container/blob1.txt?se=2019-08-03&sp=rw&sv=2018-11-09&sr=b&skoid=<skoid>&sktid=<sktid>&skt=2019-08-02T2
2%3A32%3A01Z&ske=2019-08-03T00%3A00%3A00Z&sks=b&skv=2018-11-09&sig=<signature>
Opmerking
Het SAS-token dat door de Azure CLI wordt geretourneerd, bevat niet het scheidingsteken ('?') voor de URL-querystring. Als u het SAS-token toevoegt aan een resource-URL, moet u het scheidingsteken toevoegen aan de resource-URL voordat u het SAS-token toevoegt.
Een gebruikersdelegatie-SAS ondersteunt geen definiëring van permissies met een opgeslagen toegangsbeleid.
Een SAS voor gebruikersdelegering intrekken
Om een gebruikersdelegatie SAS uit de Azure CLI in te trekken, roep je het az storage account revoke-delegation-keys commando aan. Met deze opdracht worden alle sleutels voor gebruikersdelegatie ingetrokken die zijn gekoppeld aan het opgegeven opslagaccount. Alle gedeelde toegangshandtekeningen die aan die sleutels zijn gekoppeld, worden ongeldig verklaard.
Vergeet niet om placeholderwaarden in de hoeken te vervangen door uw eigen waarden.
az storage account revoke-delegation-keys \
--name <storage-account> \
--resource-group <resource-group>
Belangrijk
Zowel de gebruikersdelegatiesleutel als de Azure-roltoewijzingen worden gecachet door Azure Storage, dus er kan een vertraging zijn tussen het starten van het intrekkingsproces en het ongeldig worden van een bestaande gebruikersdelegatie-SAS.