Konfigurace klíčů spravovaných zákazníkem napříč tenanty pro váš úč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 službou, které spravuje Microsoft. Můžete ale přidat druhou vrstvu šifrování pomocí klíčů, které spravujete. Tyto klíče se označují jako klíče spravované zákazníkem (neboli CMK). Klíče spravované zákazníkem se ukládají v instanci služby Azure Key Vault.
Tento článek vás provede konfigurací šifrování pomocí klíčů spravovaných zákazníkem v době, kdy vytvoříte účet služby Azure Cosmos DB. V tomto příkladu se účet Azure Cosmos DB nachází v tenantovi spravovaném nezávislým dodavatelem softwaru (ISV) označovaným jako poskytovatel služeb. Klíč používaný k šifrování účtu služby Azure Cosmos DB se nachází v trezoru klíčů v jiném tenantovi spravovaném zákazníkem.
Informace o klíčích spravovaných zákazníkem napříč tenanty
Mnoho poskytovatelů služeb vytvářejících nabídky Software jako služba (SaaS) v Azure chce svým zákazníkům nabídnout možnost správy vlastních šifrovacích klíčů. Klíče spravované zákazníkem umožňují poskytovateli služeb šifrovat data zákazníka pomocí šifrovacího klíče spravovaného zákazníkem poskytovatele služeb a není přístupný poskytovateli služeb. V Azure může zákazník poskytovatele služeb použít Azure Key Vault ke správě šifrovacích klíčů ve svém vlastním tenantovi a předplatném Microsoft Entra.
Služby a prostředky platformy Azure, které vlastní poskytovatel služeb a které se nacházejí v tenantovi poskytovatele služeb, vyžadují přístup k klíči z tenanta zákazníka k provádění operací šifrování a dešifrování.
Následující obrázek ukazuje šifrování neaktivních uložených dat s federovanou identitou v pracovním postupu CMK napříč tenanty, který se zabývá poskytovatelem služeb a jeho zákazníkem.
V předchozím příkladu existují dva tenanti Microsoft Entra: tenanta nezávislého poskytovatele služeb (tenant 1) a tenanta zákazníka (tenant 2). Tenant 1 hostuje služby platformy Azure a tenant 2 hostuje trezor klíčů zákazníka.
Poskytovatel služeb v tenantovi 1 vytvoří registraci víceklientských aplikací. V této aplikaci se vytvoří přihlašovací údaje federované identity pomocí spravované identity přiřazené uživatelem. Potom se název a ID aplikace aplikace sdílí se zákazníkem.
Uživatel s příslušnými oprávněními nainstaluje aplikaci poskytovatele služeb v tenantovi zákazníka Tenant 2. Uživatel pak udělí instančnímu objektu přidruženému k nainstalované aplikaci přístup k trezoru klíčů zákazníka. Zákazník také uloží šifrovací klíč nebo klíč spravovaný zákazníkem do trezoru klíčů. Zákazník sdílí umístění klíče (adresu URL klíče) s poskytovatelem služeb.
Poskytovatel služeb teď má:
- ID aplikace pro víceklientskou aplikaci nainstalovanou v tenantovi zákazníka, kterému byl udělen přístup ke klíči spravovanému zákazníkem.
- Spravovaná identita nakonfigurovaná jako přihlašovací údaje pro víceklientskou aplikaci.
- Umístění klíče v trezoru klíčů zákazníka.
S těmito třemi parametry poskytovatel služeb zřídí prostředky Azure v tenantovi 1 , které je možné zašifrovat pomocí klíče spravovaného zákazníkem v tenantovi 2.
Pojďme výše uvedené komplexní řešení rozdělit do tří fází:
- Zprostředkovatel služeb konfiguruje identity.
- Zákazník udělí víceklientské aplikaci poskytovatele služeb přístup k šifrovacímu klíči ve službě Azure Key Vault.
- Poskytovatel služeb šifruje data v prostředku Azure pomocí klíče CMK.
Operace ve fázi 1 by byla jednorázová instalace většiny aplikací poskytovatele služeb. Operace ve fázích 2 a 3 se pro každého zákazníka opakují.
Fáze 1 – Poskytovatel služeb konfiguruje aplikaci Microsoft Entra.
Krok | Popis | Minimální role v Azure RBAC | Minimální role v Microsoft Entra RBAC |
---|---|---|---|
1. | Vytvořte novou registraci víceklientských aplikací Microsoft Entra nebo začněte s existující registrací aplikace. Poznamenejte si ID aplikace (ID klienta) registrace aplikace pomocí webu Azure Portal, rozhraní Microsoft Graph API, Azure PowerShellu nebo Azure CLI. | Nic | Vývojář aplikace |
2. | Vytvořte spravovanou identitu přiřazenou uživatelem (která se použije jako přihlašovací údaje federované identity). Šablony Azure Resource Manageru v Azure PowerShellu/ na webu / Azure Portal / |
Přispěvatel spravovaných identit | Nic |
3. | Nakonfigurujte spravovanou identitu přiřazenou uživatelem jako přihlašovací údaje federované identity v aplikaci, aby ji bylo možné zosobnit. Referenční informace k rozhraní Graph API na/ webu Azure/ Portal v Azure PowerShellu/ |
Nic | Vlastník aplikace |
4. | Sdílejte název aplikace a ID aplikace se zákazníkem, aby mohl aplikaci nainstalovat a autorizovat. | Nic | Nic |
Důležité informace o poskytovatelích služeb
- Pro vytváření aplikací Microsoft Entra se nedoporučuje šablony Azure Resource Manageru (ARM).
- Stejnou víceklientní aplikaci je možné použít pro přístup ke klíčům v libovolném počtu tenantů, jako je Tenant 2, Tenant 3, Tenant 4 atd. V každém tenantovi se vytvoří nezávislá instance aplikace, která má stejné ID aplikace, ale jiné ID objektu. Každá instance této aplikace je tedy autorizovaná nezávisle. Zvažte, jak se objekt aplikace použitý pro tuto funkci používá k rozdělení aplikace mezi všechny zákazníky.
- Aplikace může mít maximálně 20 přihlašovacích údajů federované identity, což vyžaduje, aby poskytovatel služeb sdílel federované identity mezi svými zákazníky. Další informace o aspektech návrhu a omezeních federovaných identit najdete v tématu Konfigurace aplikace pro vztah důvěryhodnosti externího zprostředkovatele identity.
- Ve výjimečných scénářích může poskytovatel služeb používat jeden objekt aplikace pro zákazníka, ale to vyžaduje značné náklady na údržbu pro správu aplikací ve velkém měřítku napříč všemi zákazníky.
- V tenantovi poskytovatele služeb není možné automatizovat ověření vydavatele.
Fáze 2 – Zákazník autorizuje přístup k trezoru klíčů
Krok | Popis | Nejméně privilegované role Azure RBAC | Nejméně privilegované role Microsoft Entra |
---|---|---|---|
1. | Nic | Uživatelé s oprávněními k instalaci aplikací | |
2. | Vytvořte službu Azure Key Vault a klíč, který se používá jako klíč spravovaný zákazníkem. | Aby uživatel vytvořil trezor klíčů, musí mít přiřazenou roli Přispěvatel služby Key Vault. Aby uživatel přidal klíč do trezoru klíčů, musí mít přiřazenou roli kryptografického důstojníka služby Key Vault. |
Nic |
3. | Udělení souhlasu s identitou aplikace přístup k trezoru klíčů Azure přiřazením role Key Vault Crypto Service Encryption User | Pokud chcete aplikaci přiřadit roli uživatele šifrování šifrovací služby Key Vault, musíte mít přiřazenou roli Správce uživatelských přístupů. | Nic |
4. | Zkopírujte adresu URL a název klíče trezoru klíčů do konfigurace klíčů spravovaných zákazníkem nabídky SaaS. | Nic | Nic |
Poznámka:
Pokud chcete autorizovat přístup ke spravovanému HSM pro šifrování pomocí CMK, podívejte se tady na příklad účtu úložiště. Další informace o správě klíčů pomocí spravovaného HSM najdete v tématu Správa spravovaného HSM pomocí Azure CLI.
Důležité informace pro zákazníky poskytovatelů služeb
- V tenantovi zákazníka tenant 2 může správce nastavit zásady tak, aby uživatelům, kteří nejsou správci, blokovali instalaci aplikací. Tyto zásady můžou uživatelům, kteří nejsou správci, zabránit vytváření instančních objektů. Pokud je taková zásada nakonfigurovaná, musí být zapojeni uživatelé s oprávněními k vytváření instančních objektů.
- Přístup ke službě Azure Key Vault je možné autorizovat pomocí Azure RBAC nebo zásad přístupu. Při udělování přístupu k trezoru klíčů nezapomeňte pro trezor klíčů použít aktivní mechanismus.
- Registrace aplikace Microsoft Entra má ID aplikace (ID klienta). Když je aplikace nainstalovaná ve vašem tenantovi, vytvoří se instanční objekt. Instanční objekt sdílí stejné ID aplikace jako registrace aplikace, ale vygeneruje vlastní ID objektu. Když autorizujete aplikaci tak, aby měla přístup k prostředkům, budete možná muset použít instanční objekt
Name
neboObjectID
vlastnost.
Fáze 3 – Poskytovatel služeb šifruje data v prostředku Azure pomocí klíče spravovaného zákazníkem.
Po dokončení fází 1 a 2 může poskytovatel služeb nakonfigurovat šifrování prostředku Azure pomocí klíče a trezoru klíčů v tenantovi zákazníka a prostředku Azure v tenantovi isV. Poskytovatel služeb může nakonfigurovat klíče spravované zákazníkem napříč tenanty pomocí klientských nástrojů podporovaných daným prostředkem Azure, pomocí šablony ARM nebo pomocí rozhraní REST API.
Konfigurace klíčů spravovaných zákazníkem napříč tenanty
Tato část popisuje, jak nakonfigurovat klíč spravovaný zákazníkem (CMK) napříč tenanty a šifrovat zákaznická data. Dozvíte se, jak šifrovat zákaznická data v prostředku v Tenantu1 pomocí KLÍČE uloženého v trezoru klíčů v Tenant2. Můžete použít Azure Portal, Azure PowerShell nebo Azure CLI.
Přihlaste se k webu Azure Portal a postupujte podle těchto kroků.
Zprostředkovatel služeb konfiguruje identity.
Následující kroky provádí poskytovatel služeb v tenantovi tenanta poskytovatele služeb 1.
Poskytovatel služeb vytvoří novou registraci aplikace s více tenanty.
Můžete buď vytvořit novou registraci aplikace Microsoft Entra pro více tenantů, nebo začít s existující registrací aplikace s více tenanty. Pokud začínáte s existující registrací aplikace, poznamenejte si ID aplikace (ID klienta) aplikace.
Vytvoření nové registrace:
Do vyhledávacího pole vyhledejte ID Microsoft Entra. Vyhledejte a vyberte rozšíření Microsoft Entra ID .
V levém podokně vyberte Spravovat > Registrace aplikací.
Vyberte + Nová registrace.
Zadejte název registrace aplikace a vyberte Účet v libovolném organizačním adresáři (Libovolný adresář Microsoft Entra – Víceklient).
Vyberte Zaregistrovat.
Poznamenejte si ID aplikace nebo CLIENTID aplikace.
Poskytovatel služeb vytvoří spravovanou identitu přiřazenou uživatelem.
Vytvořte spravovanou identitu přiřazenou uživatelem, která se použije jako přihlašovací údaje federované identity.
Ve vyhledávacím poli vyhledejte spravované identity . Vyhledejte a vyberte rozšíření Spravované identity .
Vyberte + Vytvořit.
Zadejte skupinu prostředků, oblast a název spravované identity.
Vyberte Zkontrolovat a vytvořit.
Při úspěšném nasazení si poznamenejte Id prostředku Azure spravované identity přiřazené uživatelem, která je k dispozici v části Vlastnosti. Příklad:
/subscriptions/tttttttt-0000-tttt-0000-tttt0000tttt/resourcegroups/XTCMKDemo/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ConsotoCMKDemoUA
Zprostředkovatel služeb nakonfiguruje spravovanou identitu přiřazenou uživatelem jako federované přihlašovací údaje v aplikaci.
Nakonfigurujte spravovanou identitu přiřazenou uživatelem jako přihlašovací údaje federované identity v aplikaci, aby se zosobněla identita aplikace.
Přejděte na Microsoft Entra ID > Registrace aplikací > vaší aplikaci.
Vyberte Certifikáty a tajné kódy.
Vyberte federované přihlašovací údaje.
Vyberte + Přidat přihlašovací údaje.
V části Scénář federovaných přihlašovacích údajů vyberte Klíče spravované zákazníkem.
Klikněte na Vybrat spravovanou identitu. V podokně vyberte předplatné. V části Spravovaná identita vyberte spravovanou identitu přiřazenou uživatelem. V poli Vybrat vyhledejte spravovanou identitu, kterou jste vytvořili dříve, a potom klikněte na vybrat v dolní části podokna.
V části Podrobnosti přihlašovacích údajů zadejte název a volitelný popis přihlašovacích údajů a vyberte Přidat.
Poskytovatel služeb sdílí ID aplikace se zákazníkem.
Vyhledejte ID aplikace (ID klienta) víceklientská aplikace a sdílejte ho se zákazníkem.
Zákazník udělí aplikaci poskytovatele služeb přístup k klíči v trezoru klíčů.
Následující kroky provádí zákazník v tenantovi zákazníka 2. Zákazník může použít Azure Portal, Azure PowerShell nebo Azure CLI.
Uživatel, který provádí kroky, musí být správcem s privilegovanou rolí, jako je správce aplikací, správce cloudových aplikací nebo globální správce.
Přihlaste se k webu Azure Portal a postupujte podle těchto kroků.
Zákazník nainstaluje aplikaci poskytovatele služeb do tenanta zákazníka.
Pokud chcete nainstalovat zaregistrovanou aplikaci poskytovatele služeb v tenantovi zákazníka, vytvoříte instanční objekt s ID aplikace z registrované aplikace. Instanční objekt můžete vytvořit některým z následujících způsobů:
- K ručnímu vytvoření instančního objektu použijte Microsoft Graph, Microsoft Graph PowerShell, Azure PowerShell nebo Azure CLI .
- Vytvořte adresu URL souhlasu správce a udělte souhlas tenanta pro vytvoření instančního objektu. Budete je muset zadat s ID vaší aplikace.
Zákazník vytvoří trezor klíčů.
Pokud chcete vytvořit trezor klíčů, musí mít účet uživatele přiřazenou roli Přispěvatel služby Key Vault nebo jinou roli, která umožňuje vytvoření trezoru klíčů.
V nabídce webu Azure Portal nebo na domovské stránce vyberte + Vytvořit prostředek. Do vyhledávacího pole zadejte trezory klíčů. V seznamu výsledků vyberte trezory klíčů. Na stránce Trezory klíčů vyberte Vytvořit.
Na kartě Základy zvolte předplatné. V části Skupina prostředků vyberte Vytvořit nový a zadejte název skupiny prostředků.
Zadejte jedinečný název trezoru klíčů.
Vyberte oblast a cenovou úroveň.
Povolte ochranu před vymazáním pro nový trezor klíčů.
Na kartě Zásady přístupu vyberte řízení přístupu na základě role Azure pro model oprávnění.
Vyberte Zkontrolovat a vytvořit a pak Vytvořit.
Poznamenejte si název trezoru klíčů a aplikace URI, které přistupuje k trezoru klíčů, musí používat tento identifikátor URI.
Další informace najdete v tématu Rychlý start – Vytvoření služby Azure Key Vault pomocí webu Azure Portal.
Zákazník přiřadí roli kryptografického důstojníka služby Key Vault k uživatelskému účtu.
Tento krok zajistí, že můžete vytvořit šifrovací klíče.
- Přejděte do trezoru klíčů a v levém podokně vyberte Řízení přístupu (IAM ).
- V části Udělit přístup k tomuto zdroji vyberte Přidat přiřazení role.
- Vyhledejte a vyberte kryptografický důstojník služby Key Vault.
- V části Členové vyberte Uživatele, skupinu nebo instanční objekt.
- Vyberte Členy a vyhledejte svůj uživatelský účet.
- Vyberte Zkontrolovat + přiřadit.
Zákazník vytvoří šifrovací klíč.
Pokud chcete vytvořit šifrovací klíč, musí mít účet uživatele přiřazenou roli kryptografického důstojníka služby Key Vault nebo jinou roli, která umožňuje vytvoření klíče.
- Na stránce vlastností služby Key Vault vyberte Klíče.
- Vyberte Generovat/importovat.
- Na obrazovce Vytvořit klíč zadejte název klíče. U ostatních hodnot ponechte jejich výchozí nastavení.
- Vyberte Vytvořit.
- Zkopírujte identifikátor URI klíče.
Zákazník udělí aplikaci poskytovatele služeb přístup k trezoru klíčů.
Přiřaďte uživateli šifrování kryptografických služeb služby Key Vault role Azure RBAC zaregistrované aplikaci poskytovatele služeb, aby mohl přistupovat k trezoru klíčů.
- Přejděte do trezoru klíčů a v levém podokně vyberte Řízení přístupu (IAM ).
- V části Udělit přístup k tomuto zdroji vyberte Přidat přiřazení role.
- Vyhledejte a vyberte uživatele šifrování šifrovací služby Key Vault.
- V části Členové vyberte Uživatele, skupinu nebo instanční objekt.
- Vyberte Členy a vyhledejte název aplikace, kterou jste nainstalovali od poskytovatele služeb.
- Vyberte Zkontrolovat + přiřadit.
Teď můžete nakonfigurovat klíče spravované zákazníkem pomocí identifikátoru URI a klíče trezoru klíčů.
Vytvoření nového účtu služby Azure Cosmos DB šifrovaného pomocí klíče z jiného tenanta
Do této chvíle jste nakonfigurovali aplikaci s více tenanty v tenantovi poskytovatele služeb. Nainstalovali jste také aplikaci do tenanta zákazníka a nakonfigurovali jste trezor klíčů a klíč v tenantovi zákazníka. Dále můžete vytvořit účet služby Azure Cosmos DB v tenantovi poskytovatele služeb a nakonfigurovat klíče spravované zákazníkem pomocí klíče z tenanta zákazníka.
Při vytváření účtu služby Azure Cosmos DB s klíči spravovanými zákazníkem musíme zajistit, aby měl přístup ke klíčům, které zákazník použil. Ve scénářích s jedním tenantem buď udělte přímému trezoru klíčů přístup k objektu zabezpečení služby Azure Cosmos DB, nebo použijte konkrétní spravovanou identitu. Ve scénáři mezi tenanty už nemůžeme záviset na přímém přístupu k trezoru klíčů, protože je v jiném tenantovi spravovaném zákazníkem. Toto omezení je důvodem v předchozích částech, kdy jsme vytvořili aplikaci napříč tenanty a zaregistrovali spravovanou identitu v aplikaci, aby získala přístup k trezoru klíčů zákazníka. Tato spravovaná identita, ve spojení s ID aplikace mezi tenanty, je to, co použijeme při vytváření účtu CMK mezi tenanty Azure Cosmos DB. Další informace najdete ve fázi 3 – Poskytovatel služeb šifruje data v prostředku Azure pomocí části klíč spravovaný zákazníkem tohoto článku.
Pokaždé, když je v trezoru klíčů dostupná nová verze klíče, automaticky se aktualizuje v účtu služby Azure Cosmos DB.
Použití šablon JSON Azure Resource Manageru
Nasaďte šablonu ARM s následujícími konkrétními parametry:
Poznámka:
Pokud tuto ukázku vytváříte znovu v některé ze šablon Azure Resource Manageru, použijte některou apiVersion
z těchto 2022-05-15
šablon .
Parametr | Popis | Příklad hodnoty |
---|---|---|
keyVaultKeyUri |
Identifikátor klíče spravovaného zákazníkem umístěný v trezoru klíčů poskytovatele služeb. | https://my-vault.vault.azure.com/keys/my-key |
identity |
Objekt určující, že spravovaná identita by měla být přiřazena k účtu služby Azure Cosmos DB. | "identity":{"type":"UserAssigned","userAssignedIdentities":{"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity":{}}} |
defaultIdentity |
Kombinace ID prostředku spravované identity a ID aplikace víceklientové aplikace Microsoft Entra. | UserAssignedIdentity=/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity&FederatedClientId=aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
Tady je příklad segmentu šablony s nakonfigurovanými třemi parametry:
{
"kind": "GlobalDocumentDB",
"location": "East US 2",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity": {}
}
},
"properties": {
"locations": [
{
"locationName": "East US 2",
"failoverPriority": 0,
"isZoneRedundant": false
}
],
"databaseAccountOfferType": "Standard",
"keyVaultKeyUri": "https://my-vault.vault.azure.com/keys/my-key",
"defaultIdentity": "UserAssignedIdentity=/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity&FederatedClientId=aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
}
}
Důležité
Tato funkce se zatím nepodporuje v Azure PowerShellu, Azure CLI nebo na webu Azure Portal.
Při vytváření nového účtu služby Azure Cosmos DB nemůžete nakonfigurovat klíče spravované zákazníkem s konkrétní verzí klíče. Samotný klíč musí být předán bez verzí a bez koncových zpětných lomítek.
Pokud chcete odvolat nebo zakázat klíče spravované zákazníkem, přečtěte si téma Konfigurace klíčů spravovaných zákazníkem pro účet služby Azure Cosmos DB pomocí služby Azure Key Vault.