Share via


Beveiligingswoordenlijst voor Azure Cosmos DB for NoSQL

VAN TOEPASSING OP: NoSQL

Diagram van de huidige locatie ('Concepten') in de volgorde van de implementatiehandleiding.

Diagram van de volgorde van de implementatiehandleiding, inclusief deze locaties, in volgorde: Overzicht, Concepten, Voorbereiden, op rollen gebaseerd toegangsbeheer, Netwerk en Verwijzing. De locatie 'Concepten' is momenteel gemarkeerd.

Dit artikel bevat een woordenlijst met veelgebruikte terminologie die in deze beveiligingshandleiding wordt gebruikt voor Azure Cosmos DB for NoSQL.

Op rollen gebaseerd toegangsbeheer

Op rollen gebaseerd toegangsbeheer verwijst naar een methode voor het beheren van toegang tot resources in Azure. Deze methode is gebaseerd op specifieke identiteiten waaraan rollen worden toegewezen die beheren welk toegangsniveau ze hebben voor een of meer resources. Op rollen gebaseerd toegangsbeheer biedt een flexibel systeem van gedetailleerd toegangsbeheer dat ervoor zorgt dat identiteiten alleen het minst bevoegde toegangsniveau hebben dat ze nodig hebben om hun taak uit te voeren.

Zie het overzicht van op rollen gebaseerd toegangsbeheer voor meer informatie.

Identiteit/principal

Identiteiten verwijzen naar objecten in Microsoft Entra die een bepaalde entiteit vertegenwoordigt die mogelijk een toegangsniveau tot uw systeem nodig heeft. In de context van Azure en Microsoft Entra kunnen identiteiten verwijzen naar een van de volgende typen entiteiten:

Beschrijving
Workloadidentiteiten Een workloadidentiteit vertegenwoordigt een softwareworkload die toegang nodig heeft tot andere services of resources
Menselijke identiteiten Een menselijke identiteit vertegenwoordigt een gebruiker die systeemeigen kan zijn voor uw tenant of als gast kan worden toegevoegd
Beheerde identiteiten Beheerde identiteiten zijn afzonderlijke resources in Azure die de identiteit van een Azure-service vertegenwoordigen
Service-principals Een service-principal is een serviceaccount dat kan worden gebruikt in een flexibel aantal verificatiescenario's
Apparaat-id's Een apparaat-id is een object in Microsoft Entra dat is toegewezen aan een apparaat
Groepen Groepen zijn objecten die worden gebruikt om de toegang tot een of meer identiteiten als één bewerking te beheren

Zie de basisprincipes van identiteiten voor meer informatie.

Role

Rollen zijn de primaire eenheden voor het afdwingen van toegang en machtigingen. U wijst een rol toe aan een identiteit en de definitie van de rol bepaalt welk toegangsniveau die identiteit kan hebben. Het bereik van de toewijzing bepaalt waartoe de identiteit precies toegang heeft.

Azure heeft een grote set ingebouwde rollen die u kunt gebruiken om toegang te verlenen tot verschillende resources. Kijk eens naar dit voorbeeld:

Weergegeven als
- Rol CosmosBackupOperator
Definitie Microsoft.DocumentDB/databaseAccounts/backup/action & Microsoft.DocumentDB/databaseAccounts/restore/action
Scope Een resourcegroep

In dit voorbeeld krijgt u de CosmosBackupOperator rol toegewezen voor een specifieke resourcegroep. Met deze toewijzing hebt u toegang tot het uitvoeren of restore uitvoeren van acties backup op een Azure Cosmos DB-account binnen die resourcegroep.

Belangrijk

Sommige Azure-services, zoals Azure Cosmos DB, hebben hun eigen op rollen gebaseerde toegangsbeheer-implementatie die gebruikmaakt van verschillende Azure Resource Manager-eigenschappen, Azure CLI-opdrachten en Azure PowerShell-cmdLets. De opdrachten die u doorgaans gebruikt om op rollen gebaseerd toegangsbeheer te beheren, werken niet met toegang tot het gegevensvlak van Azure Cosmos DB. Sommige opdrachten voor op rollen gebaseerd toegangsbeheer van Azure werken mogelijk met azure Cosmos DB-besturingsvlaktoegang.

Zie ingebouwde Azure-rollen voor meer informatie

Roldefinitie

Een roldefinitie is een JSON-object dat de lijst met besturingsvlak - en gegevensvlakacties bevat die zijn toegestaan en die niet zijn toegestaan. Bekijk dit afgekapte voorbeeld van de CosmosRestoreOperator ingebouwde rol:

{
  "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": []
    }
  ],
  ...
}

In deze definitie kan een identiteit waaraan deze rol is toegewezen, een restore actie uitvoeren. Zodra de herstelbewerking is voltooid, kan de identiteit verschillende resources lezen om te controleren of de herstelbewerking is geslaagd. We kunnen bepalen dat deze resources kunnen worden gelezen vanwege de * operator (jokertekens) voor read.

