Šifrování spravovaných disků pomocí klíčů spravovaných zákazníkem napříč tenanty

Tento článek popisuje vytvoření řešení, ve kterém šifrujete spravované disky pomocí klíčů spravovaných zákazníkem pomocí služby Azure Key Vault uložených v jiném tenantovi Microsoft Entra. Tato konfigurace může být ideální pro několik scénářů. Jedním z příkladů je podpora Azure pro poskytovatele služeb, kteří chtějí svým zákazníkům nabízet šifrovací klíče s použitím vlastních šifrovacích klíčů, kde jsou prostředky z tenanta poskytovatele služeb šifrované pomocí klíčů z tenanta zákazníka.

Sada šifrování disků s federovanou identitou v pracovním postupu CMK napříč tenanty zahrnuje prostředky zprostředkovatele služeb nebo poskytovatele softwaru (sada šifrování disků, spravované identity a registrace aplikací) a prostředky tenanta zákazníka (podnikové aplikace, přiřazení rolí uživatelů a trezor klíčů). V tomto případě je zdrojovým prostředkem Azure sada šifrování disků poskytovatele služeb.

Pokud máte dotazy týkající se klíčů spravovaných zákazníkem napříč tenanty se spravovanými disky, e-mail crosstenantcmkvteam@service.microsoft.com.

Omezení

  • Spravované disky a key Vault zákazníka musí být ve stejné oblasti Azure, ale můžou být v různých předplatných.
  • Tato funkce nepodporuje disky Úrovně Ultra ani spravované disky Azure PREMIUM SSD v2.
  • Tato funkce není dostupná v Microsoft Azure provozovaných cloudy 21Vianet nebo Government.

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.

