Op rollen gebaseerd toegangsbeheer in Azure Cosmos DB

VAN TOEPASSING OP: Nosql MongoDB Cassandra Gremlin Tabel

Notitie

Dit artikel gaat over op rollen gebaseerd toegangsbeheer voor beheervlakbewerkingen in Azure Cosmos DB. Als u gegevensvlakbewerkingen gebruikt, worden gegevens beveiligd met behulp van primaire sleutels, resourcetokens of azure Cosmos DB RBAC.

Zie Beveiligde toegang tot gegevens en Azure Cosmos DB RBAC-artikelen voor meer informatie over op rollen gebaseerd toegangsbeheer dat is toegepast op bewerkingen in het gegevensvlak in de API voor NoSQL. Zie Data Plane RBAC in de API voor MongoDB voor de Azure Cosmos DB-API voor MongoDB.

Azure Cosmos DB biedt ingebouwde Azure RBAC (op rollen gebaseerd toegangsbeheer) voor algemene beheerscenario's in Azure Cosmos DB. Een persoon die een profiel in Microsoft Entra ID heeft, kan deze Azure-rollen toewijzen aan gebruikers, groepen, service-principals of beheerde identiteiten om toegang te verlenen of te weigeren tot resources en bewerkingen in Azure Cosmos DB-resources. Roltoewijzingen zijn alleen bedoeld voor toegang tot het besturingsvlak, waaronder toegang tot Azure Cosmos DB-accounts, databases, containers en aanbiedingen (doorvoer).

Ingebouwde rollen

Hier volgen de ingebouwde rollen die worden ondersteund door Azure Cosmos DB:

Ingebouwde rol Beschrijving
DocumentDB-accountbijdrager Kan Azure Cosmos DB-accounts beheren.
Cosmos DB-accountlezerrol Kan azure Cosmos DB-accountgegevens lezen.
CosmosBackupOperator Kan een herstelaanvraag indienen in Azure Portal voor een periodieke back-updatabase of een container. Kan het back-upinterval en de retentie in Azure Portal wijzigen. Kan geen toegang krijgen tot gegevens of Data Explorer gebruiken.
CosmosRestoreOperator Kan een herstelactie uitvoeren voor een Azure Cosmos DB-account met continue back-upmodus.
Cosmos DB-operator Kan Azure Cosmos DB-accounts, -databases en -containers inrichten. Kan geen toegang krijgen tot gegevens of Data Explorer gebruiken.

Identiteits- en toegangsbeheer (IAM)

Het deelvenster Toegangsbeheer (IAM) in Azure Portal wordt gebruikt voor het configureren van op rollen gebaseerd toegangsbeheer van Azure op Azure Cosmos DB-resources. De rollen worden toegepast op gebruikers, groepen, service-principals en beheerde identiteiten in Active Directory. U kunt ingebouwde rollen of aangepaste rollen gebruiken voor personen en groepen. In de volgende schermopname ziet u Active Directory-integratie (Azure RBAC) met behulp van toegangsbeheer (IAM) in Azure Portal:

Access control (IAM) in the Azure portal - demonstrating database security.

Aangepaste rollen

Naast de ingebouwde rollen kunnen gebruikers ook aangepaste rollen maken in Azure en deze rollen toepassen op service-principals in alle abonnementen binnen hun Active Directory-tenant. Aangepaste rollen bieden gebruikers een manier om Azure-roldefinities te maken met een aangepaste set resourceproviderbewerkingen. Zie Bewerkingen van de Azure Cosmos DB-resourceprovider voor meer informatie over welke bewerkingen beschikbaar zijn voor het bouwen van aangepaste rollen voor Azure Cosmos DB

Tip

Aangepaste rollen die toegang moeten hebben tot gegevens die zijn opgeslagen in Azure Cosmos DB of Data Explorer in Azure Portal moeten actie hebben Microsoft.DocumentDB/databaseAccounts/listKeys/* .

Notitie

Aangepaste roltoewijzingen zijn mogelijk niet altijd zichtbaar in Azure Portal.

Waarschuwing

Accountsleutels worden niet automatisch geroteerd of ingetrokken nadat RBAC-beheer is gewijzigd. Deze sleutels bieden toegang tot gegevensvlakbewerkingen. Wanneer u de toegang tot de sleutels van een gebruiker verwijdert, wordt u aangeraden de sleutels ook te roteren. Voor het RBAC-gegevensvlak worden aanvragen door de Cosmos DB-back-end geweigerd zodra de rollen/claims niet meer overeenkomen. Als een gebruiker tijdelijke toegang tot gegevensvlakbewerkingen vereist, is het raadzaam om Azure Cosmos DB RBAC-gegevensvlak te gebruiken.

Wijzigingen van de Azure Cosmos DB SDK's voorkomen

De Azure Cosmos DB-resourceprovider kan worden vergrendeld om te voorkomen dat resources worden gewijzigd vanuit een client die verbinding maakt met behulp van de accountsleutels (dat zijn toepassingen die verbinding maken via de Azure Cosmos DB SDK). Deze functie kan wenselijk zijn voor gebruikers die een hogere mate van controle en beheer willen voor productieomgevingen. Het voorkomen van wijzigingen van de SDK maakt ook functies mogelijk, zoals resourcevergrendelingen en diagnostische logboeken voor besturingsvlakbewerkingen. De clients die verbinding maken vanuit de Azure Cosmos DB SDK, kunnen geen eigenschappen wijzigen voor de Azure Cosmos DB-accounts, -databases, -containers en -doorvoer. De bewerkingen waarbij gegevens naar Azure Cosmos DB-containers worden gelezen en geschreven, worden niet beïnvloed.

Wanneer deze functie is ingeschakeld, kunnen wijzigingen in elke resource alleen worden aangebracht van een gebruiker met de juiste Azure-rol en Microsoft Entra-referenties, waaronder Managed Service Identities.

Waarschuwing

Het inschakelen van deze functie kan invloed hebben op uw toepassing. Zorg ervoor dat u de impact begrijpt voordat u deze inschakelt.

Lijst controleren voordat u deze inschakelt

Met deze instelling voorkomt u wijzigingen in een Azure Cosmos DB-resource van elke client die verbinding maakt met behulp van accountsleutels, waaronder een Azure Cosmos DB SDK, alle hulpprogramma's die verbinding maken via accountsleutels. Als u problemen of fouten van toepassingen wilt voorkomen nadat u deze functie hebt ingeschakeld, controleert u of toepassingen een van de volgende acties uitvoeren voordat u deze functie inschakelt, waaronder:

  • Onderliggende resources, zoals databases en containers, maken en verwijderen. Dit omvat resources voor andere API's, zoals Cassandra, MongoDB, Gremlin en tabelbronnen.

  • Doorvoer voor resources op database- of containerniveau lezen of bijwerken.

  • Containereigenschappen wijzigen, waaronder indexbeleid, TTL en unieke sleutels.

  • Opgeslagen procedures, triggers of door de gebruiker gedefinieerde functies wijzigen.

Als uw toepassingen (of gebruikers via Azure Portal) een van deze acties uitvoeren, moeten ze worden gemigreerd om te worden uitgevoerd via ARM-sjablonen, PowerShell, Azure CLI, REST of Azure Management Library. Houd er rekening mee dat Azure Management beschikbaar is in meerdere talen.

Instellen via ARM-sjabloon

Als u deze eigenschap wilt instellen met behulp van een ARM-sjabloon, werkt u uw bestaande sjabloon bij of exporteert u een nieuwe sjabloon voor uw huidige implementatie en neemt u vervolgens de "disableKeyBasedMetadataWriteAccess": true eigenschappen voor de databaseAccounts resources op. Hieronder ziet u een eenvoudig voorbeeld van een Azure Resource Manager-sjabloon met deze eigenschapsinstelling.

{
    {
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "name": "[variables('accountName')]",
      "apiVersion": "2020-04-01",
      "location": "[parameters('location')]",
      "kind": "GlobalDocumentDB",
      "properties": {
        "consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
        "locations": "[variables('locations')]",
        "databaseAccountOfferType": "Standard",
        "disableKeyBasedMetadataWriteAccess": true
        }
    }
}

Belangrijk

Zorg ervoor dat u de andere eigenschappen voor uw account en onderliggende resources opneemt wanneer u deze eigenschap opnieuw implementeert. Implementeer deze sjabloon niet zoals deze is, anders worden al uw accounteigenschappen opnieuw ingesteld.

Instellen via Azure CLI

Als u azure CLI wilt inschakelen, gebruikt u de onderstaande opdracht:

az cosmosdb update  --name [CosmosDBAccountName] --resource-group [ResourceGroupName]  --disable-key-based-metadata-write-access true

Instellen via PowerShell

Als u Azure PowerShell wilt inschakelen, gebruikt u de onderstaande opdracht:

Update-AzCosmosDBAccount -ResourceGroupName [ResourceGroupName] -Name [CosmosDBAccountName] -DisableKeyBasedMetadataWriteAccess true

Volgende stappen