Välj och konfigurera en lämplig metod för åtkomst till Azure-tabeller

Fullbordad

Azure Storage stöder användning av Microsoft Entra-ID för att auktorisera begäranden till tabelldata. Med Microsoft Entra-ID kan du använda rollbaserad åtkomstkontroll i Azure (Azure RBAC) för att bevilja behörigheter till ett säkerhetsobjekt, som kan vara en användare, grupp eller programtjänsthuvudnamn. Säkerhetsprincipen autentiseras av Microsoft Entra ID för att returnera en OAuth 2.0-token. Token kan sedan användas för att auktorisera en begäran mot Tabelltjänsten.

Auktorisering av begäranden mot Azure Storage med Microsoft Entra-ID ger överlägsen säkerhet och enkel användning via auktorisering av delad nyckel. Microsoft rekommenderar att du använder Microsoft Entra-auktorisering med dina tabellprogram när det är möjligt för att säkerställa åtkomst med minsta möjliga behörighet. För program som körs i Azure använder du hanterade identiteter för att eliminera behovet av att lagra autentiseringsuppgifter i koden.

Auktorisering med Microsoft Entra-ID är tillgängligt för alla allmänna användningsområden i alla offentliga regioner och nationella moln. Endast lagringskonton som skapats med Azure Resource Manager-distributionsmodellen stöder Microsoft Entra-auktorisering.

Översikt över Microsoft Entra-ID för tabeller

När ett säkerhetsobjekt (en användare, grupp eller ett program) försöker komma åt en tabellresurs måste begäran auktoriseras. Med Microsoft Entra-ID är åtkomst till en resurs en tvåstegsprocess. Först autentiseras säkerhetsprincipalens identitet och en "OAuth 2.0-token" returneras. Därefter skickas token som en del av en begäran till tabelltjänsten och används av tjänsten för att auktorisera åtkomst till den angivna resursen.

Autentiseringssteget kräver att ett program begär en OAuth 2.0-åtkomsttoken vid körning. Om ett program körs inifrån en Azure-entitet, till exempel en virtuell Azure-dator, en VM-skalningsuppsättning eller en Azure Functions-app, kan den använda en hanterad identitet för att komma åt tabeller. Att använda hanterade identiteter är den rekommenderade metoden eftersom det eliminerar behovet av att hantera autentiseringsuppgifter i programkoden.

Auktoriseringssteget kräver att en eller flera Azure-roller tilldelas säkerhetsobjektet. Azure Storage tillhandahåller Azure-roller som omfattar vanliga uppsättningar med behörigheter för tabelldata. De roller som har tilldelats ett säkerhetsobjekt avgör vilka behörigheter som huvudkontot ska ha.

Följande tabell pekar på ytterligare information för att auktorisera åtkomst till data i olika scenarier:

Språk .NÄT Java JavaScript Python Gå!
Översikt över autentisering med Microsoft Entra-ID Autentisera .NET-program med Azure-tjänster Azure-autentisering med Java och Azure Identity Autentisera JavaScript-appar till Azure med hjälp av Azure SDK- Autentisera Python-appar till Azure med hjälp av Azure SDK- Inte tillgänglig
Autentisering med utvecklartjänstprincipaler Autentisera .NET-appar till Azure-tjänster under lokal utveckling med hjälp av tjänstens huvudnamn Azure-autentisering med tjänstens huvudnamn Autentisera JavaScript-appar till Azure-tjänster med en tjänstehuvudnamn Autentisera Python-appar till Azure-tjänster under lokal utveckling med hjälp av tjänstens huvudnamn Azure SDK för Go-autentisering med tjänstens huvudnamn
Autentisering med hjälp av utvecklar- eller användarkonton Autentisera .NET-appar till Azure-tjänster under lokal utveckling med hjälp av utvecklarkonton Azure-autentisering med användarautentiseringsuppgifter Autentisera JavaScript-appar till Azure-tjänster med utvecklingskonton Autentisera Python-appar till Azure-tjänster under lokal utveckling med hjälp av utvecklarkonton Azure-autentisering med Azure SDK för Go
Autentisering från appar värd på Azure Autentisera Azure-värdbaserade appar mot Azure-resurser med Azure SDK för .NET autentisera Azure-hostade Java-program autentisera Azure-värdbaserade JavaScript-appar mot Azure-resurser med Azure SDK för JavaScript Autentisera appar som körs på Azure mot Azure-resurser med Azure SDK för Python -autentisering med Azure SDK för Go med hjälp av en hanterad identitet
Autentisering från lokala appar Autentisera till Azure-resurser från .NET-appar som finns lokalt Inte tillgänglig Autentisera lokala JavaScript-appar till Azure-resurser Autentisera till Azure-resurser från Python-appar som finns lokalt Inte tillgänglig
Översikt över identitetsklientbibliotek Azure Identity-klientbiblioteket för .NET Azure Identity-klientbibliotek för Java Azure Identity-klientbibliotek för JavaScript Azure Identity-klientbibliotek för Python Azure Identity-klientbiblioteket för Go

