Konfigurace klíčů spravovaných zákazníkem pro účet služby Azure Cosmos DB pomocí služby Azure Key Vault

PLATÍ PRO: NoSQL MongoDB Cassandra Skřítek Stůl

Data uložená ve vašem účtu služby Azure Cosmos DB se automaticky a bezproblémově šifrují pomocí klíčů spravovaných Microsoftem (klíče spravované službou). Volitelně můžete přidat druhou vrstvu šifrování pomocí klíčů, které spravujete (klíče spravované zákazníkem nebo CMK).

Diagram vrstev šifrování kolem zákaznických dat

Klíče spravované zákazníkem musíte uložit ve službě Azure Key Vault a zadat klíč pro každý účet služby Azure Cosmos DB, který je povolený pomocí klíčů spravovaných zákazníkem. Tento klíč slouží k šifrování všech dat uložených v daném účtu.

Poznámka:

Pokud chcete povolit klíče spravované zákazníkem ve stávajících účtech Služby Azure Cosmos DB, můžete se podívat na odkaz , kde najdete další podrobnosti.

Upozorňující

Následující názvy polí jsou vyhrazeny pro tabulky rozhraní API Cassandra v účtech používajících klíče spravované zákazníkem:

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

Pokud klíče spravované zákazníkem nejsou povolené, jsou vyhrazeny pouze názvy polí začínajících zákazníkem __sys_ .

Požadavky

Registrace poskytovatele prostředků Azure Cosmos DB

Pokud poskytovatel prostředků Microsoft.DocumentDB ještě není zaregistrovaný, měli byste tohoto poskytovatele zaregistrovat jako první krok.

  1. Přihlaste se k webu Azure Portal, přejděte do svého předplatného Azure a na kartě Nastavení vyberte Poskytovatele prostředků:

    Snímek obrazovky s možností Poskytovatelé prostředků v navigační nabídce prostředků

  2. Vyhledejte poskytovatele prostředků Microsoft.DocumentDB . Ověřte, jestli je poskytovatel prostředků již označený jako zaregistrovaný. Pokud ne, zvolte poskytovatele prostředků a vyberte Zaregistrovat:

    Snímek obrazovky s možností Zaregistrovat pro poskytovatele prostředků Microsoft.DocumentDB

Konfigurace instance služby Azure Key Vault

Důležité

Vaše instance služby Azure Key Vault musí být přístupná prostřednictvím přístupu k veřejné síti nebo umožnit důvěryhodným služby Microsoft obejít bránu firewall. Instanci, která je výhradně přístupná prostřednictvím privátních koncových bodů, nelze použít k hostování klíčů spravovaných zákazníkem.

Použití klíčů spravovaných zákazníkem se službou Azure Cosmos DB vyžaduje, abyste v instanci služby Azure Key Vault nastavili dvě vlastnosti, které chcete použít k hostování šifrovacích klíčů: obnovitelné odstranění a vymazání ochrany.

  1. Pokud vytvoříte novou instanci služby Azure Key Vault, během vytváření povolte tyto vlastnosti:

    Snímek obrazovky s možnostmi služby Azure Key Vault, včetně obnovitelného odstranění a ochrany před vymazáním

  2. Pokud používáte existující instanci služby Azure Key Vault, můžete ověřit, že jsou tyto vlastnosti povolené, a to v části Vlastnosti na webu Azure Portal. Pokud některé z těchto vlastností není povolené, přečtěte si část "Povolení obnovitelného odstranění" a "Povolení ochrany před vymazáním" v jednom z následujících článků:

Výběr upřednostňovaného modelu zabezpečení

Po povolení ochrany před vymazáním a obnovitelného odstranění můžete na kartě zásady přístupu zvolit preferovaný model oprávnění, který chcete použít. Zásady přístupu jsou nastavené ve výchozím nastavení, ale podporuje se i řízení přístupu na základě role v Azure.

