Anonieme leestoegang tot containers en blobs configureren

Azure Storage biedt ondersteuning voor optionele anonieme leestoegang voor containers en blobs. Anonieme toegang tot uw gegevens is standaard nooit toegestaan. Tenzij u expliciet anonieme toegang inschakelt, moeten alle aanvragen voor een container en de bijbehorende blobs worden geautoriseerd. Wanneer u de instelling op toegangsniveau van een container configureert om anonieme toegang toe te laten, kunnen clients gegevens in die container lezen zonder de aanvraag te autoriseren.

Waarschuwing

Wanneer een container is geconfigureerd voor anonieme toegang, kan elke client gegevens in die container lezen. Anonieme toegang vormt een mogelijk beveiligingsrisico, dus als uw scenario dit niet vereist, raden we u aan anonieme toegang voor het opslagaccount op te lossen.

In dit artikel wordt beschreven hoe u anonieme leestoegang configureert voor een container en de bijbehorende blobs. Zie een van de volgende artikelen voor informatie over het herstellen van anonieme toegang voor optimale beveiliging:

Over anonieme leestoegang

Anonieme toegang tot uw gegevens is altijd standaard verboden. Er zijn twee afzonderlijke instellingen die van invloed zijn op anonieme toegang:

  1. Instelling voor anonieme toegang voor het opslagaccount. Een Azure Resource Manager-opslagaccount biedt een instelling om anonieme toegang voor het account toe te staan of te weigeren. Microsoft raadt aan om anonieme toegang voor uw opslagaccounts niet toe tewijsen voor optimale beveiliging.

    Wanneer anonieme toegang is toegestaan op accountniveau, zijn blobgegevens niet beschikbaar voor anonieme leestoegang, tenzij de gebruiker de extra stap neemt om de instelling voor anonieme toegang van de container expliciet te configureren.

  2. Configureer de instelling voor anonieme toegang van de container. De instelling voor anonieme toegang van een container is standaard uitgeschakeld, wat betekent dat autorisatie vereist is voor elke aanvraag voor de container of de bijbehorende gegevens. Een gebruiker met de juiste machtigingen kan de instelling voor anonieme toegang van een container wijzigen om anonieme toegang alleen in te schakelen als anonieme toegang is toegestaan voor het opslagaccount.

De volgende tabel geeft een overzicht van de invloed van de twee instellingen op anonieme toegang voor een container.

Anoniem toegangsniveau voor de container is ingesteld op Privé (standaardinstelling) Anoniem toegangsniveau voor de container is ingesteld op Container Anoniem toegangsniveau voor de container is ingesteld op Blob
Anonieme toegang is niet toegestaan voor het opslagaccount Geen anonieme toegang tot een container in het opslagaccount. Geen anonieme toegang tot een container in het opslagaccount. De instelling van het opslagaccount overschrijft de containerinstelling. Geen anonieme toegang tot een container in het opslagaccount. De instelling van het opslagaccount overschrijft de containerinstelling.
Anonieme toegang is toegestaan voor het opslagaccount Geen anonieme toegang tot deze container (standaardconfiguratie). Anonieme toegang is toegestaan voor deze container en de bijbehorende blobs. Anonieme toegang is toegestaan voor blobs in deze container, maar niet voor de container zelf.

Wanneer anonieme toegang is toegestaan voor een opslagaccount en is geconfigureerd voor een specifieke container, wordt een aanvraag voor het lezen van een blob in die container die wordt doorgegeven zonder autorisatieheader geaccepteerd door de service en worden de gegevens van de blob geretourneerd in het antwoord.

Anonieme leestoegang voor een opslagaccount toestaan of weigeren

Wanneer anonieme toegang is toegestaan voor een opslagaccount, kan een gebruiker met de juiste machtigingen de instelling voor anonieme toegang van een container wijzigen om anonieme toegang tot de gegevens in die container in te schakelen. Blobgegevens zijn nooit beschikbaar voor anonieme toegang, tenzij de gebruiker de extra stap neemt om de instelling voor anonieme toegang van de container expliciet te configureren.

Houd er rekening mee dat anonieme toegang tot een container altijd standaard is uitgeschakeld en expliciet moet worden geconfigureerd om anonieme aanvragen toe te staan. Ongeacht de instelling voor het opslagaccount zijn uw gegevens nooit beschikbaar voor anonieme toegang, tenzij een gebruiker met de juiste machtigingen deze extra stap neemt om anonieme toegang in te schakelen voor de container.

Het ongedaan maken van anonieme toegang voor het opslagaccount overschrijft de toegangsinstellingen voor alle containers in dat opslagaccount, waardoor anonieme toegang tot blobgegevens in dat account wordt voorkomen. Wanneer anonieme toegang niet is toegestaan voor het account, is het niet mogelijk om de toegangsinstelling voor een container te configureren om anonieme toegang toe tegestaan en eventuele toekomstige anonieme aanvragen voor dat account mislukken. Voordat u deze instelling wijzigt, moet u weten wat de gevolgen zijn voor clienttoepassingen die mogelijk anoniem toegang hebben tot gegevens in uw opslagaccount. Zie Anonieme leestoegang tot containers en blobs voorkomen voor meer informatie.