Tilldela Azure-roller för åtkomsträttigheter

Microsoft Entra auktoriserar åtkomsträttigheter till skyddade resurser via rollbaserad åtkomstkontroll i Azure (Azure RBAC). Azure Storage definierar en uppsättning inbyggda Azure-roller som omfattar vanliga uppsättningar med behörigheter som används för att komma åt tabelldata. Du kan också definiera anpassade roller för åtkomst till tabelldata.

När en Azure-roll tilldelas ett Microsoft Entra-säkerhetsobjekt ger Azure åtkomst till dessa resurser för det säkerhetsobjektet. Ett Microsoft Entra-säkerhetsobjekt kan vara en användare, en grupp, ett huvudnamn för programtjänsten eller en hanterad identitet för Azure-resurser.

Resursomfång

Innan du tilldelar en Azure RBAC-roll till ett säkerhetsobjekt ska du bestämma vilken omfattning av åtkomst som säkerhetsobjektet ska ha. Bevilja alltid endast det minsta möjliga omfång som krävs för att säkerhetsprincipalen ska kunna utföra sina uppgifter. Detta följer principen om minsta behörighet och minimerar säkerhetsrisker. Azure RBAC-roller som definierats i en bredare omfattning ärvs av underliggande resurser.

Du kan begränsa åtkomsten till Azure-tabellresurser på följande nivåer och börja med det smalaste (mest restriktiva) omfånget:

  • En enskild tabell. I det här omfånget gäller en rolltilldelning endast för den angivna tabellen.
  • Lagringskontot. I det här omfånget gäller en rolltilldelning för alla tabeller i kontot.
  • Resursgruppen. I det här omfånget gäller en rolltilldelning för alla tabeller i alla lagringskonton i resursgruppen.
  • Prenumerationen. I det här omfånget gäller en rolltilldelning för alla tabeller i alla lagringskonton i alla resursgrupper i prenumerationen.
  • En hanteringsgrupp. I det här omfånget gäller en rolltilldelning för alla tabeller i alla lagringskonton i alla resursgrupper i alla prenumerationer i hanteringsgruppen.

Mer information om omfånget för Azure RBAC-rolltilldelningar finns i Förstå omfånget för Azure RBAC.

Inbyggda Azure-roller för tabeller

Azure RBAC tillhandahåller inbyggda roller för att auktorisera åtkomst till tabelldata med hjälp av Microsoft Entra ID och OAuth. Inbyggda roller som ger behörighet till tabeller i Azure Storage är:

  • Storage Table Data Contributor: Beviljar rättigheter att läsa, skriva och ta bort till tabelldatalagringsresurser. Använd den här rollen för program eller användare som behöver skapa, ändra eller ta bort tabellentiteter.
  • Dataläsare för lagringstabell: Beviljar skrivskyddade behörigheter till Table Storage-resurser. Använd den här rollen för program eller användare som bara behöver fråga eller hämta tabelldata utan ändringsbehörighet.

Information om hur du tilldelar en inbyggd Azure-roll till ett säkerhetsobjekt finns i Tilldela en Azure-roll för åtkomst till tabelldata. Information om hur du listar Azure RBAC-roller och deras behörigheter finns i Lista Azure-rolldefinitioner.