Aby služba Cosmos DB mohla používat váš šifrovací klíč, musí být udělena potřebná oprávnění. Tento krok se liší v závislosti na tom, jestli Azure Key Vault používá zásady přístupu nebo řízení přístupu na základě role.

Poznámka:

Je důležité si uvědomit, že najednou může být aktivní jenom jeden model zabezpečení, takže není nutné sestavovat řízení přístupu na základě role, pokud je služba Azure Key Vault nastavená tak, aby používala zásady přístupu a naopak).

Přidání zásad přístupu

V této variantě použijte instanční objekt služby Azure Cosmos DB k vytvoření zásady přístupu s příslušnými oprávněními.

  1. Na webu Azure Portal přejděte do instance služby Azure Key Vault, kterou chcete použít k hostování šifrovacích klíčů. V nabídce vlevo vyberte Zásady přístupu:

    Snímek obrazovky s možností Zásady přístupu v navigační nabídce prostředků

  2. Vyberte + Přidat zásady přístupu.

  3. V rozevírací nabídce Oprávnění ke klíči vyberte oprávnění Získat, Rozbalit klíč a Zalamovat klíč:

    Snímek obrazovky s oprávněními zásad přístupu, včetně klíče Get, Unwrap key a Wrap key

  4. V části Vybrat objekt zabezpečení vyberte Možnost Žádný.

  5. Vyhledejte objekt zabezpečení služby Azure Cosmos DB a vyberte ho (abyste ho mohli snadněji najít, můžete také vyhledávat podle ID aplikace: 00001111-aaaa-2222-bbbb-3333cccc4444 pro libovolnou oblast Azure kromě oblastí Azure Government, ve kterých je 11112222-bbbb-3333-cccc-4444dddd5555ID aplikace).

    Tip

    Tím se ve vašich zásadách přístupu ke službě Azure Key Vault zaregistruje identita první strany služby Azure Cosmos DB. Pokud objekt zabezpečení služby Azure Cosmos DB není v seznamu, možná budete muset znovu zaregistrovat poskytovatele prostředků Microsoft.DocumentDB.

  6. Zvolte Vybrat v dolní části.

    Snímek obrazovky s možností Vybrat objekt zabezpečení na stránce Přidat zásadu přístupu

  7. Pokud chcete přidat novou zásadu přístupu, vyberte Přidat .

  8. Výběrem možnosti Uložit v instanci služby Key Vault uložte všechny změny.

Přidání rolí řízení přístupu na základě role

  1. Na webu Azure Portal přejděte do instance služby Azure Key Vault, kterou chcete použít k hostování šifrovacích klíčů. V nabídce vlevo vyberte Řízení přístupu (IAM) a vyberte Udělit přístup k tomuto prostředku.

    Snímek obrazovky s možností Řízení přístupu v navigační nabídce prostředků

    Snímek obrazovky s možností Udělit přístup k tomuto prostředku na stránce Řízení přístupu

  2. Vyhledejte roli správce služby Key Vault a přiřaďte ji sobě. Toto přiřazení provedete tak, že nejprve vyhledáte název role ze seznamu a potom kliknete na kartu Členové . Na kartě vyberte v rádiu možnost Uživatel, skupina nebo instanční objekt a vyhledejte svůj účet Azure. Po výběru účtu je možné roli přiřadit.

    Snímek obrazovky přiřazení role na stránce Řízení přístupu

  3. Potom musí být potřebná oprávnění přiřazena k instančnímu objektu služby Cosmos DB. Stejně jako poslední přiřazení role přejděte na stránku přiřazení, ale tentokrát vyhledejte roli Šifrování šifrovací služby Key Vault a na kartě členové vyhledejte instanční objekt služby Cosmos DB. Pokud chcete objekt zabezpečení najít, vyhledejte instanční objekt služby Azure Cosmos DB a vyberte ho.

    Snímek obrazovky s přiřazeným objektem zabezpečení služby Azure Cosmos DB k oprávnění

    Důležité

    V oblasti Azure Government je 11112222-bbbb-3333-cccc-4444dddd5555ID aplikace .

  4. Vyberte Zkontrolovat a přiřadit a role se přiřadí ke službě Cosmos DB.