Zie de concepten van roldefinities voor meer informatie.

Roltoewijzing

Een roltoewijzing verleent een identiteit toegang tot een specifieke Azure-resource. Roltoewijzingen bestaan uit de volgende onderdelen:

Beschrijving
Voornaamste Aan welke identiteit deze rol is toegewezen
- Rol De rol die aan de identiteit is toegewezen
Scope De Azure-doelresource of -groep van de toewijzing
Naam/beschrijving Metagegevens waarmee het eenvoudiger is om toewijzingen op schaal te beheren

Tip

In op rollen gebaseerd toegangsbeheer ziet u mogelijk de termen identiteit en principal die onderling worden gebruikt.

Zie de concepten van roltoewijzingen voor meer informatie.

Acties

Acties bepalen welke specifieke machtigingen een rol heeft voor een doelresource. Acties zijn tekenreeksen die doorgaans het resourcetype en een beschrijvende naam bevatten waarin wordt beschreven welke machtigingen de actie verleent. Hieronder vindt u een aantal gangbare voorbeelden:

Beschrijving Vliegtuig
Microsoft.DocumentDB/databaseAccounts/listKeys/action Alleen accountsleutels lezen Besturingsvlak
Microsoft.DocumentDB/databaseAccounts/backup/action Back-ups uitvoeren Besturingsvlak
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace Een bestaand item volledig vervangen Gegevenslaag
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery Een NoSQL-query uitvoeren Gegevenslaag

Acties kunnen ook tekens (jokertekens) bevatten * , zodat u niet elke specifieke submissie handmatig hoeft in detail weer te geven. Hier volgen enkele voorbeelden van acties met jokertekens:

Beschrijving
Microsoft.DocumentDb/databaseAccounts/* Azure Cosmos DB-accounts maken en beheren
Microsoft.DocumentDB/*/read Een container of database lezen

Acties worden gescheiden in het besturingsvlak en het gegevensvlak. U moet afzonderlijke acties definiëren voor resources en acties die invloed kunnen hebben op gegevens. In een roldefinitie maken besturingsvlakacties gebruik van de actions eigenschaps- en gegevensvlakacties binnen de dataActions eigenschap. U kunt ook acties definiëren die een identiteit niet kan uitvoeren met behulp van de respectieve notActions eigenschappen en notDataActions eigenschappen.

Notitie

De scheiding van acties in het besturings- en gegevensvlak is een beveiligingsmaatregel om te voorkomen dat jokertekenacties van verouderde roldefinities onbeperkte en onbedoelde toegang tot gegevens hebben.

Zie besturings- en gegevensacties voor meer informatie.

Minimale bevoegdheid

Het concept 'minimale bevoegdheid' verwijst naar een operationele best practice om ervoor te zorgen dat alle gebruikers alleen het minimale toegangsniveau hebben dat ze nodig hebben om hun taak of taak uit te voeren. Een toepassing die bijvoorbeeld gegevens uit een database leest, heeft alleen leestoegang tot het gegevensarchief nodig. Als die toepassing lees- en schrijftoegang tot het gegevensarchief had, kunnen er enkele dingen gebeuren, waaronder, maar niet beperkt tot:

  • De toepassing kan gegevens per ongeluk vernietigen
  • Een onbevoegde gebruiker kan toegang krijgen tot de referenties van de toepassing en gegevens wijzigen

Na de praktijk van minimale bevoegdheden zorgt u ervoor dat eventuele potentiële gegevensschendingen beperkt zijn binnen het bereik. Deze praktijk maximaliseert de operationele beveiliging, terwijl gebruikers effectief kunnen blijven.

Zie aanbevolen rollen met minimale bevoegdheden per taak voor meer informatie.

Besturingsvlak

Toegang tot het besturingsvlak verwijst naar de mogelijkheid om resources voor een Azure-service te beheren zonder gegevens te beheren. Zo kan de toegang tot het besturingsvlak van Azure Cosmos DB bijvoorbeeld de volgende mogelijkheden bevatten:

  • Alle account- en resourcemetagegevens lezen
  • Accountsleutels en verbindingsreeks s lezen en opnieuw genereren
  • Accountback-ups en herstel uitvoeren
  • Taken voor gegevensoverdracht starten en bijhouden
  • Databases en containers beheren
  • Accounteigenschappen wijzigen

Belangrijk

In Azure Cosmos DB hebt u toegang tot het besturingsvlak nodig voor het beheren van systeemeigen op rollen gebaseerd toegangsbeheerdefinities en -toewijzingen. Omdat het op rollen gebaseerde toegangsbeheermechanisme van Azure Cosmos DB van Azure Cosmos DB systeemeigen is, hebt u toegang tot het besturingsvlak nodig om definities en toewijzingen te maken en op te slaan als resources in een Azure Cosmos DB-account.

Gegevenslaag

