Säkerhetsordlista för Azure Cosmos DB för NoSQL
GÄLLER FÖR: NoSQL
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):
- Klienthemlighet eller certifikat som lagras som en miljövariabel
- Microsoft Entra-arbetsbelastnings-ID
- Användartilldelad eller systemtilldelad hanterad identitet
- Azure-autentiseringsuppgifter som härleds från Visual Studio-inställningar
- Autentiseringsuppgifter som används i Azure-kontotillägget för Visual Studio Code
- Aktuella autentiseringsuppgifter från Azure CLI
- Aktuella autentiseringsuppgifter från Azure PowerShell
- Aktuella autentiseringsuppgifter från Azure Developer CLI
- 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 id
som 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>