Ověřte, že jsou role správně nastavené.

Dále pomocí stránky řízení přístupu ověřte, že jsou všechny role správně nakonfigurované.

  1. Po přiřazení rolí vyberte na stránce Řízení přístupu IAM možnost Zobrazit přístup k tomuto prostředku a ověřte, že je vše správně nastavené.

    Snímek obrazovky s možností Zobrazit přístup k prostředku na stránce Řízení přístupu

  2. Na stránce nastavte obor na tento prostředek a ověřte, že máte roli Správce služby Key Vault, a instanční objekt služby Cosmos DB má roli uživatele šifrování služby Key Vault.

Vygenerování klíče ve službě Azure Key Vault

Tady vytvořte nový klíč pomocí služby Azure Key Vault a načtěte jedinečný identifikátor.

  1. Na webu Azure Portal přejděte k instanci služby Azure Key Vault, kterou chcete použít k hostování šifrovacích klíčů. Potom v nabídce vlevo vyberte Klíče :

    Snímek obrazovky s možností Klíče v navigační nabídce prostředku

  2. Vyberte Generovat/Importovat, zadejte název nového klíče a vyberte velikost klíče RSA. Pro zajištění nejlepšího zabezpečení se doporučuje minimálně 3072. Pak vyberte Vytvořit:

    Snímek obrazovky s dialogovým oknem pro vytvoření nového klíče

    Tip

    Případně můžete pomocí Azure CLI vygenerovat klíč pomocí:

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

    Další informace o správě trezoru klíčů pomocí Azure CLI najdete v tématu Správa služby Azure Key Vault pomocí Azure CLI.

  3. Po vytvoření klíče vyberte nově vytvořený klíč a pak jeho aktuální verzi.

  4. Zkopírujte identifikátor klíče s výjimkou části za posledním lomítkem:

    Snímek obrazovky s polem identifikátoru klíče a akcí kopírování

Vytvoření nového účtu služby Azure Cosmos DB

Vytvořte nový účet služby Azure Cosmos DB pomocí webu Azure Portal nebo Azure CLI.

Když vytvoříte nový účet služby Azure Cosmos DB z webu Azure Portal, zvolte klíč spravovaný zákazníkem v kroku Šifrování . Do pole Identifikátor URI klíče vložte identifikátor URI/klíč klíče služby Azure Key Vault, který jste zkopírovali z předchozího kroku:

Snímek obrazovky stránky Šifrování s nakonfigurovaným identifikátorem URI vlastního spravovaného klíče

Důležité

V závislosti na konfiguraci sítě možná budete muset povolit přístup ke službě Azure Cosmos DB z jiných služeb Azure.

Použití spravované identity v zásadách přístupu ke službě Azure Key Vault

Tyto zásady přístupu zajišťují, že k šifrovacím klíčům bude mít přístup váš účet služby Azure Cosmos DB. Zásady přístupu se implementují udělením přístupu ke konkrétní identitě Microsoft Entra. Podporují se dva typy identit:

  • Identitu první strany služby Azure Cosmos DB je možné použít k udělení přístupu ke službě Azure Cosmos DB.
  • Spravovanou identitu účtu služby Azure Cosmos DB můžete použít k udělení přístupu k vašemu účtu konkrétně.

Není k dispozici

Použití klíčů spravovaných zákazníkem s průběžným zálohováním

Účet průběžného zálohování můžete vytvořit pomocí Azure CLI nebo šablony Azure Resource Manageru.

V současné době se pro vytváření účtů průběžného zálohování podporuje jenom spravovaná identita přiřazená uživatelem.

