Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Storage stöder valfri anonym läsåtkomst för containrar och blobar. Som standard tillåts aldrig anonym åtkomst till dina data. Om du inte uttryckligen aktiverar anonym åtkomst måste alla begäranden till en container och dess blobar auktoriseras. När du konfigurerar en containers åtkomstnivåinställning för att tillåta anonym åtkomst kan klienter läsa data i containern utan att godkänna begäran.
Warning
När en container har konfigurerats för anonym åtkomst kan alla klienter läsa data i containern. Anonym åtkomst utgör en potentiell säkerhetsrisk, så om ditt scenario inte kräver det, åtgärda anonym åtkomst för lagringskontot.
Den här artikeln beskriver hur du konfigurerar anonym läsåtkomst för en container och dess blobar. Information om hur du åtgärdar anonym åtkomst för optimal säkerhet finns i Åtgärda anonym läsåtkomst till blobdata.
Om anonym läsåtkomst
Anonym åtkomst till dina data är alltid förbjuden som standard. Två inställningar påverkar anonym åtkomst:
Inställning för anonym åtkomst för lagringskontot. Ett Azure Resource Manager-lagringskonto erbjuder en inställning för att tillåta eller neka anonym åtkomst för kontot. Microsoft rekommenderar att du inte tillåter anonym åtkomst för dina lagringskonton för optimal säkerhet.
När anonym åtkomst tillåts på kontonivå är blobdata inte tillgängliga för anonym läsåtkomst om inte användaren vidtar ytterligare steg för att uttryckligen konfigurera containerns inställning för anonym åtkomst.
Konfigurera containerns inställning för anonym åtkomst. Som standard är en containers inställning för anonym åtkomst inaktiverad, vilket innebär att auktorisering krävs för varje begäran till containern eller dess data. En användare med rätt behörighet kan ändra en containers inställning för anonym åtkomst för att endast aktivera anonym åtkomst om anonym åtkomst tillåts för lagringskontot.
I följande tabell sammanfattas hur de två inställningarna tillsammans påverkar anonym åtkomst för en container.
| Anonym åtkomstnivå för containern är inställd på Privat (standardinställning) | Anonym åtkomstnivå för containern är inställd på Container | Anonym åtkomstnivå för containern är inställd på Blob | |
|---|---|---|---|
| Anonym åtkomst tillåts inte för lagringskontot | Ingen anonym åtkomst till någon container i lagringskontot. | Ingen anonym åtkomst till någon container i lagringskontot. Inställningen för lagringskontot åsidosätter containerinställningen. | Ingen anonym åtkomst till någon container i lagringskontot. Inställningen för lagringskontot åsidosätter containerinställningen. |
| Anonym åtkomst tillåts för lagringskontot | Ingen anonym åtkomst till den här containern (standardkonfiguration). | Anonym åtkomst tillåts till den här containern och dess blobar. | Anonym åtkomst tillåts till blobar i den här containern, men inte till själva containern. |
När anonym åtkomst tillåts för ett lagringskonto och konfigureras för en specifik container, accepterar tjänsten en begäran om att läsa en blob i den containern som skickas utan header Authorization , och returnerar blobens data i svaret. Om förfrågan däremot skickas med en Authorization header ignorerar tjänsten anonym åtkomst på lagringskontot och auktoriserar begäran baserat på de angivna inloggningsuppgifterna.
Tillåt eller neka anonym läsåtkomst för ett lagringskonto
När du tillåter anonym åtkomst för ett lagringskonto kan en användare med lämpliga behörigheter ändra en containers anonyma åtkomstinställning för att möjliggöra anonym åtkomst till data i den containern. Blobdata är aldrig tillgänglig för anonym åtkomst om inte användaren tar det extra steget att explicit konfigurera containerns anonyma åtkomstinställning.
Anonym åtkomst till en container är alltid avstängd som standard och måste uttryckligen konfigureras för att tillåta anonyma förfrågningar. Oavsett inställningen på lagringskontot är din data aldrig tillgänglig för anonym åtkomst om inte en användare med lämpliga behörigheter tar detta extra steg för att möjliggöra anonym åtkomst på containern.
Om du inte tillåter anonym åtkomst för lagringskontot åsidosätts åtkomstinställningarna för alla containrar i lagringskontot, vilket förhindrar anonym åtkomst till blobdata i det kontot. När du förbjuder anonym åtkomst för kontot kan du inte konfigurera åtkomstinställningen för en container för att tillåta anonym åtkomst, och framtida anonyma förfrågningar till det kontot misslyckas. Innan du ändrar den här inställningen bör du säkerställa att du förstår vilken påverkan detta har på klientapplikationer som kan komma åt data i ditt lagringskonto anonymt. Mer information finns i Förhindra anonym läsåtkomst till containrar och blobar.
Viktigt!
Efter att du förbjudit anonym åtkomst för ett lagringskonto upptäcker klienter som använder anonym bärarutmaning att Azure Storage returnerar ett 403-fel (Förbjudet) istället för ett 401-fel (Oauktoriserat). Gör alla behållare privata för att mildra problemet. Mer information om hur du ändrar inställningen för anonym åtkomst för containrar finns i Ange åtkomstnivå för en container.
För att tillåta eller neka anonym åtkomst krävs version 2019-04-01 eller senare av Azure Storage-resursprovidern. Mer information finns i REST API för Azure Storage-resursprovider.
Behörigheter för att neka anonym åtkomst
För att sätta AllowBlobPublicAccess-egenskapen för lagringskontot behöver du behörigheter för att skapa och hantera lagringskonton. Rollbaserade Azure-åtkomstkontrollroller (Azure RBAC) som ger dessa behörigheter omfattar åtgärden Microsoft.Storage/storageAccounts/write . Inbyggda roller med den här åtgärden inkluderar:
- Rollen Owner för Azure Resource Manager
- Azure Resource Manager Deltagarrollen
- Rollen Lagringskontobidragsgivare
Rolltilldelningar måste begränsas till lagringskontots nivå eller högre för att tillåta att en användare tillåter anonym åtkomst för lagringskontot. Mer information om rollomfång finns i Förstå omfånget för Azure RBAC.
Begränsa tilldelningen av dessa roller endast till administratörer som behöver möjlighet att skapa ett lagringskonto eller uppdatera dess egenskaper. Använd principen om minsta privilegium för att säkerställa att användarna har så få behörigheter som krävs för att utföra sina uppgifter. Mer information om hur du hanterar åtkomst med Azure RBAC finns i Metodtips för Azure RBAC.
Dessa roller ger inte åtkomst till data i ett lagringskonto via Microsoft Entra-ID. De innehåller dock åtgärden Microsoft.Storage/storageAccounts/listkeys/action, som ger åtkomst till kontoåtkomstnycklarna. Genom att använda denna behörighet kan en användare använda kontons åtkomstnycklar för att komma åt all data i ett lagringskonto.
Microsoft. Storage/storageAccounts/listkeys/action ger själv dataåtkomst via kontonycklarna, men ger inte användaren möjlighet att ändra AllowBlobPublicAccess-egenskapen för ett lagringskonto. För användare som behöver komma åt data i ditt lagringskonto men inte bör ha möjlighet att ändra lagringskontots konfiguration bör du överväga att tilldela roller som Storage Blob Data Contributor, Storage Blob Data Reader eller Reader och Data Access.
Note
De klassiska prenumerationsadministratörsrollerna Tjänstadministratör och medadministratör innehåller motsvarigheten till rollen Azure Resource Manager-ägare. Rollen Ägare innehåller alla åtgärder, så att en användare med någon av dessa administrativa roller också kan skapa lagringskonton och hantera kontokonfiguration. Mer information finns i Azure-roller , Microsoft Entra-roller och klassiska prenumerationsadministratörsroller.
Ange lagringskontots AllowBlobPublicAccess-egenskap
Om du vill tillåta eller inte tillåta anonym åtkomst för ett lagringskonto anger du kontots egenskapen AllowBlobPublicAccess . Denna egenskap är tillgänglig för alla lagringskonton som du skapar med Azure Resource Manager-distributionsmodellen. Mer information finns i Översikt över lagringskonto.
Följ dessa steg för att tillåta eller neka anonym åtkomst för ett lagringskonto i Azure Portal:
Gå till ditt lagringskonto i Azure-portalen.
Hitta konfigurationsinställningen under Inställningar.
Ange Tillåt anonym blobåtkomst till Aktiverad eller Inaktiverad.
Note
Att förbjuda anonym åtkomst för ett lagringskonto påverkar inte några statiska webbplatser som är värda i det lagringskontot. Den $web containern är alltid offentligt tillgänglig.
Efter att du uppdaterat inställningen för anonym åtkomst för lagringskontot kan det ta upp till 30 sekunder innan ändringen är helt spridd.
När en container har konfigurerats för anonym åtkomst behöver begäranden om att läsa blobar i containern inte auktoriseras. Men alla brandväggsregler du konfigurerar för lagringskontot gäller fortfarande och blockerar trafiken i linje med de konfigurerade ACL:erna.
Följande exempel visar hur man läser AllowBlobPublicAccess-egenskapen för lagringskontot för att avgöra om anonym åtkomst för närvarande är tillåten eller inte tillåten. Information om hur du kontrollerar att ett kontos inställning för anonym åtkomst är konfigurerad för att förhindra anonym åtkomst finns i Åtgärda anonym åtkomst för lagringskontot.
Ange anonym åtkomstnivå för en container
Om du vill ge anonyma användare läsåtkomst till en container och dess blobar ska du först tillåta anonym åtkomst för lagringskontot och sedan ange containerns anonyma åtkomstnivå. Innan du börjar, se till att anonym åtkomst är tillåten på kontonivå (via AllowBlobPublicAccess-egenskapen ) och att du har skrivbehörighet på containern. Om anonym åtkomst nekas för lagringskontot kan du inte konfigurera anonym åtkomst för en container.
Caution
Microsoft rekommenderar att du inte tillåter anonym åtkomst till blobdata i ditt lagringskonto.
När du tillåter anonym åtkomst för ett lagringskonto kan du konfigurera en container med följande behörigheter:
- Ingen offentlig läsåtkomst (portal: Privat; PowerShell: Av): Containern och dess blobs kan endast nås med en auktoriserad förfrågan. Det här alternativet är standard för alla nya containrar.
- Offentlig läsåtkomst endast för blobs (portal och PowerShell: Blob): Blobs inom containern kan läsas anonymt, men containerdata är inte anonymt. Anonyma klienter kan inte räkna upp blobarna i containern.
- Offentlig läsåtkomst för container och dess blobs (portal och PowerShell: Container): Container- och blobdata kan läsas anonymt, förutom containerbehörighetsinställningar och containermetadata. Klienter kan enumerera blobs inom containern genom anonym förfrågan, men kan inte enumerera containrar inom lagringskontot.
Du kan inte ändra den anonyma åtkomstnivån för en enskild blob. Sätt den anonyma åtkomstnivån endast på containernivå. Du kan ange containerns anonyma åtkomstnivå när du skapar containern, eller så kan du uppdatera inställningen för en befintlig container.
Följ dessa steg för att uppdatera den anonyma åtkomstnivån för en eller flera befintliga containrar i Azure Portal:
Gå till din lagringskontoöversikt i Azure-portalen.
Under Datalagring på menybladet väljer du Containrar.
Välj de containrar som du vill ange den anonyma åtkomstnivån för.
Välj Ändra åtkomstnivå för att öppna inställningarna för anonym åtkomst.
Välj önskad anonym åtkomstnivå från rullgardinsmenyn Anonym åtkomstnivå och välj OK för att tillämpa ändringen på de valda containrarna.
För att verifiera ändringen, öppna åtkomstnivån för ändring igen och bekräfta att nivån Anonym åtkomst visar ditt valda värde.
När anonym åtkomst inte tillåts för lagringskontot kan du inte ställa in en containers anonyma åtkomstnivå. Om du försöker ange containerns anonyma åtkomstnivå inaktiveras inställningen eftersom anonym åtkomst inte tillåts för kontot.
Kontrollera inställningen för anonym åtkomst för en uppsättning containrar
Du kan kontrollera vilka containrar i ett eller flera lagringskonton som är konfigurerade för anonym åtkomst genom att lista containrarna och markera inställningen för anonym åtkomst. Den här metoden är ett praktiskt alternativ när ett lagringskonto inte innehåller ett stort antal containrar eller när du kontrollerar inställningen för ett litet antal lagringskonton. Prestandan kan dock försämras om du försöker räkna upp ett stort antal behållare.
I följande exempel används PowerShell för att hämta inställningen för anonym åtkomst för alla containrar i ett lagringskonto. Kom ihåg att ersätta platshållarvärdena inom hakparenteser med dina egna värden:
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context
Get-AzStorageContainer -Context $ctx | Select Name, PublicAccess
Funktionalitetssupport
Stöd för den här funktionen kan påverkas genom att aktivera Data Lake Storage Gen2, NFS 3.0-protokoll (Network File System) eller SSH File Transfer Protocol (SFTP). Om du har aktiverat någon av dessa funktioner kan du läsa Stöd för Blob Storage-funktioner i Azure Storage-konton för att utvärdera stödet för den här funktionen.