Dela via


Säkerhetsordlista för Azure Cosmos DB för NoSQL

GÄLLER FÖR: NoSQL

Diagram över den aktuella platsen (

Diagram över sekvensen i distributionsguiden, inklusive dessa platser, i ordning: Översikt, Begrepp, Förbereda, Rollbaserad åtkomstkontroll, Nätverk och Referens. Platsen Begrepp är för närvarande markerad.

Den här artikeln innehåller en ordlista med gemensam terminologi som används i den här säkerhetsguiden för Azure Cosmos DB för NoSQL.

Rollbaserad åtkomstkontroll

Rollbaserad åtkomstkontroll refererar till en metod för att hantera åtkomst till resurser i Azure. Den här metoden baseras på specifika identiteter som tilldelas roller som hanterar vilken åtkomstnivå de har till en eller flera resurser. Rollbaserad åtkomstkontroll ger ett flexibelt system för detaljerad åtkomsthantering som säkerställer att identiteter bara har den minst privilegierade åtkomstnivå som de behöver för att utföra sina uppgifter.

Mer information finns i översikten över rollbaserad åtkomstkontroll.

Identitet/huvudnamn

Identiteter refererar till objekt i Microsoft Entra som representerar en entitet som kan behöva en åtkomstnivå till systemet. I samband med Azure och Microsoft Entra kan identiteter referera till någon av följande typer av entiteter:

beskrivning
Arbetsbelastningsidentiteter En arbetsbelastningsidentitet representerar en programvaruarbetsbelastning som behöver åtkomst till andra tjänster eller resurser
Mänskliga identiteter En mänsklig identitet representerar en användare som antingen kan vara inbyggd i din klientorganisation eller som läggs till som gäst
Hanterade identiteter Hanterade identiteter är distinkta resurser i Azure som representerar identiteten för en Azure-tjänst
Tjänstens huvudnamn Tjänstens huvudnamn är ett tjänstkonto som kan användas i ett flexibelt antal autentiseringsscenarier
Enhetsidentiteter En enhetsidentitet är ett objekt i Microsoft Entra som mappas till en enhet
Grupper Grupper är objekt som används för att hantera åtkomst till en eller flera identiteter som en enda åtgärd

Mer information finns i grunderna för identiteter.

Roll

Roller är de primära enheterna för att framtvinga åtkomst och behörigheter. Du tilldelar en roll till en identitet och definitionen av rollen avgör vilken åtkomstnivå identiteten kan ha. Tilldelningens omfattning avgör exakt vad identiteten har åtkomst till.

Azure har en stor uppsättning inbyggda roller som du kan använda för att ge åtkomst till olika resurser. Ta det här exemplet:

Värde
Roll CosmosBackupOperator
Definition Microsoft.DocumentDB/databaseAccounts/backup/action & Microsoft.DocumentDB/databaseAccounts/restore/action
Definitionsområde En resursgrupp

I det här exemplet tilldelas CosmosBackupOperator du rollen för en specifik resursgrupp. Den här tilldelningen backup ger dig åtkomst till att antingen utföra eller restore åtgärder på ett Azure Cosmos DB-konto i den resursgruppen.

Viktigt!

Vissa Azure-tjänster, till exempel Azure Cosmos DB, har en egen rollbaserad implementering av åtkomstkontroll som använder olika Azure Resource Manager-egenskaper, Azure CLI-kommandon och Azure PowerShell-cmdLetar. De kommandon som du vanligtvis använder för att hantera rollbaserad åtkomstkontroll fungerar inte med åtkomst till Azure Cosmos DB-dataplanet. Vissa av kommandona för rollbaserad åtkomstkontroll i Azure kan fungera med åtkomst till Azure Cosmos DB-kontrollplanet.

Mer information finns i inbyggda Azure-roller

Rolldefinition

En rolldefinition är ett JSON-objekt som innehåller listan över kontrollplans - och dataplansåtgärder som tillåts och inte tillåts. Tänk på det här trunkerade exemplet från den CosmosRestoreOperator inbyggda rollen:

{
  "roleName": "CosmosRestoreOperator",
  "type": "Microsoft.Authorization/roleDefinitions",
  ...
  "permissions": [
    {
      "actions": [
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action",
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read",
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read"
      ],
      "notActions": [],
      "dataActions": [],
      "notDataActions": []
    }
  ],
  ...
}

I den här definitionen kan en identitet som tilldelats den här rollen utföra en restore åtgärd. När återställningen är klar kan identiteten sedan läsa olika resurser för att verifiera att återställningen lyckades. Vi kan fastställa att den kan läsa dessa resurser på grund av operatorn * (jokertecken) för read.

Mer information finns i begrepp för rolldefinitioner.

Rolltilldelning

En rolltilldelning ger en identitet åtkomst till en specifik Azure-resurs. Rolltilldelningar består av följande komponenter:

beskrivning
Rektor Vilken identitet tilldelas den här rollen
Roll Rollen som är tilldelad till identiteten
Definitionsområde Azure-målresursen eller gruppen för tilldelningen
Namn/beskrivning Metadata som gör det enklare att hantera tilldelningar i stor skala

Dricks

I rollbaserad åtkomstkontroll kan termerna identitet och huvudnamn användas mellan varandra.

Mer information finns i begrepp för rolltilldelning.

Åtgärder

Åtgärder definierar vilka specifika behörigheter en roll har för en målresurs. Åtgärder är strängar som vanligtvis innehåller resurstypen och ett beskrivande namn som beskriver vilka behörigheter åtgärden beviljar. Nedan följer några vanliga exempel:

beskrivning Plan
Microsoft.DocumentDB/databaseAccounts/listKeys/action Skrivskyddade kontonycklar Kontrollplan
Microsoft.DocumentDB/databaseAccounts/backup/action Säkerhetskopiera Kontrollplan
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace Ersätt ett befintligt objekt helt Dataplanet
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery Köra en NoSQL-fråga Dataplanet

Åtgärder kan också innehålla * (jokertecken) tecken så att du inte behöver specificera varje specifik underbehörighet manuellt. Här är några exempel på åtgärder med jokertecken:

beskrivning
Microsoft.DocumentDb/databaseAccounts/* Skapa och hantera Azure Cosmos DB-konton
Microsoft.DocumentDB/*/read Läsa en container eller databas

Åtgärder separeras i kontrollplanet och dataplanet. Du måste separat definiera åtgärder för kontrollplansresurser och åtgärder som kan påverka data. I en rolldefinition använder kontrollplansåtgärder egenskapen actions och dataplansåtgärderna finns i egenskapen dataActions . Du kan också definiera åtgärder som en identitet inte kan utföra med respektive notActions egenskaper och notDataActions egenskaper.

Kommentar

Seperationen av åtgärder i kontroll- och dataplanet är en säkerhetsåtgärd för att förhindra att jokerteckenåtgärder från äldre rolldefinitioner har obegränsad och oavsiktlig åtkomst till data.

Mer information finns i kontroll- och dataåtgärder.

Minsta privilegium

Begreppet "lägsta behörighet" avser en metod för driftstips för att säkerställa att alla användare bara har den minimala åtkomstnivå de behöver för att utföra sin uppgift eller sitt jobb. Till exempel skulle ett program som läser data från en databas bara behöva läsåtkomst till datalagret. Om programmet hade läs- och skrivåtkomst till datalagret kan några saker hända, inklusive, men inte begränsat till:

  • Programmet kan felaktigt förstöra data
  • En obehörig användare kan få åtkomst till programmets autentiseringsuppgifter och ändra data

Med minsta möjliga behörighet säkerställer du att eventuella dataintrång begränsas i omfånget. Den här metoden maximerar driftsäkerheten samtidigt som användarna kan förbli effektiva.

Mer information finns i rekommenderad minst privilegierad roll per uppgift.

Kontrollplan

Kontrollplansåtkomst syftar på möjligheten att hantera resurser för en Azure-tjänst utan att hantera data. Azure Cosmos DB-kontrollplansåtkomst kan till exempel omfatta möjligheten att:

  • Läsa alla konto- och resursmetadata
  • Läsa och återskapa kontonycklar och anslutningssträng
  • Utföra kontosäkerhetskopior och återställning
  • Starta och spåra dataöverföringsjobb
  • Hantera databaser och containrar
  • Ändra kontoegenskaper

Viktigt!

I Azure Cosmos DB behöver du kontrollplansaccess för att hantera inbyggda rollbaserade definitioner och tilldelningar för dataplansrollbaserad åtkomstkontroll. Eftersom rollbaserad åtkomstkontrollmekanism för Azure Cosmos DB-dataplanet är inbyggd behöver du åtkomst till kontrollplanet för att skapa definitioner och tilldelningar och lagra dem som resurser i ett Azure Cosmos DB-konto.

Dataplanet

Dataplansåtkomst syftar på möjligheten att läsa och skriva data i en Azure-tjänst utan möjlighet att hantera resurser i kontot. För exmaple kan åtkomst till Azure Cosmos DB-dataplanet omfatta möjligheten att:

  • Läs några konto- och resursmetadata
  • Skapa, läsa, uppdatera, korrigera och ta bort objekt
  • Köra NoSQL-frågor
  • Läsa från en containers ändringsflöde
  • Kör lagrade procedurer
  • Hantera konflikter i konfliktflödet

Portabel autentisering

Under utveckling är det vanligt att skriva två uppsättningar med distinkt autentiseringslogik för lokala utvecklings- och produktionsinstanser. Med Azure SDK kan du skriva din logik med en enda teknik och förvänta dig att autentiseringskoden fungerar sömlöst i utveckling och produktion.

Azure Identity-klientbiblioteket är tillgängligt på flera programmeringsspråk som en del av Azure SDK. Med det här biblioteket kan du skapa ett DefaultAzureCredential objekt som intelligent går igenom flera alternativ för att hitta rätt autentiseringsuppgifter baserat på din miljö. Dessa autentiseringsalternativ omfattar (i ordning):

  1. Klienthemlighet eller certifikat som lagras som en miljövariabel
  2. Microsoft Entra-arbetsbelastnings-ID
  3. Användartilldelad eller systemtilldelad hanterad identitet
  4. Azure-autentiseringsuppgifter som härleds från Visual Studio-inställningar
  5. Autentiseringsuppgifter som används i Azure-kontotillägget för Visual Studio Code
  6. Aktuella autentiseringsuppgifter från Azure CLI
  7. Aktuella autentiseringsuppgifter från Azure PowerShell
  8. Aktuella autentiseringsuppgifter från Azure Developer CLI
  9. En interaktiv session som startar systemets webbläsare för inloggning

Varje modernt Azure SDK-bibliotek stöder en konstruktor för sina respektive klientobjekt eller klasser som accepterar en DefaultAzureCredential instans eller dess bastyp.

Dricks

För att göra din produktionskod enklare att felsöka och mer förutsägbar kan du välja att använda DefaultAzureCredential under utveckling och växla till en mer specifik autentiseringsuppgift som WorkloadIdentityCredential eller ManagedIdentityCredential när programmet har distribuerats. Alla dessa klasser baseras på den TokenCredential klass som många Azure SDK:er förväntar sig som en del av klientinitieringslogik, vilket gör det enkelt att växla fram och tillbaka.

Unik identifierare

Varje identitet i Microsoft Entra har en unik identifierare. Du kan ibland se den här unika identifieraren idsom kallas , objectId, eller principalId. När du skapar rolltilldelningar behöver du den unika identifieraren för den identitet som du använder med tilldelningen.

Omfattning

När du tilldelar en roll måste du bestämma vilka Azure-resurser eller -grupper som du vill bevilja åtkomst till. Omfånget för en rolltilldelning definierar nivån där en tilldelning görs.

Till exempel:

  • Ett enda resursomfång tillämpar behörigheter för just den enskilda resursen
  • En omfångsuppsättning på resursgruppsnivå tillämpar behörigheterna på alla relevanta resurser i gruppen
  • Omfång på hanteringsgrupps- eller prenumerationsnivåer gäller för alla underordnade grupper och resurser

När du tilldelar en roll i rollbaserad åtkomstkontroll i Azure är det idealiskt att ange tilldelningens omfattning så att den innehåller så lite resurser som krävs för din arbetsbelastning. Du kan till exempel ange omfånget för en tilldelning till en resursgrupp. Resursgruppens omfång omfattar alla Azure Cosmos DB-resurser i resursgruppen:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>

Du kan också ange omfånget till en enda Azure-resurs och göra tilldelningen av behörigheter mer detaljerad och smal. I det här exemplet används providern och namnet på Azure Cosmos DB-resursen för att begränsa omfånget:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>

Mer information finns i Rollbaserad åtkomstkontroll i Azure.

Omfång (azure Cosmos DB-inbyggt)

I Azure Cosmos DB:s interna implementering av rollbaserad åtkomstkontroll refererar omfånget till kornigheten för resurser i ett konto som du vill att behörigheten ska tillämpas för.

På den högsta nivån kan du begränsa rollbaserad åtkomstkontrolltilldelning för dataplanet till hela kontot med det största omfånget. Det här omfånget omfattar alla databaser och containrar i kontot:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/

Eller så kan du omfångsbegränsa dataplanets rolltilldelning till en specifik databas:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/<database-name>

Slutligen kan du begränsa tilldelningen till en enda container, det mest detaljerade omfånget:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/<database-name>/colls/<container-name>

Gå vidare