Po vytvoření účtu můžete identitu aktualizovat na spravovanou identitu přiřazenou systémem.

Případně může uživatel také vytvořit systémovou identitu s pravidelným režimem zálohování a pak pomocí těchto pokynů migrovat účet do režimu průběžného zálohování pomocí těchto pokynů Migrovat účet Služby Azure Cosmos DB z pravidelného režimu průběžného zálohování do režimu průběžného zálohování.

Není k dispozici

Obnovení průběžného účtu, který je nakonfigurovaný se spravovanou identitou

V žádosti o obnovení se vyžaduje identita přiřazená uživatelem, protože spravovaná identita zdrojového účtu (přiřazená uživatelem a identita přiřazená systémem) se nemůže automaticky přenést do cílového databázového účtu.

Není k dispozici

Klíče spravované zákazníkem a dvojité šifrování

Data, která ukládáte do účtu služby Azure Cosmos DB při použití klíčů spravovaných zákazníkem, se zašifrují dvakrát:

  • Jednou prostřednictvím výchozího šifrování prováděného s klíči spravovanými Microsoftem.
  • Jednou prostřednictvím dodatečného šifrování prováděného s klíči spravovanými zákazníkem.

Dvojité šifrování platí jenom pro hlavní transakční úložiště Azure Cosmos DB. Některé funkce zahrnují interní replikaci vašich dat do druhé úrovně úložiště, kde není poskytováno dvojité šifrování, a to ani s klíči spravovanými zákazníkem. Patří k nim:

Obměna klíčů

Obměně klíče spravovaného zákazníkem, který používá váš účet služby Azure Cosmos DB, je možné provést dvěma způsoby.

  • Vytvořte novou verzi klíče, která se aktuálně používá ze služby Azure Key Vault:

    Snímek obrazovky s možností Nová verze na stránce Verze na webu Azure Portal

  • Prohoďte klíč, který se aktuálně používá, aktualizací identifikátoru URI klíče ve vašem účtu. Na webu Azure Portal přejděte do svého účtu služby Azure Cosmos DB a v nabídce vlevo vyberte Šifrování dat:

    Snímek obrazovky s možností Šifrování dat v navigační nabídce prostředků

    Potom nahraďte identifikátor URI klíče novým klíčem, který chcete použít, a vyberte Uložit:

    Snímek obrazovky s možností Uložit na stránce Klíč

    Tady je postup, jak dosáhnout stejného výsledku v PowerShellu:

    # 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
    

Předchozí klíč nebo verze klíče je možné zakázat poté , co protokoly auditu služby Azure Key Vault nezobrazují aktivitu ze služby Azure Cosmos DB v této verzi klíče nebo klíče. Po 24 hodinách obměně klíčů by se neměla provádět žádná další aktivita u předchozího klíče nebo verze klíče.

Automatické obměny klíčů ve službě Azure Key Vault se podporuje, pokud předchozí klíč není zakázaný nebo odstraněný. Interní systémy potřebují nějakou dobu, aby po ověření, že účet není v odvolaném stavu nebo při přechodu na povolení klíčů spravovaných zákazníkem, chvíli dohnat novou verzi klíče.

Zpracování chyb

Pokud ve službě Azure Cosmos DB dojde k chybám s klíči spravovanými zákazníkem, azure Cosmos DB vrátí podrobnosti o chybě spolu s kódem podstatu HTTP v odpovědi. K ladění původní příčiny problému můžete použít kód podstatu HTTP. Seznam podporovaných kódů dílčích statistik HTTP najdete v článku o stavových kódech HTTP pro Službu Azure Cosmos DB .

Nejčastější dotazy

Tady jsou nejčastější dotazy k nastavení klíčů spravovaných zákazníkem ve službě Azure Cosmos DB.

Účtují se další poplatky za povolení klíčů spravovaných zákazníkem?

Ne, za tuto funkci se neúčtují žádné poplatky.

Jaký vliv mají klíče spravované zákazníkem na plánování kapacity?

Jednotky žádostí spotřebované vašimi databázovými operacemi vidí zvýšení, které odráží dodatečné zpracování potřebné k šifrování a dešifrování dat při použití klíčů spravovaných zákazníkem. Zvýšení spotřeby RU může vést k mírně vyššímu využití zřízené kapacity. Pokyny najdete v této tabulce:

Typ operace Zvýšení jednotky žádosti
Čtení bodů (načítání položek podle jejich ID) + 5 % na operaci
Jakákoli operace zápisu + 6 % na operaci | Přibližně + 0,06 RU na indexovanou vlastnost
Dotazy, čtení kanálu změn nebo konfliktní informační kanál + 15 % na operaci

Jaká data se šifrují pomocí klíčů spravovaných zákazníkem?

Všechna data uložená v účtu služby Azure Cosmos DB se šifrují pomocí klíčů spravovaných zákazníkem s výjimkou následujících metadat:

  • Názvy účtů, databází a kontejnerů Služby Azure Cosmos DB

  • Názvy uložených procedur

  • Cesty vlastností deklarované v zásadách indexování

  • Hodnoty klíčů oddílů kontejnerů

Podporují se klíče spravované zákazníkem pro stávající účty služby Azure Cosmos DB?

Ano. Informace o nastavení klíčů spravovaných zákazníkem pro stávající účty Služby Azure Cosmos DB najdete v tématu Nastavení klíčů spravovaných zákazníkem.

Je možné používat klíče spravované zákazníkem s analytickým úložištěm Azure Cosmos DB?

Ano, Azure Synapse Link podporuje pouze konfiguraci klíčů spravovaných zákazníkem pomocí spravované identity účtu služby Azure Cosmos DB. Před povolením služby Azure Synapse Link ve vašem účtu musíte ve svých zásadách přístupu ke službě Azure Key Vault použít spravovanou identitu účtu služby Azure Cosmos DB. Návod, jak povolit spravovanou identitu a použít ji v zásadách přístupu, najdete v tématu o přístupu ke službě Azure Key Vault ze služby Azure Cosmos DB pomocí spravované identity.

Existuje plán podpory jemněji členitosti než klíče na úrovni účtu?

V současné době ne, ale zvažují se klíče na úrovni kontejneru.

Jak zjistím, jestli jsou u účtu služby Azure Cosmos DB povolené klíče spravované zákazníkem?

Na webu Azure Portal přejděte do svého účtu služby Azure Cosmos DB a v levé nabídce sledujte položku Šifrování dat. Pokud tato položka existuje, klíče spravované zákazníkem jsou ve vašem účtu povolené:

Snímek obrazovky s možností Šifrování dat v navigační nabídce prostředků

Můžete také programově načíst podrobnosti o účtu služby Azure Cosmos DB a vyhledat přítomnost keyVaultKeyUri vlastnosti.

Jaký vliv mají klíče spravované zákazníkem na pravidelné zálohy?

Azure Cosmos DB přijímá pravidelné a automatické zálohy dat uložených ve vašem účtu. Tato operace zálohuje šifrovaná data.

K úspěšnému obnovení pravidelné zálohy jsou nezbytné následující podmínky:

  • Šifrovací klíč, který jste použili v době zálohování, je povinný a musí být dostupný ve službě Azure Key Vault. Tato podmínka vyžaduje, aby nedošlo k odvolání a verze klíče použitého v době zálohování je stále povolená.
  • Pokud jste v zásadách přístupu použili spravovanou identitu přiřazenou systémem, před obnovením dat dočasně udělte přístup k identitě první strany služby Azure Cosmos DB. Tento požadavek existuje, protože spravovaná identita přiřazená systémem je specifická pro účet a nedá se znovu použít v cílovém účtu. Po úplném obnovení dat do cílového účtu můžete nastavit požadovanou konfiguraci identity a odebrat identitu první strany ze zásad přístupu ke službě Key Vault.

