Konfigurera anonym läsåtkomst för containrar och blobar
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.
Varning
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 rekommenderar vi att du åtgärdar 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 någon av följande artiklar:
- Åtgärda anonym läsåtkomst till blobdata (Azure Resource Manager-distributioner)
- Åtgärda anonym läsåtkomst till blobdata (klassiska distributioner)
Om anonym läsåtkomst
Anonym åtkomst till dina data är alltid förbjuden som standard. Det finns två separata inställningar som 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 konfigurerats för en specifik container, godkänns en begäran om att läsa en blob i containern som skickas utan ett Authorization
huvud av tjänsten, och blobens data returneras i svaret. Men om begäran skickas med ett Authorization
huvud ignoreras anonym åtkomst på lagringskontot och begäran auktoriseras baserat på de angivna autentiseringsuppgifterna.
Tillåt eller neka anonym läsåtkomst för ett lagringskonto
När anonym åtkomst tillåts för ett lagringskonto kan en användare med rätt behörighet ändra en containers inställning för anonym åtkomst för att aktivera anonym åtkomst till data i containern. Blobdata är aldrig tillgängliga för anonym åtkomst om inte användaren tar det ytterligare steget för att uttryckligen konfigurera containerns inställning för anonym åtkomst.
Tänk på att anonym åtkomst till en container alltid är inaktiverad som standard och måste konfigureras uttryckligen för att tillåta anonyma begäranden. Oavsett inställningen för lagringskontot blir dina data aldrig tillgängliga för anonym åtkomst om inte en användare med rätt behörighet tar det här ytterligare steget för att aktivera anonym åtkomst i 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 anonym åtkomst inte tillåts för kontot går det inte att konfigurera åtkomstinställningen för en container för att tillåta anonym åtkomst, och eventuella framtida anonyma begäranden till kontot misslyckas. Innan du ändrar den här inställningen måste du förstå effekten på klientprogram som kan komma åt data i ditt lagringskonto anonymt. Mer information finns i Förhindra anonym läsåtkomst till containrar och blobar.
Viktigt!
När anonym åtkomst inte tillåts för ett lagringskonto upptäcker klienter som använder den anonyma ägarutmaningen att Azure Storage returnerar ett 403-fel (förbjudet) i stället för ett 401-fel (obehörig). Vi rekommenderar att du gör alla containrar privata för att åtgärda det här 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
Om du vill ange egenskapen AllowBlobAnonymousAccess för lagringskontot måste en användare ha behörighet 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 är:
- Azure Resource Manager rollen Ägare
- Azure Resource Manager rollen Deltagare
- Rollen Lagringskontodeltagare
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.
Var noga med att begränsa tilldelningen av dessa roller endast till de administrativa användare som behöver möjligheten att skapa ett lagringskonto eller uppdatera dess egenskaper. Använd principen om minsta behörighet för att se till att användarna har minst behörighet 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. Med den här behörigheten kan en användare använda kontoåtkomstnycklarna för att komma åt alla data i ett lagringskonto.
Själva åtgärden Microsoft.Storage/storageAccounts/listkeys/action ger dataåtkomst via kontonycklarna, men ger inte en användare möjlighet att ändra egenskapen AllowBlobPublicAccess 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.
Kommentar
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 . Den här egenskapen är tillgänglig för alla lagringskonton som skapas 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-portalen:
Navigera till ditt lagringskonto i Azure-portalen.
Leta upp konfigurationsinställningen under Inställningar.
Ange Tillåt anonym blobåtkomst till Aktiverad eller Inaktiverad.
Kommentar
Att neka anonym åtkomst för ett lagringskonto påverkar inte några statiska webbplatser som finns i lagringskontot. Den $web containern är alltid offentligt tillgänglig.
När du har 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. Brandväggsregler som har konfigurerats för lagringskontot gäller dock fortfarande och blockerar trafik infogad med de konfigurerade ACL:erna.
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.
Exemplen i det här avsnittet visade hur du läser egenskapen AllowBlobPublicAccess för lagringskontot för att avgöra om anonym åtkomst för närvarande tillåts eller inte tillåts. 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å. Om anonym åtkomst nekas för lagringskontot kan du inte konfigurera anonym åtkomst för en container.
Varning
Microsoft rekommenderar att du inte tillåter anonym åtkomst till blobdata i ditt lagringskonto.
När anonym åtkomst tillåts för ett lagringskonto kan du konfigurera en container med följande behörigheter:
- Ingen offentlig läsåtkomst: Containern och dess blobar kan endast nås med en auktoriserad begäran. Det här alternativet är standard för alla nya containrar.
- Endast offentlig läsåtkomst för blobar: Blobar i containern kan läsas av anonym begäran, men containerdata är inte tillgängliga anonymt. Anonyma klienter kan inte räkna upp blobarna i containern.
- Offentlig läsåtkomst för container och dess blobar: Container- och blobdata kan läsas av anonym begäran, förutom inställningar för containerbehörighet och containermetadata. Klienter kan räkna upp blobar i containern genom anonym begäran, men kan inte räkna upp containrar i lagringskontot.
Du kan inte ändra den anonyma åtkomstnivån för en enskild blob. Anonym åtkomstnivå anges 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-portalen:
Gå till översikten över ditt lagringskonto 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.
Använd knappen Ändra åtkomstnivå för att visa inställningarna för anonym åtkomst.
Välj önskad anonym åtkomstnivå i listrutan Anonym åtkomstnivå och välj knappen OK för att tillämpa ändringen på de valda containrarna.
När anonym åtkomst inte tillåts för lagringskontot går det inte att ange 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
Det är möjligt att kontrollera vilka containrar i ett eller flera lagringskonton som har konfigurerats för anonym åtkomst genom att visa containrar och kontrollera 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. Prestanda kan dock bli lidande om du försöker räkna upp ett stort antal containrar.
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
Funktionsstöd
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.