Belangrijk

Nadat anonieme toegang niet is toegestaan voor een opslagaccount, vinden clients die gebruikmaken van de anonieme bearer-uitdaging dat Azure Storage een 403-fout (verboden) retourneert in plaats van een 401-fout (niet geautoriseerd). U wordt aangeraden alle containers privé te maken om dit probleem te verhelpen. Zie Het toegangsniveau voor een container instellen voor meer informatie over het wijzigen van de instelling voor anonieme toegang voor containers.

Anonieme toegang toestaan of de toewijzing ervan ongedaan maken vereist versie 2019-04-01 of hoger van de Azure Storage-resourceprovider. Zie de REST API van Azure Storage-resourceprovider voor meer informatie.

Machtigingen voor het ongedaan maken van anonieme toegang

Als u de eigenschap AllowBlobAnonymousAccess voor het opslagaccount wilt instellen, moet een gebruiker machtigingen hebben voor het maken en beheren van opslagaccounts. Rollen voor op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) die deze machtigingen bieden, omvatten de actie Microsoft.Storage/storageAccounts/write . Ingebouwde rollen met deze actie zijn onder andere:

  • De rol Azure Resource Manager-eigenaar
  • De rol Azure Resource Manager-inzender
  • De rol Inzender voor opslagaccounts

Roltoewijzingen moeten worden toegewezen aan het niveau van het opslagaccount of hoger, zodat een gebruiker anonieme toegang voor het opslagaccount niet toestaat. Zie Bereik begrijpen voor Azure RBAC voor meer informatie over rolbereik.

Wees voorzichtig met het beperken van de toewijzing van deze rollen aan gebruikers met beheerdersrechten die de mogelijkheid nodig hebben om een opslagaccount te maken of de eigenschappen ervan bij te werken. Gebruik het principe van minimale bevoegdheden om ervoor te zorgen dat gebruikers de minste machtigingen hebben die ze nodig hebben om hun taken uit te voeren. Zie Best practices voor Azure RBAC voor meer informatie over het beheren van toegang met Azure RBAC.

Deze rollen bieden geen toegang tot gegevens in een opslagaccount via Microsoft Entra-id. Ze bevatten echter de Microsoft.Storage/storageAccounts/listkeys/action, die toegang verleent tot de accounttoegangssleutels. Met deze machtiging kan een gebruiker de toegangssleutels voor het account gebruiken om toegang te krijgen tot alle gegevens in een opslagaccount.

De Microsoft.Storage/storageAccounts/listkeys/action zelf verleent gegevenstoegang via de accountsleutels, maar verleent een gebruiker niet de mogelijkheid om de eigenschap AllowBlobPublicAccess voor een opslagaccount te wijzigen. Voor gebruikers die toegang nodig hebben tot gegevens in uw opslagaccount, maar niet de mogelijkheid hebben om de configuratie van het opslagaccount te wijzigen, kunt u overwegen rollen toe te wijzen, zoals Inzender voor opslagblobgegevens, Opslagblobgegevenslezer of Lezer en Gegevenstoegang.

Notitie

De klassieke abonnementsbeheerdersrollen Service Beheer istrator en Co-Beheer istrator bevatten het equivalent van de azure Resource Manager-eigenaarrol. De rol Eigenaar bevat alle acties, zodat een gebruiker met een van deze beheerdersrollen ook opslagaccounts kan maken en accountconfiguratie kan beheren. Zie Azure-rollen, Microsoft Entra-rollen en klassieke abonnementsbeheerdersrollen voor meer informatie.

De eigenschap AllowBlobPublicAccess van het opslagaccount instellen

Als u anonieme toegang voor een opslagaccount wilt toestaan of weigeren, stelt u de eigenschap AllowBlobPublicAccess van het account in. Deze eigenschap is beschikbaar voor alle opslagaccounts die zijn gemaakt met het Azure Resource Manager-implementatiemodel. Zie het overzicht van het Opslagaccount voor meer informatie.

Als u anonieme toegang voor een opslagaccount in Azure Portal wilt toestaan of weigeren, voert u de volgende stappen uit:

  1. Ga in Azure Portal naar uw opslagaccount.

  2. Zoek de configuratie-instelling onder Instellingen.

  3. Stel Anonieme toegang tot Blob toestaan in op Ingeschakeld of Uitgeschakeld.

    Screenshot showing how to allow or disallow anonymous access for account

Notitie

Het ongedaan maken van anonieme toegang voor een opslagaccount heeft geen invloed op statische websites die in dat opslagaccount worden gehost. De $web-container is altijd openbaar toegankelijk.

Nadat u de instelling voor anonieme toegang voor het opslagaccount hebt bijgewerkt, kan het tot 30 seconden duren voordat de wijziging volledig wordt doorgegeven.

Wanneer een container is geconfigureerd voor anonieme toegang, hoeven aanvragen voor het lezen van blobs in die container niet te worden geautoriseerd. Firewallregels die zijn geconfigureerd voor het opslagaccount, blijven echter van kracht en blokkeren verkeer inline met de geconfigureerde ACL's.