Jaký vliv mají klíče spravované zákazníkem na průběžné zálohování?

Azure Cosmos DB nabízí možnost konfigurovat průběžné zálohování ve vašem účtu. Díky průběžným zálohám můžete data obnovit k libovolnému bodu v čase během posledních 30 dnů. Pokud chcete používat průběžné zálohování na účtu, kde jsou povolené klíče spravované zákazníkem, musíte v zásadách přístupu ke službě Key Vault použít spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem. Identita první strany služby Azure Cosmos DB se v současné době nepodporuje u účtů využívajících průběžné zálohování.

Požadované kroky pro účty s povolenými klíči spravovanými zákazníkem za účelem aktualizace identity přiřazené uživatelem

  • Přidejte identitu přiřazenou uživatelem do účtu služby Cosmos DB a udělte oprávnění v zásadách přístupu trezoru klíčů.
  • Nastavte uživatelem přiřazenou jako výchozí identitu prostřednictvím Azure CLI nebo ARM.
az cosmosdb update --resource-group MyResourceGroup --name MyAccountName --default-identity UserAssignedIdentity=/subscriptions/MySubscriptionId/resourcegroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyUserAssignedIdentity

K úspěšnému obnovení k určitému bodu v čase jsou nezbytné následující podmínky:

  • Šifrovací klíč, který jste použili v době zálohování, je povinný a musí být dostupný ve službě Azure Key Vault. Tento požadavek znamená, že nedošlo k odvolání a verze klíče použitého v době zálohování je stále povolená.
  • Musíte zajistit, aby spravovaná identita přiřazená uživatelem původně používaná ve zdrojovém účtu byla stále deklarována v zásadách přístupu ke službě Key Vault.

Důležité

Pokud před odstraněním účtu odvoláte šifrovací klíč, může záloha vašeho účtu vynechat data zapsaná až 1 hodinu před zrušením.

Návody odvolat šifrovací klíč?

Odvolání klíče se provádí zakázáním nejnovější verze klíče:

Snímek obrazovky s zakázanou verzí vlastního klíče

Pokud chcete také odvolat všechny klíče z instance služby Azure Key Vault, můžete odstranit zásady přístupu udělené instančnímu objektu služby Azure Cosmos DB:

Snímek obrazovky s možností Odstranit pro zásady přístupu

Jaké operace jsou k dispozici po odvolání klíče spravovaného zákazníkem?

Jedinou možnou operací, pokud byl šifrovací klíč odvolán, je odstranění účtu.

Pokud chcete pokračovat v přístupu k databázovému účtu nebo obnovit přístup k databázovému účtu, přiřaďte obnovené databázovému účtu novou spravovanou identitu.

Identita přiřazená uživatelem je svázaná se zadaným účtem Cosmos DB, kdykoli přiřadíme identitu přiřazenou uživatelem k účtu, ARM předá požadavek identitám spravované služby, aby se toto připojení provedlo. V současné době přenášíme informace o identitě uživatele ze zdrojového databázového účtu do cílového databázového účtu během obnovení (pro průběžné i pravidelné obnovení) CMK + identity přiřazené uživatelem,

Vzhledem k tomu, že metadata identit jsou svázaná se zdrojovým účtem databáze a pracovní postup obnovení nepřesazuje identitu cílovému databázovému účtu. To způsobí, že obnovené databázové účty budou ve špatném stavu a po odstranění zdrojového účtu budou nedostupné a doba obnovení identity vyprší.

Postup přiřazení nové spravované identity:

  1. Vytvořte novou spravovanou identitu přiřazenou uživatelem.
  2. Udělte klíč služby KeyVault přístup k této identitě.
  3. Přiřaďte tuto novou identitu k obnovenému databázovému účtu.

Další kroky