Screenshot showing a cross-tenant CMK with a federated identity.

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í:

  1. Zprostředkovatel služeb konfiguruje identity.
  2. Zákazník udělí víceklientské aplikaci poskytovatele služeb přístup k šifrovacímu klíči ve službě Azure Key Vault.
  3. 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.
  • 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.
  • Doporučeno: Pošlete uživateli, aby se přihlásil do aplikace. Pokud se uživatel může přihlásit, pak ve svém tenantovi existuje instanční objekt vaší aplikace.
  • K 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 k vytvoření instančního objektu pomocí ID aplikace.
  • 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 User Access Správa istrator. 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 nebo ObjectID 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:

    1. Do vyhledávacího pole vyhledejte ID Microsoft Entra. Vyhledejte a vyberte rozšíření Microsoft Entra ID .

    2. V levém podokně vyberte Spravovat > Registrace aplikací.

    3. Vyberte + Nová registrace.

    4. Zadejte název registrace aplikace a vyberte Účet v libovolném organizačním adresáři (Libovolný adresář Microsoft Entra – Víceklient).

    5. Vyberte Zaregistrovat.

    6. Poznamenejte si ID aplikace nebo CLIENTID aplikace.

      Screen shot showing how to create a new multi-tenant application registration.

    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.

    1. Ve vyhledávacím poli vyhledejte spravované identity . Vyhledejte a vyberte rozšíření Spravované identity .

    2. Vyberte + Vytvořit.

    3. Zadejte skupinu prostředků, oblast a název spravované identity.

    4. Vyberte Zkontrolovat a vytvořit.

    5. 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

      Screen shot showing how to create a resource group and a user-assigned managed identity.

    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.

    1. Přejděte na Microsoft Entra ID > Registrace aplikací > vaší aplikaci.

    2. Vyberte Certifikáty a tajné kódy.

    3. Vyberte federované přihlašovací údaje.

      Screen shot showing how to navigate to Certificate and secrets.

    4. Vyberte + Přidat přihlašovací údaje.

    5. V části Scénář federovaných přihlašovacích údajů vyberte Klíče spravované zákazníkem.

    6. 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.

      Screen shot showing how to select a managed identity.

    7. V části Podrobnosti přihlašovacích údajů zadejte název a volitelný popis přihlašovacích údajů a vyberte Přidat.

      Screen shot showing how to add a credential.

    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 application Správa istrator, cloudová aplikace Správa istrator nebo globální Správa istrator.

    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ů:

    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íčů.

    1. 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.

    2. Na kartě Základy zvolte předplatné. V části Skupina prostředků vyberte Vytvořit nový a zadejte název skupiny prostředků.

    3. Zadejte jedinečný název trezoru klíčů.

    4. Vyberte oblast a cenovou úroveň.

    5. Povolte ochranu před vymazáním pro nový trezor klíčů.

    6. Na kartě Zásady přístupu vyberte řízení přístupu na základě role Azure pro model oprávnění.

    7. Vyberte Zkontrolovat a vytvořit a pak Vytvořit.

      Screen shot showing how to create a key vault.

    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.

    1. Přejděte do trezoru klíčů a v levém podokně vyberte Řízení přístupu (IAM ).
    2. V části Udělit přístup k tomuto zdroji vyberte Přidat přiřazení role.
    3. Vyhledejte a vyberte kryptografický důstojník služby Key Vault.
    4. V části Členové vyberte Uživatele, skupinu nebo instanční objekt.
    5. Vyberte Členy a vyhledejte svůj uživatelský účet.
    6. 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.

    1. Na stránce vlastností služby Key Vault vyberte Klíče.
    2. Vyberte Generovat/importovat.
    3. Na obrazovce Vytvořit klíč zadejte název klíče. U ostatních hodnot ponechte jejich výchozí nastavení.
    4. Vyberte Vytvořit.
    5. 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íčů.

    1. Přejděte do trezoru klíčů a v levém podokně vyberte Řízení přístupu (IAM ).
    2. V části Udělit přístup k tomuto zdroji vyberte Přidat přiřazení role.
    3. Vyhledejte a vyberte uživatele šifrování šifrovací služby Key Vault.
    4. V části Členové vyberte Uživatele, skupinu nebo instanční objekt.
    5. Vyberte Členy a vyhledejte název aplikace, kterou jste nainstalovali od poskytovatele služeb.
    6. 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í sady šifrování disku

    Teď, když jste vytvořili službu Azure Key Vault a provedli požadované konfigurace Microsoft Entra, nasaďte sadu šifrování disku nakonfigurovanou tak, aby fungovala napříč tenanty, a přidružte ji ke klíči v trezoru klíčů. Můžete to provést pomocí webu Azure Portal, Azure PowerShellu nebo Azure CLI. Můžete také použít šablonu ARM nebo rozhraní REST API.

    Pokud chcete použít Azure Portal, přihlaste se k portálu a postupujte podle těchto kroků.

    1. Vyberte + Vytvořit prostředek, vyhledejte sadu šifrování disků a vyberte Vytvořit > sadu šifrování disku.

    2. V části Podrobnosti projektu vyberte předplatné a skupinu prostředků, ve které chcete vytvořit sadu šifrování disku.

    3. V části Podrobnosti instance zadejte název sady šifrování disku.

      Screenshot showing how to enter the project and instance details to create a new disk encryption set.

    4. Vyberte oblast, ve které chcete vytvořit sadu šifrování disku.

    5. Jako typ šifrování vyberte Šifrování neaktivních uložených uložených dat pomocí klíče spravovaného zákazníkem.

    6. V části Šifrovací klíč vyberte klíč Enter z přepínače identifikátoru URI a pak zadejte identifikátor URI klíče vytvořeného v tenantovi zákazníka.

    7. V části Identita přiřazená uživatelem vyberte Vybrat identitu.

    8. Vyberte spravovanou identitu přiřazenou uživatelem, kterou jste vytvořili dříve v tenantovi nezávislých výrobců softwaru, a pak vyberte Přidat.

    9. V části Víceklienta aplikace vyberte Vybrat aplikaci.

    10. Vyberte víceklientskou zaregistrovanou aplikaci, kterou jste vytvořili dříve v tenantovi nezávislých výrobců softwaru, a klikněte na vybrat.

    11. Vyberte Zkontrolovat a vytvořit.

    Použití šablony ARM

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "desname": {
          "defaultValue": "<Enter ISV disk encryption set name>",
          "type": "String"
        },
        "region": {
          "defaultValue": "WestCentralUS",
          "type": "String"
        },
        "userassignedmicmk": {
          "defaultValue": "/subscriptions/<Enter ISV Subscription Id>/resourceGroups/<Enter ISV resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<Enter ISV User Assigned Identity Name>",
          "type": "String"
        },
        "cmkfederatedclientId": {
          "defaultValue": "<Enter ISV Multi-Tenant App Id>",
          "type": "String"
        },
        "keyVaultURL": {
          "defaultValue": "<Enter Client Key URL>",
          "type": "String"
        },
        "encryptionType": {
          "defaultValue": "EncryptionAtRestWithCustomerKey",
          "type": "String"
        }
      },
      "variables": {},
      "resources": [
        {
          "type": "Microsoft.Compute/diskEncryptionSets",
          "apiVersion": "2021-12-01",
          "name": "[parameters('desname')]",
          "location": "[parameters('region')]",
          "identity": {
            "type": "UserAssigned",
            "userAssignedIdentities": {
              "[parameters('userassignedmicmk')]": {}
            }
          },
          "properties": {
            "activeKey": {
              "keyUrl": "[parameters('keyVaultURL')]"
            },
            "federatedClientId": "[parameters('cmkfederatedclientId')]",
            "encryptionType": "[parameters('encryptionType')]"
          }
        }
      ]
    }
    

    Použití rozhraní REST API

    Použijte nosný token jako autorizační hlavičku a application/JSON jako typ obsahu v TEXTU. (Karta Síť, filtrování na management.azure při provádění jakýchkoli požadavků ARM na portálu.)

    PUT https://management.azure.com/subscriptions/<Enter ISV Subscription Id>/resourceGroups/<Enter ISV Resource Group Name>/providers/Microsoft.Compute/diskEncryptionSets/<Enter ISV Disk Encryption Set Name>?api-version=2021-12-01
    Authorization: Bearer ...
    Content-Type: application/json
    
    {
      "name": "<Enter ISV disk encryption set name>",
      "id": "/subscriptions/<Enter ISV Subscription Id>/resourceGroups/<Enter ISV resource group name>/providers/Microsoft.Compute/diskEncryptionSets/<Enter ISV disk encryption set name>/",
      "type": "Microsoft.Compute/diskEncryptionSets",
      "location": "westcentralus",
      "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
    "/subscriptions/<Enter ISV Subscription Id>/resourceGroups/<Enter ISV resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<Enter ISV User Assigned Identity Name>
    ": {}
        }
      },
      "properties": {
        "activeKey": {
          "keyUrl": "<Enter Client Key URL>"
        },
        "encryptionType": "EncryptionAtRestWithCustomerKey",
        "federatedClientId": "<Enter ISV Multi-Tenant App Id>"
      }
    }
    

    Další kroky

    Viz také: