Door de klant beheerde sleutels configureren voor uw Azure Cosmos DB-account met Azure Key Vault

VAN TOEPASSING OP: Nosql MongoDB Cassandra Gremlin Tabel

Gegevens die zijn opgeslagen in uw Azure Cosmos DB-account, worden automatisch en naadloos versleuteld met sleutels die worden beheerd door Microsoft (door de service beheerde sleutels). U kunt er desgewenst voor kiezen om een tweede versleutelingslaag toe te voegen met sleutels die u beheert (door de klant beheerde sleutels of CMK).

Diagram van de versleutelingslagen rond klantgegevens.

U moet door de klant beheerde sleutels opslaan in Azure Key Vault en een sleutel opgeven voor elk Azure Cosmos DB-account dat is ingeschakeld met door de klant beheerde sleutels. Deze sleutel wordt gebruikt voor het versleutelen van alle gegevens die in dat account zijn opgeslagen.

Notitie

Als u door de klant beheerde sleutels wilt inschakelen voor uw bestaande Azure Cosmos DB-accounts, kunt u de koppeling hier raadplegen voor meer informatie

Waarschuwing

De volgende veldnamen zijn gereserveerd voor Cassandra-API-tabellen in accounts met door de klant beheerde sleutels:

  • id
  • ttl
  • _ts
  • _etag
  • _rid
  • _self
  • _attachments
  • _epk

Wanneer door de klant beheerde sleutels niet zijn ingeschakeld, worden alleen veldnamen __sys_ gereserveerd.

Vereisten

De Azure Cosmos DB-resourceprovider registreren

Als de Resourceprovider Microsoft.DocumentDB nog niet is geregistreerd, moet u deze provider registreren als eerste stap.

  1. Meld u aan bij Azure Portal, ga naar uw Azure-abonnement en selecteer Resourceproviders op het tabblad Instellingen:

    Schermopname van de optie Resourceproviders in het navigatiemenu van de resource.

  2. Zoek naar de Microsoft.DocumentDB-resourceprovider . Controleer of de resourceprovider al is gemarkeerd als geregistreerd. Als dat niet het is, kiest u de resourceprovider en selecteert u Registreren:

    Schermopname van de optie Registreren voor de Microsoft.DocumentDB-resourceprovider.

Uw Azure Key Vault-exemplaar configureren

Belangrijk

Uw Azure Key Vault-exemplaar moet toegankelijk zijn via openbare netwerktoegang of vertrouwde Microsoft-services toestaan om de firewall te omzeilen. Een exemplaar dat uitsluitend toegankelijk is via privé-eindpunten, kan niet worden gebruikt om uw door de klant beheerde sleutels te hosten .

Als u door de klant beheerde sleutels gebruikt met Azure Cosmos DB, moet u twee eigenschappen instellen op het Azure Key Vault-exemplaar dat u wilt gebruiken om uw versleutelingssleutels te hosten: Voorlopig verwijderen en Beveiliging opschonen.

  1. Als u een nieuw Azure Key Vault-exemplaar maakt, schakelt u deze eigenschappen in tijdens het maken:

    Schermopname van azure Key Vault-opties, waaronder beveiliging tegen voorlopig verwijderen en opschonen.

  2. Als u een bestaand Exemplaar van Azure Key Vault gebruikt, kunt u controleren of deze eigenschappen zijn ingeschakeld door de sectie Eigenschappen in Azure Portal te bekijken. Als een van deze eigenschappen niet is ingeschakeld, raadpleegt u de secties 'Voorlopig verwijderen inschakelen' en 'Beveiliging tegen opschonen inschakelen' in een van de volgende artikelen:

Het voorkeursbeveiligingsmodel kiezen

Zodra opschoningsbeveiliging en voorlopig verwijderen zijn ingeschakeld, kunt u op het tabblad Toegangsbeleid het gewenste machtigingsmodel kiezen dat u wilt gebruiken. Toegangsbeleid is standaard ingesteld, maar op rollen gebaseerd toegangsbeheer van Azure wordt ook ondersteund.

De benodigde machtigingen moeten worden gegeven om Cosmos DB toe te staan uw versleutelingssleutel te gebruiken. Deze stap is afhankelijk van of azure Key Vault toegangsbeleid of op rollen gebaseerd toegangsbeheer gebruikt.

Notitie

Het is belangrijk om te weten dat slechts één beveiligingsmodel tegelijk actief kan zijn, dus het is niet nodig om het op rollen gebaseerde toegangsbeheer te seeden als de Azure Key Vault is ingesteld op het gebruik van toegangsbeleid en vice versa)

Een toegangsbeleid toevoegen

In deze variatie gebruikt u de Azure Cosmos DB-principal om een toegangsbeleid met de juiste machtigingen te maken.

  1. Ga vanuit Azure Portal naar het Azure Key Vault-exemplaar dat u wilt gebruiken om uw versleutelingssleutels te hosten. Selecteer Toegangsbeleid in het linkermenu:

    Schermopname van de optie Toegangsbeleid in het navigatiemenu van de resource.

  2. Selecteer + Toegangsbeleid toevoegen.

  3. Selecteer in het vervolgkeuzemenu Sleutelmachtigingen Ophalen, Sleutel uitpakken en Sleutelterugloop:

    Schermopname van toegangsbeleidsmachtigingen, waaronder Get, Unwrap key en Wrap key.

  4. Selecteer Onder Principal selecteren de optie Geen geselecteerd.

  5. Zoek de Azure Cosmos DB-principal en selecteer deze (om het gemakkelijker te vinden, kunt u ook zoeken op toepassings-id: a232010e-820c-4083-83bb-3ace5fc29d0b voor elke Azure-regio, met uitzondering van Azure Government-regio's waarin de toepassings-id zich bevindt57506a73-e302-42a9-b869-6f12d9ec29e9).

    Tip

    Hiermee wordt de Azure Cosmos DB-identiteit van de eerste partij geregistreerd in uw Azure Key Vault-toegangsbeleid. Als de Azure Cosmos DB-principal zich niet in de lijst bevindt, moet u mogelijk de Microsoft.DocumentDB-resourceprovider opnieuw registreren.

  6. Kies Selecteren onderaan.

    Schermopname van de optie Principal selecteren op de pagina Toegangsbeleid toevoegen.

  7. Selecteer Toevoegen om het nieuwe toegangsbeleid toe te voegen.

  8. Selecteer Opslaan op het Key Vault-exemplaar om alle wijzigingen op te slaan.

Rollen voor op rollen gebaseerd toegangsbeheer toevoegen

  1. Ga vanuit Azure Portal naar het Azure Key Vault-exemplaar dat u wilt gebruiken om uw versleutelingssleutels te hosten. Selecteer Toegangsbeheer (IAM) in het linkermenu en selecteer Toegang verlenen tot deze resource.

    Schermopname van de optie Toegangsbeheer in het navigatiemenu van de resource.

    Schermopname van de optie Toegang verlenen tot deze resource op de pagina Toegangsbeheer.

  2. Zoek de rol Key Vault Beheer istrator en wijs deze toe aan uzelf. Deze toewijzing wordt uitgevoerd door eerst de rolnaam in de lijst te doorzoeken en vervolgens op het tabblad Leden te klikken. Selecteer op het tabblad de optie Gebruiker, groep of service-principal in de radio en zoek vervolgens uw Azure-account op. Zodra het account is geselecteerd, kan de rol worden toegewezen.

    Schermopname van de rol Key Vault-beheerder in de zoekresultaten.

    Schermopname van een roltoewijzing op de pagina Toegangsbeheer.

  3. Vervolgens moeten de benodigde machtigingen worden toegewezen aan de principal van Cosmos DB. Ga, net als de laatste roltoewijzing, naar de toewijzingspagina, maar zoek deze keer naar de rol Key Vault Crypto Service Encryption User en zoek op het tabblad Leden naar de principal van Cosmos DB. Als u de principal wilt zoeken, zoekt u naar de Azure Cosmos DB-principal en selecteert u deze.

    Schermopname van de Azure Cosmos DB-principal die wordt toegewezen aan een machtiging.

    Belangrijk

    In de Azure Government-regio is 57506a73-e302-42a9-b869-6f12d9ec29e9de toepassings-id.

  4. Selecteer Beoordelen en toewijzen en de rol wordt toegewezen aan Cosmos DB.

Controleer of de rollen juist zijn ingesteld

Gebruik vervolgens de pagina voor toegangsbeheer om te controleren of alle rollen correct zijn geconfigureerd.

  1. Zodra de rollen zijn toegewezen, selecteert u 'Toegang tot deze resource weergeven' op de pagina Toegangsbeheer-IAM om te controleren of alles correct is ingesteld.

    Schermopname van de optie Toegang tot resource weergeven op de pagina Toegangsbeheer.

  2. Stel op de pagina het bereik in op 'deze resource' en controleer of u de rol Key Vault-Beheer istrator hebt. De Cosmos DB-principal heeft de rol Key Vault Crypto Encryption User.

    Schermopname van de optie voor het aanpassen van het bereik voor een roltoewijzingsquery.

Een sleutel genereren in Azure Key Vault

Maak hier een nieuwe sleutel met behulp van Azure Key Vault en haal de unieke id op.

  1. Ga vanuit Azure Portal naar het Azure Key Vault-exemplaar dat u wilt gebruiken om uw versleutelingssleutels te hosten. Selecteer vervolgens Sleutels in het linkermenu:

    Schermopname van de optie Sleutels in het navigatiemenu van de resource.

  2. Selecteer Genereren/importeren, geef een naam op voor de nieuwe sleutel en selecteer een RSA-sleutelgrootte. Minimaal 3072 wordt aanbevolen voor de beste beveiliging. Selecteer vervolgens Maken:

    Schermopname van het dialoogvenster om een nieuwe sleutel te maken.

    Tip

    U kunt ook de Azure CLI gebruiken om een sleutel te genereren met:

    az keyvault key create \
        --vault-name <name-of-key-vault> \
        --name <name-of-key>
    

    Zie Azure Key Vault beheren met de Azure CLI voor meer informatie over het beheren van een sleutelkluis met de Azure CLI.

  3. Nadat de sleutel is gemaakt, selecteert u de zojuist gemaakte sleutel en vervolgens de huidige versie.

  4. Kopieer de sleutel-id van de sleutel, behalve het deel na de laatste slash:

    Schermopname van het sleutel-id-veld en de kopieeractie.

Een nieuw Azure Cosmos DB-account maken

Maak een nieuw Azure Cosmos DB-account met behulp van Azure Portal of Azure CLI.

Wanneer u een nieuw Azure Cosmos DB-account maakt vanuit Azure Portal, kiest u de door de klant beheerde sleutel in de stap Versleuteling . Plak in het veld Sleutel-URI de URI/sleutel-id van de Azure Key Vault-sleutel die u uit de vorige stap hebt gekopieerd:

Schermopname van de pagina Versleuteling met een aangepaste beheerde sleutel-URI geconfigureerd.

Een beheerde identiteit gebruiken in het toegangsbeleid van Azure Key Vault

Dit toegangsbeleid zorgt ervoor dat uw versleutelingssleutels toegankelijk zijn voor uw Azure Cosmos DB-account. Het toegangsbeleid wordt geïmplementeerd door toegang te verlenen tot een specifieke Microsoft Entra-identiteit. Er worden twee typen identiteiten ondersteund:

  • De eigen identiteit van Azure Cosmos DB kan worden gebruikt om toegang te verlenen tot de Azure Cosmos DB-service.
  • De beheerde identiteit van uw Azure Cosmos DB-account kan worden gebruikt om specifiek toegang te verlenen tot uw account.

Niet beschikbaar

Door de klant beheerde sleutels gebruiken met continue back-up

U kunt een doorlopend back-upaccount maken met behulp van de Azure CLI of een Azure Resource Manager-sjabloon.

Momenteel wordt alleen door de gebruiker toegewezen beheerde identiteit ondersteund voor het maken van continue back-upaccounts.

Zodra het account is gemaakt, kunt u de identiteit bijwerken naar door het systeem toegewezen beheerde identiteit.

De gebruiker kan ook eerst een systeemidentiteit maken met de periodieke back-upmodus en vervolgens het account migreren naar de modus Continue back-up met behulp van deze instructies een Azure Cosmos DB-account migreren van periodieke naar continue back-upmodus

Niet beschikbaar

Een doorlopend account herstellen dat is geconfigureerd met beheerde identiteit

Een door de gebruiker toegewezen identiteit is vereist in de herstelaanvraag omdat de beheerde identiteit van het bronaccount (door de gebruiker toegewezen en door het systeem toegewezen identiteiten) niet automatisch kan worden overgedragen naar het doeldatabaseaccount.

Niet beschikbaar

Door de klant beheerde sleutels en dubbele versleuteling

De gegevens die u opslaat in uw Azure Cosmos DB-account wanneer u door de klant beheerde sleutels gebruikt, worden twee keer versleuteld:

  • Eenmaal via de standaardversleuteling uitgevoerd met door Microsoft beheerde sleutels.
  • Eenmaal via de extra versleuteling uitgevoerd met door de klant beheerde sleutels.

Dubbele versleuteling is alleen van toepassing op de hoofdopslag van Azure Cosmos DB transactionele opslag. Sommige functies omvatten interne replicatie van uw gegevens naar een tweede opslaglaag waarbij dubbele versleuteling niet wordt geleverd, zelfs niet met door de klant beheerde sleutels. Deze functies zijn onder andere:

Sleutelroulatie

Het roteren van de door de klant beheerde sleutel die door uw Azure Cosmos DB-account wordt gebruikt, kan op twee manieren worden uitgevoerd.

  • Maak een nieuwe versie van de sleutel die momenteel wordt gebruikt vanuit Azure Key Vault:

    Schermopname van de optie Nieuwe versie op de pagina Versies van Azure Portal.

  • Verwissel de sleutel die momenteel wordt gebruikt met een andere sleutel door de sleutel-URI voor uw account bij te werken. Ga in Azure Portal naar uw Azure Cosmos DB-account en selecteer Gegevensversleuteling in het linkermenu:

    Schermopname van de optie Gegevensversleuteling in het navigatiemenu van de resource.

    Vervang vervolgens de sleutel-URI door de nieuwe sleutel die u wilt gebruiken en selecteer Opslaan:

    Schermopname van de optie Opslaan op de pagina Sleutel.

    U kunt als volgt hetzelfde resultaat bereiken in PowerShell:

    # Variable for resource group name
    $RESOURCE_GROUP_NAME = "<resource-group-name>"
    
    # Variable for account name
    $ACCOUNT_NAME = "<globally-unique-account-name>"
    
    # Variable for new key URI in the key vault
    $NEW_KEY_VAULT_KEY_URI="https://<key-vault-name>.vault.azure.net/keys/<new-key-name>"
    
    $parameters = @{
        ResourceGroupName = $RESOURCE_GROUP_NAME 
        Name = $ACCOUNT_NAME
        ResourceType = "Microsoft.DocumentDb/databaseAccounts"
    }
    $ACCOUNT = Get-AzResource @parameters
    
    $ACCOUNT.Properties.keyVaultKeyUri = $NEW_KEY_VAULT_KEY_URI
    
    $ACCOUNT | Set-AzResource -Force
    

De vorige sleutel- of sleutelversie kan worden uitgeschakeld nadat de Auditlogboeken van Azure Key Vault geen activiteit meer weergeven vanuit Azure Cosmos DB op die sleutel of sleutelversie. Na 24 uur sleutelrotatie moet er geen activiteit meer plaatsvinden op de vorige sleutel of sleutelversie.

Foutafhandeling

Als er fouten zijn met door de klant beheerde sleutels in Azure Cosmos DB, retourneert Azure Cosmos DB de foutdetails samen met een HTTP-substatuscode in het antwoord. U kunt de HTTP-substatuscode gebruiken om fouten op te sporen in de hoofdoorzaak van het probleem. Zie het artikel HTTP-statuscodes voor Azure Cosmos DB om de lijst met ondersteunde HTTP-substatuscodes op te halen.

Veelgestelde vragen

Hier vindt u veelgestelde vragen over het instellen van door de klant beheerde sleutels in Azure Cosmos DB.

Zijn er meer kosten verbonden om door de klant beheerde sleutels in te schakelen?

Nee, er worden geen kosten in rekening gebracht om deze functie in te schakelen.

Hoe beïnvloeden door de klant beheerde sleutels capaciteitsplanning?

Aanvraageenheden die door uw databasebewerkingen worden gebruikt, zien een toename van de extra verwerking die nodig is om versleuteling en ontsleuteling van uw gegevens uit te voeren bij gebruik van door de klant beheerde sleutels. Het extra RU-verbruik kan leiden tot iets hoger gebruik van uw ingerichte capaciteit. Gebruik deze tabel voor richtlijnen:

Het type bewerking Verhoging aanvraageenheid
Puntleesbewerkingen (items ophalen op hun id) + 5% per bewerking
Elke schrijfbewerking + 6% per bewerking | Ongeveer + 0,06 RU per geïndexeerde eigenschap
Query's, lezen van wijzigingenfeed of conflictfeed + 15% per bewerking

Welke gegevens worden versleuteld met de door de klant beheerde sleutels?

Alle gegevens die zijn opgeslagen in uw Azure Cosmos DB-account, worden versleuteld met de door de klant beheerde sleutels, met uitzondering van de volgende metagegevens:

Worden door de klant beheerde sleutels ondersteund voor bestaande Azure Cosmos DB-accounts?

Deze functie is momenteel alleen beschikbaar voor nieuwe accounts.

Is het mogelijk om door de klant beheerde sleutels te gebruiken met de analytische opslag van Azure Cosmos DB?

Ja, Azure Synapse Link biedt alleen ondersteuning voor het configureren van door de klant beheerde sleutels met behulp van de beheerde identiteit van uw Azure Cosmos DB-account. U moet de beheerde identiteit van uw Azure Cosmos DB-account in uw Azure Key Vault-toegangsbeleid gebruiken voordat u Azure Synapse Link inschakelt voor uw account. Zie toegang tot Azure Key Vault vanuit Azure Cosmos DB met behulp van een beheerde identiteit voor instructies voor het inschakelen van beheerde identiteiten en het gebruik ervan in een toegangsbeleid.

Is er een plan om gedetailleerdere granulariteit te ondersteunen dan sleutels op accountniveau?

Niet op dit moment, maar sleutels op containerniveau worden overwogen.

Hoe weet ik of door de klant beheerde sleutels zijn ingeschakeld voor mijn Azure Cosmos DB-account?

Ga vanuit Azure Portal naar uw Azure Cosmos DB-account en kijk naar de vermelding Gegevensversleuteling in het linkermenu. Als deze vermelding bestaat, zijn door de klant beheerde sleutels ingeschakeld voor uw account:

Schermopname van de optie Gegevensversleuteling in het navigatiemenu van de resource.

U kunt ook programmatisch de details van uw Azure Cosmos DB-account ophalen en zoeken naar de aanwezigheid van de keyVaultKeyUri eigenschap.

Hoe zijn door de klant beheerde sleutels van invloed op periodieke back-ups?

Azure Cosmos DB maakt regelmatig en automatische back-ups van de gegevens die zijn opgeslagen in uw account. Met deze bewerking wordt een back-up van de versleutelde gegevens uitgevoerd.

De volgende voorwaarden zijn nodig om een periodieke back-up te herstellen:

  • De versleutelingssleutel die u hebt gebruikt op het moment van de back-up is vereist en moet beschikbaar zijn in Azure Key Vault. Deze voorwaarde vereist dat er geen intrekking is gemaakt en dat de versie van de sleutel die is gebruikt op het moment van de back-up nog steeds is ingeschakeld.
  • Als u een door het systeem toegewezen beheerde identiteit hebt gebruikt in het toegangsbeleid, verleent u tijdelijk toegang tot de identiteit van de eerste partij van Azure Cosmos DB voordat u uw gegevens herstelt. Deze vereiste bestaat omdat een door het systeem toegewezen beheerde identiteit specifiek is voor een account en niet opnieuw kan worden gebruikt in het doelaccount. Zodra de gegevens volledig zijn hersteld naar het doelaccount, kunt u de gewenste identiteitsconfiguratie instellen en de identiteit van de eerste partij verwijderen uit het Key Vault-toegangsbeleid.

Hoe zijn door de klant beheerde sleutels van invloed op continue back-ups?

Azure Cosmos DB biedt u de mogelijkheid om continue back-ups voor uw account te configureren. Met continue back-ups kunt u uw gegevens binnen de afgelopen 30 dagen herstellen naar elk tijdstip. Als u continue back-ups wilt gebruiken voor een account waarvoor door de klant beheerde sleutels zijn ingeschakeld, moet u een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit gebruiken in het key vault-toegangsbeleid. Azure Cosmos DB-identiteiten van derden worden momenteel niet ondersteund voor accounts met behulp van continue back-ups.

Vereiste stappen voor door de klant beheerde sleutels ingeschakelde accounts om door de gebruiker toegewezen identiteit bij te werken.

  • Voeg een door de gebruiker toegewezen identiteit toe aan het Cosmos DB-account en verwijs machtigingen in key vault-toegangsbeleid.
  • Stel de door de gebruiker toegewezen als standaardidentiteit in via Azure CLI of ARM.
az cosmosdb update --resource-group MyResourceGroup --name MyAccountName --default-identity UserAssignedIdentity=/subscriptions/MySubscriptionId/resourcegroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyUserAssignedIdentity

De volgende voorwaarden zijn nodig om een herstel naar een bepaald tijdstip uit te voeren:

  • De versleutelingssleutel die u hebt gebruikt op het moment van de back-up is vereist en moet beschikbaar zijn in Azure Key Vault. Deze vereiste betekent dat er geen intrekking is gemaakt en dat de versie van de sleutel die is gebruikt op het moment van de back-up nog steeds is ingeschakeld.
  • U moet ervoor zorgen dat de door de gebruiker toegewezen beheerde identiteit die oorspronkelijk in het bronaccount wordt gebruikt, nog steeds wordt gedeclareerd in het key vault-toegangsbeleid.

Belangrijk

Als u de versleutelingssleutel intrekt voordat u uw account verwijdert, kan de back-up van uw account de gegevens die tot 1 uur voordat de intrekking is gemaakt, missen.

Hoe kan ik een versleutelingssleutel intrekken?

Sleutelintrekking wordt uitgevoerd door de nieuwste versie van de sleutel uit te schakelen:

Schermopname van een uitgeschakelde aangepaste sleutelversie.

Als u alle sleutels van een Azure Key Vault-exemplaar wilt intrekken, kunt u ook het toegangsbeleid verwijderen dat is verleend aan de Azure Cosmos DB-principal:

Schermopname van de optie Verwijderen voor een toegangsbeleid.

Welke bewerkingen zijn beschikbaar nadat een door de klant beheerde sleutel is ingetrokken?

De enige bewerking die mogelijk is wanneer de versleutelingssleutel is ingetrokken, is accountverwijdering.

Wijs een nieuwe beheerde identiteit toe aan het herstelde databaseaccount om de toegang tot het databaseaccount te blijven openen of herstellen

Door de gebruiker toegewezen identiteit is gekoppeld aan een opgegeven Cosmos DB-account wanneer we een door de gebruiker toegewezen identiteit aan een account toewijzen, stuurt ARM de aanvraag door naar beheerde service-identiteiten om deze verbinding te maken. Momenteel dragen we gegevens van de gebruikersidentiteit van het brondatabaseaccount over naar het doeldatabaseaccount tijdens het herstellen (voor zowel continue als periodieke back-upherstel) van CMK + door de gebruiker toegewezen identiteit,

Omdat de identiteitsmetagegevens zijn gebonden aan het brondatabaseaccount en de werkstroom voor het herstellen van de werkstroom niet opnieuw worden beperkt tot het doeldatabaseaccount. Dit zorgt ervoor dat de herstelde databaseaccounts een slechte status hebben en niet toegankelijk zijn nadat het bronaccount is verwijderd en de vernieuwingstijd van de identiteit is verlopen.

Stappen voor het toewijzen van een nieuwe beheerde identiteit:

  1. Maak een nieuwe door de gebruiker toegewezen beheerde identiteit.
  2. KeyVault-sleuteltoegang verlenen tot deze identiteit.
  3. Wijs deze nieuwe identiteit toe aan uw herstelde databaseaccount.

Volgende stappen