Mer information om hur inbyggda roller definieras för Azure Storage finns i Förstå rolldefinitioner. Information om hur du skapar anpassade Azure-roller finns i Anpassade Azure-roller.

Endast roller som uttryckligen definierats för dataåtkomst tillåter ett säkerhetsobjekt att komma åt tabelldata. Inbyggda roller som Ägare, Deltagare och Lagringskontodeltagare tillåter ett säkerhetsobjekt att hantera ett lagringskonto, men ger inte åtkomst till tabelldata i det kontot via Microsoft Entra-ID. Men om en roll innehåller Microsoft.Storage/storageAccounts/listKeys/actionkan en användare som rollen har tilldelats komma åt data i lagringskontot via auktorisering av delad nyckel med kontoåtkomstnycklarna.

Anmärkning

Roller som innehåller åtgärden listKeys ger fullständig åtkomst till lagringskontodata via delad nyckel. För att förbättra säkerheten bör du överväga att använda anpassade roller som utesluter den här åtgärden och framtvingar åtkomst endast för Microsoft Entra-ID.

Detaljerad information om inbyggda Azure-roller för Azure Storage för både datatjänster och hanteringstjänsten finns i avsnittet Lagring i inbyggda Azure-roller för Azure RBAC. Information om de olika typer av roller som ger behörigheter i Azure finns dessutom i Azure-roller, Microsoft Entra-roller och klassiska administratörsroller för prenumerationer.

Det kan ta upp till 30 minuter att sprida Azure-rolltilldelningar.

Åtkomstbehörigheter för dataåtgärder

Mer information om de behörigheter som krävs för att anropa specifika table service-åtgärder finns i Behörigheter för att anropa dataåtgärder.

Metodtips för att auktorisera tabellåtkomst

När du implementerar Microsoft Entra ID-auktorisering för Azure Table Storage följer du dessa rekommenderade säkerhetsmetoder:

  • Använd hanterade identiteter: För program som körs i Azure (virtuella datorer, App Service, Azure Functions, Container Instances, AKS) använder du alltid hanterade identiteter i stället för tjänstens huvudnamn med lagrade autentiseringsuppgifter. Detta eliminerar behovet av att hantera och rotera hemligheter.
  • Implementera minsta behörighet: Tilldela den mest restriktiva roll som uppfyller kraven. Använd Storage Table Data Reader för skrivskyddade scenarier i stället för mer tillåtande roller som Storage Table Data Contributor.
  • Omfångstilldelningar på lämpligt sätt: Tillämpa rolltilldelningar på tabellnivå när det är möjligt i stället för på lagringskonto- eller prenumerationsnivå. Detta begränsar åtkomsten till endast de specifika tabeller som användare eller program behöver.
  • Undvik auktorisering av delad nyckel: När du har migrerat till Microsoft Entra-ID-autentisering bör du överväga att inaktivera auktorisering av delad nyckel på lagringskontonivå för att förhindra obehörig åtkomst via kontonycklar.
  • Använd anpassade roller för detaljerad kontroll: Om de inbyggda rollerna inte uppfyller dina specifika krav skapar du anpassade Azure RBAC-roller som endast innehåller nödvändiga behörigheter.
  • Övervaka åtkomst: Aktivera diagnostikloggning och granska regelbundet Azure Monitor-loggar för att spåra vem som har åtkomst till dina tabelldata och identifiera eventuella misstänkta eller obehöriga åtkomstförsök.
  • Tillämpa principer för villkorlig åtkomst: Använd principer för villkorsstyrd åtkomst i Microsoft Entra för att framtvinga ytterligare säkerhetskrav som multifaktorautentisering, enhetsefterlevnadskontroller eller platsbaserade begränsningar.
  • Regelbundna åtkomstgranskningar: Granska och granska rolltilldelningar regelbundet för att säkerställa att användare och program fortfarande kräver sina tilldelade behörigheter.
  • Separat utveckling och produktion: Använd olika lagringskonton och rolltilldelningar för utvecklings- och produktionsmiljöer för att minimera risken för oavsiktlig dataexponering eller ändring.