Toegang tot gegevensvlakken verwijst naar de mogelijkheid om gegevens in een Azure-service te lezen en te schrijven zonder de mogelijkheid om resources in het account te beheren. Voor exmaple kan toegang tot het gegevensvlak van Azure Cosmos DB de volgende mogelijkheden bevatten:

  • Enkele account- en resourcemetagegevens lezen
  • Items maken, lezen, bijwerken, patchen en verwijderen
  • NoSQL-query's uitvoeren
  • Lezen uit de wijzigingenfeed van een container
  • Opgeslagen procedures uitvoeren
  • Conflicten in de conflictfeed beheren

Draagbare verificatie

In ontwikkeling is het gebruikelijk om twee sets afzonderlijke verificatielogica te schrijven voor lokale ontwikkeling en productie-exemplaren. Met de Azure SDK kunt u uw logica schrijven met behulp van één techniek en verwachten dat de verificatiecode naadloos werkt in ontwikkeling en productie.

De Azure Identity-clientbibliotheek is beschikbaar in meerdere programmeertalen als onderdeel van de Azure SDK. Met deze bibliotheek kunt u een DefaultAzureCredential object maken dat op intelligente wijze door meerdere opties loopt om de juiste referentie te vinden op basis van uw omgeving. Deze verificatieopties zijn onder andere (in volgorde):

  1. Clientgeheim of certificaat dat is opgeslagen als een omgevingsvariabele
  2. Microsoft Entra Workload-ID
  3. Door de gebruiker toegewezen of door het systeem toegewezen beheerde identiteit
  4. Azure-referenties die zijn afgeleid van de instellingen van Visual Studio
  5. Referenties die worden gebruikt in de Azure-accountextensie van Visual Studio Code
  6. Huidige referenties van Azure CLI
  7. Huidige referenties van Azure PowerShell
  8. Huidige referenties van Azure Developer CLI
  9. Een interactieve sessie waarmee de browser van het systeem wordt gestart voor aanmelding

Elke moderne Azure SDK-bibliotheek ondersteunt een constructor voor hun respectieve clientobjecten of -klassen die een DefaultAzureCredential exemplaar of het basistype accepteren.

Tip

Als u uw productiecode eenvoudiger wilt maken om fouten op te sporen en voorspelbaarder te maken, kunt u ervoor kiezen om te gebruiken DefaultAzureCredential in ontwikkeling en om te wisselen naar een specifiekere referentie, zoals WorkloadIdentityCredential of ManagedIdentityCredential zodra de toepassing is geïmplementeerd. Al deze klassen zijn gebaseerd op de TokenCredential klasse die veel Azure SDK's verwachten als onderdeel van hun clientinitialisatielogica, waardoor het eenvoudig is om heen en weer te wisselen.

Unieke id

Elke identiteit in Microsoft Entra heeft een unieke id. Deze unieke id wordt soms aangeduid als de id, objectIdof principalId. Bij het maken van roltoewijzingen hebt u de unieke id nodig voor de identiteit waarmee u de toewijzing wilt gebruiken.

Bereik

Wanneer u een rol toewijst, moet u bepalen tot welke Azure-resources of -groepen u toegang wilt verlenen. Het bereik van een roltoewijzing definieert het niveau waarop een toewijzing wordt gemaakt.

Voorbeeld:

  • Eén resourcebereik past machtigingen toe op alleen die enkelvoudige resource
  • Een bereik dat is ingesteld op het niveau van de resourcegroep, past de machtigingen toe op alle relevante resources binnen de groep
  • Bereiken op het niveau van de beheergroep of het abonnement zijn van toepassing op alle onderliggende groepen en resources

Wanneer u een rol toewijst in op rollen gebaseerd toegangsbeheer van Azure, is het ideaal om het bereik van die toewijzing in te stellen om zo weinig resources op te nemen als nodig is voor uw workload. U kunt bijvoorbeeld het bereik van een toewijzing instellen op een resourcegroep. Het bereik van de resourcegroep omvat alle Azure Cosmos DB-resources binnen de resourcegroep:

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

U kunt het bereik ook instellen op één Azure-resource en de toewijzing van machtigingen nauwkeuriger en smaller maken. In dit voorbeeld worden de provider en de naam van de Azure Cosmos DB-resource gebruikt om het bereik te beperken:

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

Zie het bereik voor op rollen gebaseerd toegangsbeheer van Azure voor meer informatie.

Bereik (systeemeigen Azure Cosmos DB)

In de systeemeigen implementatie van op rollen gebaseerd toegangsbeheer van Azure Cosmos DB verwijst het bereik naar de granulariteit van resources binnen een account waarvoor u machtigingen wilt toepassen.

Op het hoogste niveau kunt u een toewijzing van op rollen gebaseerd toegangsbeheer op basis van een gegevensvlak opgeven voor het hele account met behulp van het grootste bereik. Dit bereik omvat alle databases en containers binnen het account:

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

U kunt ook de roltoewijzing van uw gegevensvlak instellen op een specifieke database:

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

Ten slotte kunt u de toewijzing aan één container toewijzen, het meest gedetailleerde bereik:

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

Volgende stap