Handtekeningen voor gedeelde toegang detecteren

Voltooid

Een Shared Access Signature (SAS) is een ondertekende URI die verwijst naar een of meer opslagresources en een token bevat dat een speciale set queryparameters bevat. Het token geeft aan hoe de resources toegankelijk zijn voor de client. Een van de queryparameters, de handtekening, wordt samengesteld op basis van de SAS-parameters en ondertekend met de sleutel die is gebruikt om de SAS te maken. Deze handtekening wordt door Azure Storage gebruikt om toegang tot de opslagresource te autoriseren.

Typen handtekeningen voor gedeelde toegang

Azure Storage ondersteunt drie typen handtekeningen voor gedeelde toegang:

  • SAS voor gebruikersdelegatie: een SAS voor gebruikersdelegatie wordt beveiligd met Microsoft Entra-referenties en ook met de machtigingen die zijn opgegeven voor de SAS. Een SAS voor gebruikersdelegering is alleen van toepassing op Blob Storage.

  • Service-SAS: Een service-SAS wordt beveiligd met de sleutel van het opslagaccount. Een service-SAS delegeert toegang tot een resource in de volgende Azure Storage-services: Blob Storage, Queue Storage, Table Storage of Azure Files.

  • Account-SAS: Een account-SAS wordt beveiligd met de sleutel van het opslagaccount. Een account-SAS delegeert toegang tot resources in een of meer van de opslagservices. Alle bewerkingen die beschikbaar zijn via een service of gebruikersdelegering-SAS, zijn ook beschikbaar via een account-SAS.

Notitie

Microsoft raadt u aan microsoft Entra-referenties te gebruiken als best practice voor beveiliging, in plaats van de accountsleutel te gebruiken, die gemakkelijker kan worden aangetast. Wanneer uw toepassingsontwerp handtekeningen voor gedeelde toegang vereist voor toegang tot Blob Storage, gebruikt u Microsoft Entra-referenties om een SAS voor gebruikersdelegering te maken, indien mogelijk voor superieure beveiliging

Hoe werkt SAS?

Wanneer u een SAS gebruikt voor toegang tot gegevens die zijn opgeslagen in Azure Storage, hebt u twee elementen nodig. Het eerste is een URI naar de resource waartoe u toegang wilt verkrijgen. Het tweede is een SAS-token dat u hebt gemaakt om toegang te verlenen tot die resource.

In één URI, zoals https://medicalrecords.blob.core.windows.net/patient-images/patient-116139-nq8z7f.jpg?sp=r&st=2020-01-20T11:42:32Z&se=2020-01-20T19:42:32Z&spr=https&sv=2019-02-02&sr=b&sig=SrW1HZ5Nb6MbRzTbXCaPm%2BJiSEn15tC91Y4umMPwVZs%3D, kunt u als volgt de URI scheiden van het SAS-token:

  • URI: https://medicalrecords.blob.core.windows.net/patient-images/patient-116139-nq8z7f.jpg?
  • SAS-token: sp=r&st=2020-01-20T11:42:32Z&se=2020-01-20T19:42:32Z&spr=https&sv=2019-02-02&sr=b&sig=SrW1HZ5Nb6MbRzTbXCaPm%2BJiSEn15tC91Y4umMPwVZs%3D

Het SAS-token zelf bestaat uit verschillende onderdelen.

Onderdeel Beschrijving
sp=r Hiermee beheert u de toegangsrechten. De waarden kunnen zijn a voor toevoegen, c maken, d verwijderen, l voor lijst, r voor lezen of w schrijven. Dit voorbeeld is alleen-lezen. In het voorbeeld sp=acdlrw worden alle beschikbare rechten verleend.
st=2020-01-20T11:42:32Z De datum en tijd waarop de toegang ingaat.
se=2020-01-20T19:42:32Z De datum en tijd waarop de toegang wordt beëindigd. In dit voorbeeld wordt acht uur toegang verleend.
sv=2019-02-02 De versie van de opslag-API die moet worden gebruikt.
sr=b Het soort opslag waartoe toegang wordt verkregen. In dit voorbeeld staat b voor blob.
sig=SrW1HZ5Nb6MbRzTbXCaPm%2BJiSEn15tC91Y4umMPwVZs%3D De cryptografische handtekening.

Aanbevolen procedures

Microsoft biedt een aantal richtlijnen om de mogelijke risico's van het gebruik van een SAS te verminderen:

  • Gebruik altijd HTTPS om een SAS veilig te distribueren en man-in-the-middle-aanvallen te voorkomen.
  • De veiligste SAS is een handtekening voor gedeelde toegang voor gebruikersdelegatie. Gebruik deze waar mogelijk, omdat u hierbij uw opslagaccountsleutel niet in code hoeft op te slaan. U moet De Microsoft Entra-id gebruiken om referenties te beheren. Deze optie is mogelijk niet beschikbaar voor uw oplossing.
  • Probeer het vervaltijdstip zo vroeg mogelijk in te stellen. Als een SAS-sleutel gecompromitteerd wordt, kan deze slechts een korte periode worden gebruikt.
  • Pas de regel van minimaal vereiste bevoegdheden toe. Ken alleen de toegang toe die wordt vereist. In uw app, bijvoorbeeld, is alleen-lezentoegang voldoende.
  • Er zijn een aantal situaties waarin een SAS niet de juiste oplossing is. Wanneer er sprake is van een onaanvaardbaar risico voor het gebruik van een SAS, maakt u een service voor een middelste laag voor het beheren van gebruikers en hun toegang tot de opslag.