Förhindra auktorisering av delad nyckel för Azure Storage-konton
Varje säker begäran till ett Azure Storage-konto måste vara auktoriserad. Som standard kan begäranden auktoriseras med antingen Microsoft Entra-autentiseringsuppgifter eller med hjälp av kontoåtkomstnyckeln för auktorisering av delad nyckel. Av dessa två typer av auktorisering ger Microsoft Entra ID överlägsen säkerhet och användarvänlighet över delad nyckel och rekommenderas av Microsoft. Om du vill kräva att klienter använder Microsoft Entra-ID för att auktorisera begäranden kan du inte tillåta begäranden till det lagringskonto som är auktoriserat med delad nyckel.
När du inte tillåter auktorisering av delad nyckel för ett lagringskonto avvisar Azure Storage alla efterföljande begäranden till kontot som är auktoriserade med kontoåtkomstnycklarna. Endast skyddade begäranden som är auktoriserade med Microsoft Entra-ID kommer att lyckas. Mer information om hur du använder Microsoft Entra-ID finns i Auktorisera åtkomst till data i Azure Storage.
Egenskapen AllowSharedKeyAccess för ett lagringskonto anges inte som standard och returnerar inte ett värde förrän du uttryckligen har angett det. Lagringskontot tillåter begäranden som är auktoriserade med delad nyckel när egenskapsvärdet är null eller när det är sant.
Den här artikeln beskriver hur du använder ett DRAG-ramverk (Detection-Remediation-Audit-Governance) för att kontinuerligt hantera auktorisering av delad nyckel för ditt lagringskonto.
Förutsättningar
Innan du inte tillåter åtkomst till delad nyckel på något av dina lagringskonton:
- Förstå hur nekande av delad nyckel påverkar SAS-token
- Överväg kompatibilitet med andra Azure-verktyg och -tjänster
- Överväg behovet av att inte tillåta auktorisering av delad nyckel för att använda villkorsstyrd åtkomst i Microsoft Entra
- Auktorisera åtkomst till fildata eller överföra Azure Files-arbetsbelastningar
Förstå hur nekande av delad nyckel påverkar SAS-token
När åtkomst med delad nyckel inte tillåts för lagringskontot hanterar Azure Storage SAS-token baserat på typen av SAS och den tjänst som begäran riktar sig mot. Följande tabell visar hur varje typ av SAS är auktoriserad och hur Azure Storage hanterar den SAS när egenskapen AllowSharedKeyAccess för lagringskontot är falskt.
Typ av SAS | Typ av auktorisering | Beteende när AllowSharedKeyAccess är falskt |
---|---|---|
SAS för användardelegering (endast bloblagring) | Microsoft Entra ID | Begäran är tillåten. Microsoft rekommenderar att du använder en SAS för användardelegering när det är möjligt för överlägsen säkerhet. |
Tjänst-SAS | Delad nyckel | Begäran nekas för alla Azure Storage-tjänster. |
Konto-SAS | Delad nyckel | Begäran nekas för alla Azure Storage-tjänster. |
Azure-mått och loggning i Azure Monitor skiljer inte mellan olika typer av signaturer för delad åtkomst. SAS-filtret i Azure Metrics Explorer och SAS-fältet i Azure Storage-loggning i Azure Monitor båda rapportbegäranden som är auktoriserade med någon typ av SAS. Olika typer av signaturer för delad åtkomst är dock auktoriserade på olika sätt och fungerar annorlunda när åtkomst med delad nyckel inte tillåts:
- En SAS-tjänsttoken eller en SAS-kontotoken har auktoriserats med delad nyckel och tillåts inte vid en begäran till Blob Storage när egenskapen AllowSharedKeyAccess är inställd på false.
- En SAS för användardelegering är auktoriserad med Microsoft Entra-ID och kommer att tillåtas vid en begäran till Blob Storage när egenskapen AllowSharedKeyAccess är inställd på false.
När du utvärderar trafik till ditt lagringskonto bör du tänka på att mått och loggar enligt beskrivningen i Identifiera vilken typ av auktorisering som används av klientprogram kan innehålla begäranden som görs med en SAS för användardelegering.
Mer information om signaturer för delad åtkomst finns i Bevilja begränsad åtkomst till Azure Storage-resurser med hjälp av signaturer för delad åtkomst (SAS).
Överväg kompatibilitet med andra Azure-verktyg och -tjänster
Ett antal Azure-tjänster använder auktorisering med delad nyckel för att kommunicera med Azure Storage. Om du inte tillåter auktorisering av delad nyckel för ett lagringskonto kommer dessa tjänster inte att kunna komma åt data i det kontot och dina program kan påverkas negativt.
Vissa Azure-verktyg erbjuder alternativet att använda Microsoft Entra-auktorisering för att få åtkomst till Azure Storage. I följande tabell visas några populära Azure-verktyg och anteckningar om de kan använda Microsoft Entra-ID för att auktorisera begäranden till Azure Storage.
Azure-verktyg | Microsoft Entra-auktorisering till Azure Storage |
---|---|
Azure Portal | Stöds. Information om hur du auktoriserar med ditt Microsoft Entra-konto från Azure Portal finns i Välj hur du auktoriserar åtkomst till blobdata i Azure Portal. |
AzCopy | Stöds för Blob Storage. Information om hur du auktoriserar AzCopy-åtgärder finns i Välj hur du ska ange autentiseringsuppgifter för auktorisering i AzCopy-dokumentationen. |
Azure Storage Explorer | Stöds för Blob Storage, Queue Storage, Table Storage och Azure Data Lake Storage. Microsoft Entra ID-åtkomst till Fillagring stöds inte. Se till att välja rätt Microsoft Entra-klientorganisation. Mer information finns i Kom igång med Storage Explorer |
Azure PowerShell | Stöds. Information om hur du auktoriserar PowerShell-kommandon för blob- eller köåtgärder med Microsoft Entra-ID finns i Köra PowerShell-kommandon med Microsoft Entra-autentiseringsuppgifter för åtkomst till blobdata eller Kör PowerShell-kommandon med Microsoft Entra-autentiseringsuppgifter för åtkomst till ködata. |
Azure CLI | Stöds. Information om hur du auktoriserar Azure CLI-kommandon med Microsoft Entra-ID för åtkomst till blob- och ködata finns i Köra Azure CLI-kommandon med Microsoft Entra-autentiseringsuppgifter för åtkomst till blob- eller ködata. |
Azure IoT Hub | Stöds. Mer information finns i IoT Hub-stöd för virtuella nätverk. |
Azure Cloud Shell | Azure Cloud Shell är ett integrerat gränssnitt i Azure Portal. Azure Cloud Shell är värd för filer för beständighet i en Azure-filresurs i ett lagringskonto. Dessa filer blir otillgängliga om auktorisering av delad nyckel inte tillåts för det lagringskontot. Mer information finns i Spara filer i Azure Cloud Shell. Om du vill köra kommandon i Azure Cloud Shell för att hantera lagringskonton för vilka åtkomst med delad nyckel inte tillåts kontrollerar du först att du har beviljats de behörigheter som krävs för dessa konton via Azure RBAC. Mer information finns i Vad är rollbaserad åtkomstkontroll i Azure (Azure RBAC)?. |
Tillåt inte auktorisering av delad nyckel för användning av villkorsstyrd åtkomst i Microsoft Entra
För att skydda ett Azure Storage-konto med principer för villkorsstyrd åtkomst i Microsoft Entra måste du inte tillåta auktorisering av delad nyckel för lagringskontot.
Auktorisera åtkomst till fildata eller överföra Azure Files-arbetsbelastningar
Azure Storage stöder Microsoft Entra-auktorisering för begäranden till Azure Files, Blob Storage, Queue Storage och Table Storage. Men som standard använder Azure Portal behörighet för delad nyckel för att få åtkomst till Azure-filresurser. Om du inte tillåter auktorisering av delad nyckel för ett lagringskonto som inte har konfigurerats med rätt RBAC-tilldelningar misslyckas begäranden till Azure Files och du kommer inte att kunna komma åt Azure-filresurser i Azure Portal.
För att minimera detta rekommenderar vi att du använder någon av tre metoder:
- Följ dessa steg för att auktorisera åtkomst till fildata med ditt Microsoft Entra-konto, eller
- Migrera Azure Files-data till ett separat lagringskonto innan du inte tillåter åtkomst till ett konto via delad nyckel, eller
- Använd inte den här inställningen på lagringskonton som stöder Azure Files-arbetsbelastningar.
Identifiera lagringskonton som tillåter åtkomst till delad nyckel
Det finns två sätt att identifiera lagringskonton som tillåter åtkomst till delad nyckel:
- Kontrollera åtkomstinställningen för delad nyckel för flera konton
- Konfigurera Azure Policy för åtkomst till delad nyckel i granskningsläge
Kontrollera åtkomstinställningen för delad nyckel för flera konton
Om du vill kontrollera åtkomstinställningen delad nyckel för en uppsättning lagringskonton med optimala prestanda kan du använda Azure Resource Graph Explorer i Azure Portal. Mer information om hur du använder Resource Graph Explorer finns i Snabbstart: Kör din första Resource Graph-fråga med Azure Resource Graph Explorer.
När du kör följande fråga i Resource Graph Explorer returneras en lista över lagringskonton och inställningen Åtkomst till delad nyckel visas för varje konto:
resources
| where type =~ 'Microsoft.Storage/storageAccounts'
| extend allowSharedKeyAccess = parse_json(properties).allowSharedKeyAccess
| project subscriptionId, resourceGroup, name, allowSharedKeyAccess
Konfigurera Azure Policy för åtkomst till delad nyckel i granskningsläge
Azure Policy Storage-konton bör förhindra åtkomst med delad nyckel hindrar användare med lämpliga behörigheter från att konfigurera nya eller befintliga lagringskonton för att tillåta auktorisering av delad nyckel. Konfigurera den här principen i granskningsläge för att identifiera lagringskonton där auktorisering av delad nyckel tillåts. När du har ändrat program för att använda Microsoft Entra i stället för delad nyckel för auktorisering kan du uppdatera principen för att förhindra att åtkomst till delad nyckel tillåts.
Mer information om den inbyggda principen finns i Lagringskonton bör förhindra åtkomst till delad nyckel i Lista över inbyggda principdefinitioner.
Tilldela den inbyggda principen för ett resursomfång
Följ dessa steg för att tilldela den inbyggda principen för lämpligt omfång i Azure Portal:
I Azure Portal söker du efter Princip för att visa Instrumentpanelen för Azure Policy.
I avsnittet Redigering väljer du Tilldelningar.
Välj Tilldela princip.
På fliken Grundinställningar på sidan Tilldela princip anger du omfånget för principtilldelningen i avsnittet Omfång . Välj knappen Mer (...) för att välja prenumeration och valfri resursgrupp.
I fältet Principdefinition väljer du knappen Mer (...) och anger åtkomst till delad nyckel i fältet Sök . Välj principdefinitionen med namnet Lagringskonton bör förhindra åtkomst till delad nyckel.
Välj Granska + skapa.
På fliken Granska + skapa granskar du principtilldelningen och väljer sedan Skapa för att tilldela principdefinitionen till det angivna omfånget.
Övervaka efterlevnaden av principen
Följ dessa steg för att övervaka dina lagringskonton för efterlevnad av åtkomstprincipen för delad nyckel:
På Azure Policy-instrumentpanelen under Redigering väljer du Tilldelningar.
Leta upp och välj den principtilldelning som du skapade i föregående avsnitt.
Välj fliken Visa efterlevnad .
Alla lagringskonton inom omfånget för principtilldelningen som inte uppfyller principkraven visas i efterlevnadsrapporten.
Om du vill ha mer information om varför ett lagringskonto inte är kompatibelt väljer du Information under Efterlevnadsorsak.
Identifiera vilken typ av auktorisering som används av klientprogram
Om du vill förstå hur nekande av auktorisering av delad nyckel kan påverka klientprogram innan du gör den här ändringen aktiverar du loggning och mått för lagringskontot. Du kan sedan analysera mönster för begäranden till ditt konto under en viss tidsperiod för att avgöra hur begäranden auktoriseras.
Använd mått för att avgöra hur många begäranden lagringskontot tar emot som är auktoriserade med delad nyckel eller en signatur för delad åtkomst (SAS). Använd loggar för att avgöra vilka klienter som skickar dessa begäranden.
En SAS kan auktoriseras med antingen delad nyckel eller Microsoft Entra-ID. Mer information om hur du tolkar begäranden som görs med en signatur för delad åtkomst finns i Förstå hur nekande av delad nyckel påverkar SAS-token.
Fastställa antalet och frekvensen för begäranden som har auktoriserats med delad nyckel
Om du vill spåra hur begäranden till ett lagringskonto auktoriseras använder du Azure Metrics Explorer i Azure Portal. Mer information om Metrics Explorer finns i Analysera mått med Azure Monitor Metrics Explorer.
Följ dessa steg för att skapa ett mått som spårar begäranden som görs med delad nyckel eller SAS:
Navigera till ditt lagringskonto i Azure-portalen. Under avsnittet Övervakning väljer du Mått.
Den nya måttrutan ska visas:
Om den inte gör det väljer du Lägg till mått.
I dialogrutan Mått anger du följande värden:
- Lämna fältet Omfång inställt på namnet på lagringskontot.
- Ange måttnamnområdet till Konto. Det här måttet rapporterar om alla begäranden mot lagringskontot.
- Ange fältet Mått till Transaktioner.
- Ange aggregeringsfältet till Summa.
Det nya måttet visar summan av antalet transaktioner mot lagringskontot under ett visst tidsintervall. Det resulterande måttet visas enligt följande bild:
Välj sedan knappen Lägg till filter för att skapa ett filter för måttet för typ av auktorisering.
I dialogrutan Filter anger du följande värden:
- Ange egenskapsvärdet till Autentisering.
- Ange fältet Operator till likhetstecknet (=).
- I fältet Värden väljer du Kontonyckel och SAS.
I det övre högra hörnet väljer du det tidsintervall som du vill visa måttet för. Du kan också ange hur detaljerad aggregeringen av begäranden ska vara genom att ange intervall var som helst från 1 minut till 1 månad. Ange till exempel tidsintervallet till 30 dagar och tidskornigheten till 1 dag för att se begäranden aggregerade per dag under de senaste 30 dagarna.
När du har konfigurerat måttet börjar begäranden till ditt lagringskonto att visas i diagrammet. Följande bild visar begäranden som har auktoriserats med delad nyckel eller gjorts med en SAS-token. Begäranden aggregeras per dag under de senaste trettio dagarna.
Du kan också konfigurera en aviseringsregel för att meddela dig när ett visst antal begäranden som är auktoriserade med delad nyckel görs mot ditt lagringskonto. Mer information finns i Skapa, visa och hantera måttaviseringar med Azure Monitor.
Analysera loggar för att identifiera klienter som auktoriserar begäranden med delad nyckel eller SAS
Azure Storage-loggar samlar in information om begäranden som gjorts mot lagringskontot, inklusive hur en begäran har auktoriserats. Du kan analysera loggarna för att avgöra vilka klienter som auktoriserar begäranden med delad nyckel eller en SAS-token.
Om du vill logga begäranden till ditt Azure Storage-konto för att utvärdera hur de är auktoriserade kan du använda Azure Storage-loggning i Azure Monitor. Mer information finns i Övervaka Azure Storage.
Azure Storage-loggning i Azure Monitor stöder användning av loggfrågor för att analysera loggdata. Om du vill köra frågor mot loggar kan du använda en Azure Log Analytics-arbetsyta. Mer information om loggfrågor finns i Självstudie: Kom igång med Log Analytics-frågor.
Skapa en diagnostikinställning i Azure Portal
Om du vill logga Azure Storage-data med Azure Monitor och analysera dem med Azure Log Analytics måste du först skapa en diagnostikinställning som anger vilka typer av begäranden och för vilka lagringstjänster du vill logga data för. När du har konfigurerat loggning för ditt lagringskonto är loggarna tillgängliga på Log Analytics-arbetsytan. Information om hur du skapar en arbetsyta finns i Skapa en Log Analytics-arbetsyta i Azure Portal.
Information om hur du skapar en diagnostikinställning i Azure Portal finns i Skapa diagnostikinställningar i Azure Monitor.
En referens för fält som är tillgängliga i Azure Storage-loggar i Azure Monitor finns i Resursloggar.
Frågeloggar för begäranden som görs med delad nyckel eller SAS
Azure Storage-loggar i Azure Monitor innehåller den typ av auktorisering som användes för att göra en begäran till ett lagringskonto. Om du vill hämta loggar för begäranden som gjorts under de senaste sju dagarna som har auktoriserats med delad nyckel eller SAS öppnar du Log Analytics-arbetsytan. Klistra sedan in följande fråga i en ny loggfråga och kör den. Den här frågan visar de tio IP-adresser som oftast skickade begäranden som har auktoriserats med delad nyckel eller SAS:
StorageBlobLogs
| where AuthenticationType in ("AccountKey", "SAS") and TimeGenerated > ago(7d)
| summarize count() by CallerIpAddress, UserAgentHeader, AccountName
| top 10 by count_ desc
Du kan också konfigurera en aviseringsregel baserat på den här frågan för att meddela dig om begäranden som har auktoriserats med delad nyckel eller SAS. Mer information finns i Skapa, visa och hantera loggaviseringar med Hjälp av Azure Monitor.
Åtgärda auktorisering via delad nyckel
När du har analyserat hur begäranden till ditt lagringskonto auktoriseras kan du vidta åtgärder för att förhindra åtkomst via delad nyckel. Men först måste du uppdatera alla program som använder auktorisering av delad nyckel för att använda Microsoft Entra-ID i stället. Du kan övervaka loggar och mått enligt beskrivningen i Identifiera vilken typ av auktorisering som används av klientprogram för att spåra övergången. Mer information om hur du använder Microsoft Entra-ID för att komma åt data i ett lagringskonto finns i Auktorisera åtkomst till data i Azure Storage.
När du är säker på att du på ett säkert sätt kan avvisa begäranden som är auktoriserade med delad nyckel kan du ange egenskapen AllowSharedKeyAccess för lagringskontot till false.
Varning
Om några klienter för närvarande har åtkomst till data i ditt lagringskonto med delad nyckel rekommenderar Microsoft att du migrerar dessa klienter till Microsoft Entra-ID innan du inte tillåter åtkomst till den delade nyckeln till lagringskontot.
Behörigheter för att tillåta eller neka åtkomst till delad nyckel
Om du vill ange egenskapen AllowSharedKeyAccess 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 eller Microsoft.Storage/storageAccounts/* . Inbyggda roller med den här åtgärden är:
- Azure Resource Manager rollen Ägare
- Azure Resource Manager rollen Deltagare
- Rollen Lagringskontodeltagare
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.
Rolltilldelningar måste begränsas till lagringskontots nivå eller högre för att tillåta en användare att tillåta eller neka åtkomst till delad nyckel 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 dem 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.
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 och hantera lagringskonton. Mer information finns i Azure-roller , Microsoft Entra-roller och klassiska prenumerationsadministratörsroller.
Inaktivera auktorisering av delad nyckel
Med hjälp av ett konto som har nödvändiga behörigheter inaktiverar du auktorisering av delad nyckel i Azure Portal, med PowerShell eller med hjälp av Azure CLI.
Följ dessa steg om du inte vill tillåta auktorisering av delad nyckel för ett lagringskonto i Azure Portal:
När du inte tillåter auktorisering av delad nyckel misslyckas en begäran till lagringskontot med auktorisering av delad nyckel med felkoden 403 (förbjuden). Azure Storage returnerar ett fel som anger att nyckelbaserad auktorisering inte tillåts för lagringskontot.
Egenskapen AllowSharedKeyAccess stöds för lagringskonton som endast använder Azure Resource Manager-distributionsmodellen. Information om vilka lagringskonton som använder Azure Resource Manager-distributionsmodellen finns i Typer av lagringskonton.
Kontrollera att åtkomst till delad nyckel inte är tillåten
Om du vill kontrollera att auktorisering av delad nyckel inte längre är tillåten kan du köra frågor mot inställningarna för Azure Storage-kontot med följande kommando. Ersätt platshållarvärdena inom hakparenteser med dina egna värden.
az storage account show \
--name <storage-account-name> \
--resource-group <resource-group-name> \
--query "allowSharedKeyAccess"
Kommandot returnerar false om auktorisering av delad nyckel inte tillåts för lagringskontot.
Kommentar
Anonyma begäranden är inte auktoriserade och fortsätter om du har konfigurerat lagringskontot och containern för anonym läsåtkomst. Mer information finns i Konfigurera anonym läsåtkomst för containrar och blobar.
Övervaka Azure Policy för efterlevnad
När du har nekat åtkomst till delad nyckel på önskade lagringskonton fortsätter du att övervaka principen som du skapade tidigare för kontinuerlig efterlevnad. Baserat på övervakningsresultaten vidtar du lämpliga åtgärder efter behov, inklusive att ändra omfånget för principen, neka åtkomst till delad nyckel på fler konton eller tillåta den för konton där mer tid krävs för reparation.
Uppdatera Azure Policy för att förhindra att åtkomst till delad nyckel tillåts
Om du vill börja tillämpa Azure Policy-tilldelningen som du tidigare skapade för principlagringskonton bör du förhindra åtkomst till delad nyckel genom att ändra effekten av principtilldelningen till Neka för att förhindra att behöriga användare tillåter åtkomst till delad nyckel på lagringskonton. Utför följande steg för att ändra effekten av principen:
Leta upp och välj den principtilldelning som du skapade tidigare på Instrumentpanelen för Azure Policy.
Välj Redigera tilldelning.
Gå till fliken Parametrar .
Avmarkera kryssrutan Visa endast parametrar som behöver indata eller granskning .
I listrutan Effekt ändrar du Granska till Neka och väljer sedan Granska + spara.
På fliken Granska + spara granskar du ändringarna och väljer sedan Spara.
Kommentar
Det kan ta upp till 30 minuter innan principändringen börjar gälla.