Anonieme toegang toestaan of de toewijzing ervan ongedaan maken vereist versie 2019-04-01 of hoger van de Azure Storage-resourceprovider. Zie de REST API van Azure Storage-resourceprovider voor meer informatie.

In de voorbeelden in deze sectie ziet u hoe u de eigenschap AllowBlobPublicAccess voor het opslagaccount kunt lezen om te bepalen of anonieme toegang momenteel is toegestaan of niet is toegestaan. Zie Anonieme toegang voor het opslagaccount herstellen voor informatie over het controleren of de instelling voor anonieme toegang van een account is geconfigureerd om anonieme toegang te voorkomen.

Het anonieme toegangsniveau voor een container instellen

Als u anonieme gebruikers leestoegang wilt verlenen tot een container en de bijbehorende blobs, moet u eerst anonieme toegang voor het opslagaccount toestaan en vervolgens het anonieme toegangsniveau van de container instellen. Als anonieme toegang voor het opslagaccount wordt geweigerd, kunt u anonieme toegang voor een container niet configureren.

Let op

Microsoft raadt aan anonieme toegang tot blobgegevens in uw opslagaccount toe tegestaan.

Wanneer anonieme toegang is toegestaan voor een opslagaccount, kunt u een container configureren met de volgende machtigingen:

  • Geen openbare leestoegang: de container en de bijbehorende blobs kunnen alleen worden geopend met een geautoriseerde aanvraag. Deze optie is de standaardinstelling voor alle nieuwe containers.
  • Alleen openbare leestoegang voor blobs: Blobs in de container kunnen worden gelezen door anonieme aanvragen, maar containergegevens zijn niet anoniem beschikbaar. Anonieme clients kunnen de blobs in de container niet inventariseren.
  • Openbare leestoegang voor containers en de bijbehorende blobs: Container- en blobgegevens kunnen worden gelezen door anonieme aanvraag, met uitzondering van containermachtigingsinstellingen en containermetagegevens. Clients kunnen blobs in de container opsommen op anonieme aanvraag, maar kunnen geen containers in het opslagaccount opsommen.

U kunt het anonieme toegangsniveau voor een afzonderlijke blob niet wijzigen. Anoniem toegangsniveau is alleen ingesteld op containerniveau. U kunt het anonieme toegangsniveau van de container instellen wanneer u de container maakt of u kunt de instelling voor een bestaande container bijwerken.

Voer de volgende stappen uit om het anonieme toegangsniveau voor een of meer bestaande containers in Azure Portal bij te werken:

  1. Navigeer naar het overzicht van uw opslagaccount in Azure Portal.

  2. Selecteer Containers onder Gegevensopslag op de menublade.

  3. Selecteer de containers waarvoor u het anonieme toegangsniveau wilt instellen.

  4. Gebruik de knop Toegangsniveau wijzigen om de instellingen voor anonieme toegang weer te geven.

  5. Selecteer het gewenste anonieme toegangsniveau in de vervolgkeuzelijst Anonieme toegangsniveau en klik op de knop OK om de wijziging toe te passen op de geselecteerde containers.

    Screenshot showing how to set anonymous access level in the portal.

Wanneer anonieme toegang niet is toegestaan voor het opslagaccount, kan het anonieme toegangsniveau van een container niet worden ingesteld. Als u probeert het anonieme toegangsniveau van de container in te stellen, ziet u dat de instelling is uitgeschakeld omdat anonieme toegang niet is toegestaan voor het account.

Screenshot showing that setting a container's anonymous access level is blocked when anonymous access disallowed for the account

Controleer de instelling voor anonieme toegang voor een set containers

Het is mogelijk om te controleren welke containers in een of meer opslagaccounts zijn geconfigureerd voor anonieme toegang door de containers weer te geven en de instelling voor anonieme toegang te controleren. Deze aanpak is een praktische optie wanneer een opslagaccount geen groot aantal containers bevat of wanneer u de instelling controleert voor een klein aantal opslagaccounts. De prestaties kunnen echter lijden als u probeert een groot aantal containers op te sommen.

In het volgende voorbeeld wordt PowerShell gebruikt om de instelling voor anonieme toegang voor alle containers in een opslagaccount op te halen. Vergeet niet om de tijdelijke aanduidingen tussen haakjes te vervangen door uw eigen waarden:

$rgName = "<resource-group>"
$accountName = "<storage-account>"
$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context
Get-AzStorageContainer -Context $ctx | Select Name, PublicAccess

Functieondersteuning

Ondersteuning voor deze functie kan worden beïnvloed door het inschakelen van Data Lake Storage Gen2, het NFS-protocol (Network File System) 3.0 of het SSH File Transfer Protocol (SFTP). Als u een van deze mogelijkheden hebt ingeschakeld, raadpleegt u de ondersteuning voor Blob Storage-functies in Azure Storage-accounts om ondersteuning voor deze functie te beoordelen.

Volgende stappen