Share via


crittografa i dischi gestiti con chiavi gestite dal cliente tra tenant

Questo articolo illustra la creazione di una soluzione in cui si crittografa i dischi gestiti con chiavi gestite dal cliente usando Azure Key Vault archiviati in un tenant Microsoft Entra diverso. Questa configurazione può essere ideale per diversi scenari, ad esempio supporto tecnico di Azure per i provider di servizi che vogliono offrire ai clienti chiavi di crittografia bring your own in cui le risorse del tenant del provider di servizi vengono crittografate con chiavi dal tenant del cliente.

Un set di crittografia del disco con identità federata in un flusso di lavoro cmk multi-tenant si estende su risorse del provider di servizi/ISV (set di crittografia dischi, identità gestite e registrazioni delle app) e risorse del tenant del cliente (app aziendali, assegnazioni di ruolo utente e insieme di credenziali delle chiavi). In questo caso, la risorsa di Azure di origine è il set di crittografia dischi del provider di servizi.

In caso di domande sulle chiavi gestite dal cliente tra tenant con dischi gestiti, inviare un messaggio di posta elettronica crosstenantcmkvteam@service.microsoft.coma .

Limiti

  • Managed Disks e Key Vault del cliente devono trovarsi nella stessa area di Azure, ma possono trovarsi in sottoscrizioni diverse.
  • Questa funzionalità non supporta dischi Ultra o dischi gestiti ssd Premium di Azure v2.
  • Questa funzionalità non è disponibile in Microsoft Azure gestita da cloud 21Vianet o per enti pubblici.

Informazioni sulle chiavi gestite dal cliente tra tenant

Molti provider di servizi che creano offerte SaaS (Software as a Service) in Azure vogliono offrire ai clienti la possibilità di gestire le proprie chiavi di crittografia. Le chiavi gestite dal cliente consentono a un provider di servizi di crittografare i dati del cliente usando una chiave di crittografia gestita dal cliente del provider di servizi e che non è accessibile al provider di servizi. In Azure, il cliente del provider di servizi può usare Azure Key Vault per gestire le chiavi di crittografia nel proprio tenant e sottoscrizione di Microsoft Entra.

I servizi e le risorse della piattaforma Azure di proprietà del provider di servizi e che risiedono nel tenant del provider di servizi richiedono l'accesso alla chiave dal tenant del cliente per eseguire le operazioni di crittografia/decrittografia.

L'immagine seguente mostra una crittografia dei dati inattivi con identità federata in un flusso di lavoro CMK tra tenant che si estende su un provider di servizi e il relativo cliente.

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

Nell'esempio precedente sono presenti due tenant di Microsoft Entra: il tenant di un provider di servizi indipendenti (tenant 1) e il tenant di un cliente (tenant 2). Il tenant 1 ospita i servizi della piattaforma Azure e il tenant 2 ospita l'insieme di credenziali delle chiavi del cliente.

La registrazione di un'applicazione multi-tenant viene creata dal provider di servizi nel tenant 1. In questa applicazione viene creata una credenziale di identità federata usando un'identità gestita assegnata dall'utente. Il nome e l'ID applicazione dell'app vengono quindi condivisi con il cliente.

Un utente con le autorizzazioni appropriate installa l'applicazione del provider di servizi nel tenant del cliente, Tenant 2. Un utente concede quindi all'entità servizio associato all'applicazione installata l'accesso all'insieme di credenziali delle chiavi del cliente. Il cliente archivia anche la chiave di crittografia o la chiave gestita dal cliente nell'insieme di credenziali delle chiavi. Il cliente condivide il percorso della chiave (l'URL della chiave) con il provider di servizi.

Il provider di servizi dispone ora di:

  • ID applicazione per un'applicazione multi-tenant installata nel tenant del cliente, a cui è stato concesso l'accesso alla chiave gestita dal cliente.
  • Identità gestita configurata come credenziale nell'applicazione multi-tenant.
  • Posizione della chiave nell'insieme di credenziali delle chiavi del cliente.

Con questi tre parametri, il provider di servizi effettua il provisioning delle risorse di Azure nel tenant 1 che possono essere crittografate con la chiave gestita dal cliente nel tenant 2.

Dividiamo la soluzione end-to-end precedente in tre fasi:

  1. Il provider di servizi configura le identità.
  2. Il cliente concede all'app multi-tenant del provider di servizi l'accesso a una chiave di crittografia in Azure Key Vault.
  3. Il provider di servizi crittografa i dati in una risorsa di Azure usando la chiave gestita dal cliente.

Le operazioni nella fase 1 sono una configurazione una tantum per la maggior parte delle applicazioni del provider di servizi. Le operazioni nelle fasi 2 e 3 si ripeterebbero per ogni cliente.

Fase 1: il provider di servizi configura un'applicazione Microsoft Entra

Procedi Descrizione Ruolo minimo nel controllo degli accessi in base al ruolo di Azure Ruolo minimo in Controllo degli accessi in base al ruolo di Microsoft Entra
1. Creare una nuova registrazione dell'applicazione Microsoft Entra multi-tenant o iniziare con una registrazione dell'applicazione esistente. Prendere nota dell'ID applicazione (ID client) della registrazione dell'applicazione usando portale di Azure, l'API Microsoft Graph, Azure PowerShell o l'interfaccia della riga di comando di Azure None Sviluppatore di applicazioni
2. Creare un'identità gestita assegnata dall'utente (da usare come credenziale di identità federata).
portale di Azure I modelli di Azure Resource Manager dell'interfaccia della riga di comando di / Azure PowerShell/ /
Collaboratore identità gestita None
3. Configurare l'identità gestita assegnata dall'utente come credenziale di identità federata nell'applicazione, in modo che possa rappresentare l'identità dell'applicazione.
Informazioni di riferimento/ sulle API Graph portale di Azure/ Azure CLI/ di Azure PowerShell
None Proprietario dell'applicazione
4. Condividere il nome dell'applicazione e l'ID applicazione con il cliente, in modo che possano installare e autorizzare l'applicazione. None None

Considerazioni per i provider di servizi

  • I modelli di Azure Resource Manager (ARM) non sono consigliati per la creazione di applicazioni Microsoft Entra.
  • La stessa applicazione multi-tenant può essere usata per accedere alle chiavi in un numero qualsiasi di tenant, ad esempio Tenant 2, Tenant 3, Tenant 4 e così via. In ogni tenant viene creata un'istanza indipendente dell'applicazione con lo stesso ID applicazione ma un ID oggetto diverso. Ogni istanza di questa applicazione viene quindi autorizzata in modo indipendente. Si consideri il modo in cui l'oggetto applicazione usato per questa funzionalità viene usato per partizionare l'applicazione in tutti i clienti.
  • In rari scenari, un provider di servizi potrebbe usare un singolo oggetto Application per ogni cliente, ma richiede costi di manutenzione significativi per gestire le applicazioni su larga scala in tutti i clienti.
  • Nel tenant del provider di servizi non è possibile automatizzare la verifica del server di pubblicazione.

Fase 2: il cliente autorizza l'accesso all'insieme di credenziali delle chiavi

Procedi Descrizione Ruoli controllo degli accessi in base al ruolo di Azure con privilegi minimi Ruoli di Microsoft Entra con privilegi minimi
1.
  • Consigliato: inviare l'utente per accedere all'app. Se l'utente può accedere, nel tenant esiste un'entità servizio per l'app.
  • Usare Microsoft Graph, Microsoft Graph PowerShell, Azure PowerShell o l'interfaccia della riga di comando di Azure per creare l'entità servizio.
  • Creare un URL di consenso amministratore e concedere il consenso a livello di tenant per creare l'entità servizio usando l'ID applicazione.
  • None Utenti con autorizzazioni per installare le applicazioni
    2. Creare un insieme di credenziali delle chiavi di Azure e una chiave usata come chiave gestita dal cliente. A un utente deve essere assegnato il ruolo Collaboratore Key Vault per creare l'insieme di credenziali delle chiavi

    A un utente deve essere assegnato il ruolo Crypto Officer dell'insieme di credenziali delle chiavi per aggiungere una chiave all'insieme di credenziali delle chiavi
    None
    3. Concedere all'identità dell'applicazione concessa l'accesso all'insieme di credenziali delle chiavi di Azure assegnando il ruolo Key Vault Crypto Service Encryption User Per assegnare il ruolo utente crittografia servizio di crittografia dell'insieme di credenziali delle chiavi all'applicazione, è necessario aver assegnato il ruolo Accesso utente Amministrazione istrator. None
    4. Copiare l'URL dell'insieme di credenziali delle chiavi e il nome della chiave nella configurazione delle chiavi gestite dal cliente dell'offerta SaaS. None None

    Nota

    Per autorizzare l'accesso al modulo di protezione hardware gestito per la crittografia tramite cmk, vedere l'esempio per Archiviazione Account qui. Per altre informazioni sulla gestione delle chiavi con HSM gestito, vedere Gestire un modulo di protezione hardware gestito tramite l'interfaccia della riga di comando di Azure

    Considerazioni per i clienti dei provider di servizi

    • Nel tenant del cliente, Tenant 2, un amministratore può impostare criteri per impedire agli utenti non amministratori di installare le applicazioni. Questi criteri possono impedire agli utenti non amministratori di creare entità servizio. Se questi criteri sono configurati, è necessario coinvolgere gli utenti con le autorizzazioni per creare entità servizio.
    • L'accesso ad Azure Key Vault può essere autorizzato usando il controllo degli accessi in base al ruolo di Azure o i criteri di accesso. Quando si concede l'accesso a un insieme di credenziali delle chiavi, assicurarsi di usare il meccanismo attivo per l'insieme di credenziali delle chiavi.
    • Una registrazione dell'applicazione Microsoft Entra ha un ID applicazione (ID client). Quando l'applicazione viene installata nel tenant, viene creata un'entità servizio. L'entità servizio condivide lo stesso ID applicazione della registrazione dell'app, ma genera il proprio ID oggetto. Quando si autorizza l'applicazione ad avere accesso alle risorse, potrebbe essere necessario usare l'entità Name servizio o ObjectID la proprietà .

    Fase 3: il provider di servizi crittografa i dati in una risorsa di Azure usando la chiave gestita dal cliente

    Al termine delle fasi 1 e 2, il provider di servizi può configurare la crittografia nella risorsa di Azure con la chiave e l'insieme di credenziali delle chiavi nel tenant del cliente e la risorsa di Azure nel tenant dell'ISV. Il provider di servizi può configurare chiavi gestite dal cliente tra tenant con gli strumenti client supportati da tale risorsa di Azure, con un modello di Resource Manager o con l'API REST.

    Configurare chiavi gestite dal cliente tra tenant

    Questa sezione descrive come configurare una chiave gestita dal cliente multi-tenant e crittografare i dati dei clienti. Si apprenderà come crittografare i dati dei clienti in una risorsa in Tenant1 usando una chiave gestita dal cliente archiviata in un insieme di credenziali delle chiavi in Tenant2. È possibile usare il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure.

    Accedere al portale di Azure e seguire questa procedura.

    Il provider di servizi configura le identità

    I passaggi seguenti vengono eseguiti dal provider di servizi nel tenant tenant del provider di servizi Tenant1.

    Il provider di servizi crea una nuova registrazione dell'app multi-tenant

    È possibile creare una nuova registrazione dell'applicazione Microsoft Entra multi-tenant o iniziare con una registrazione dell'applicazione multi-tenant esistente. Se si inizia con una registrazione dell'applicazione esistente, prendere nota dell'ID applicazione (ID client) dell'applicazione.

    Per creare una nuova registrazione:

    1. Cercare Microsoft Entra ID nella casella di ricerca. Individuare e selezionare l'estensione Microsoft Entra ID .

    2. Selezionare Gestisci > Registrazioni app nel riquadro sinistro.

    3. Seleziona + Nuova registrazione.

    4. Specificare il nome per la registrazione dell'applicazione e selezionare Account in qualsiasi directory organizzativa (qualsiasi directory Microsoft Entra - Multitenant).

    5. Selezionare Registra.

    6. Prendere nota di ApplicationId/ClientId dell'applicazione.

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

    Il provider di servizi crea un'identità gestita assegnata dall'utente

    Creare un'identità gestita assegnata dall'utente da usare come credenziale di identità federata.

    1. Cercare Identità gestite nella casella di ricerca. Individuare e selezionare l'estensione Identità gestite.

    2. Seleziona + Crea.

    3. Specificare il gruppo di risorse, l'area e il nome per l'identità gestita.

    4. Selezionare Rivedi e crea.

    5. Al termine della distribuzione, prendere nota dell'ID risorsa di Azure dell'identità gestita assegnata dall'utente, disponibile in Proprietà. Ad esempio:

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

    Il provider di servizi configura l'identità gestita assegnata dall'utente come credenziale federata nell'applicazione

    Configurare un'identità gestita assegnata dall'utente come credenziale di identità federata nell'applicazione, in modo che possa rappresentare l'identità dell'applicazione.

    1. Passare a Microsoft Entra ID > Registrazioni app'applicazione>.

    2. Selezionare Certificati e segreti.

    3. Selezionare Credenziali federate.

      Screen shot showing how to navigate to Certificate and secrets.

    4. Selezionare + Aggiungi credenziali.

    5. In Scenario di credenziali federate selezionare Chiavi gestite dal cliente.

    6. Fare clic su Seleziona un'identità gestita. Nel riquadro selezionare la sottoscrizione. In Identità gestita selezionare Identità gestita assegnata dall'utente. Nella casella Seleziona cercare l'identità gestita creata in precedenza, quindi fare clic su Seleziona nella parte inferiore del riquadro.

      Screen shot showing how to select a managed identity.

    7. In Dettagli credenziali specificare un nome e una descrizione facoltativa per le credenziali e selezionare Aggiungi.

      Screen shot showing how to add a credential.

    Il provider di servizi condivide l'ID applicazione con il cliente

    Trovare l'ID applicazione (ID client) dell'applicazione multi-tenant e condividerlo con il cliente.

    Il cliente concede all'app del provider di servizi l'accesso alla chiave nell'insieme di credenziali delle chiavi

    I passaggi seguenti vengono eseguiti dal cliente nel tenant del cliente Tenant2. Il cliente può usare il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure.

    L'utente che esegue i passaggi deve essere un amministratore con un ruolo con privilegi, ad esempio Application Amministrazione istrator, Cloud Application Amministrazione istrator o Global Amministrazione istrator.

    Accedere al portale di Azure e seguire questa procedura.

    Il cliente installa l'applicazione del provider di servizi nel tenant del cliente

    Per installare l'applicazione registrata del provider di servizi nel tenant del cliente, creare un'entità servizio con l'ID applicazione dall'app registrata. È possibile creare l'entità servizio in uno dei modi seguenti:

    Il cliente crea un insieme di credenziali delle chiavi

    Per creare l'insieme di credenziali delle chiavi, all'account dell'utente deve essere assegnato il ruolo Collaboratore Key Vault o un altro ruolo che consente la creazione di un insieme di credenziali delle chiavi.

    1. Dal menu portale di Azure o dalla home page selezionare + Crea una risorsa. Nella casella Cerca immettere Insiemi di credenziali delle chiavi. Nell'elenco dei risultati selezionare Insiemi di credenziali delle chiavi. Nella pagina Insiemi di credenziali delle chiavi selezionare Crea.

    2. Nella scheda Informazioni di base scegliere una sottoscrizione. In Gruppo di risorse selezionare Crea nuovo e immettere un nome per il gruppo di risorse.

    3. Immettere un nome univoco per l'insieme di credenziali delle chiavi.

    4. Selezionare un'area e un piano tariffario.

    5. Abilitare la protezione dall'eliminazione per il nuovo insieme di credenziali delle chiavi.

    6. Nella scheda Criteri di accesso selezionare Controllo degli accessi in base al ruolo di Azure per Modello di autorizzazione.

    7. Selezionare Rivedi e crea e quindi Crea.

      Screen shot showing how to create a key vault.

    Prendere nota del nome dell'insieme di credenziali delle chiavi e delle applicazioni URI che accedono all'insieme di credenziali delle chiavi deve usare questo URI.

    Per altre informazioni, vedere Avvio rapido: Creare un'istanza di Azure Key Vault con il portale di Azure.

    Il cliente assegna il ruolo Key Vault Crypto Officer a un account utente

    Questo passaggio garantisce che sia possibile creare chiavi di crittografia.

    1. Passare all'insieme di credenziali delle chiavi e selezionare Controllo di accesso (IAM) nel riquadro sinistro.
    2. Sotto Concedi l'accesso a questa risorsa, seleziona Aggiungi assegnazione ruolo.
    3. Cercare e selezionare Key Vault Crypto Officer.
    4. In Membri selezionare Utente, gruppo o entità servizio.
    5. Selezionare Membri e cercare l'account utente.
    6. Selezionare Rivedi + Assegna.

    Il cliente crea una chiave di crittografia

    Per creare la chiave di crittografia, all'account dell'utente deve essere assegnato il ruolo Agente di crittografia dell'insieme di credenziali delle chiavi o un altro ruolo che consente la creazione di una chiave.

    1. Nella pagina delle proprietà dell'insieme di credenziali delle chiavi selezionare Chiavi.
    2. Seleziona Genera/Importa.
    3. Nella schermata Crea una chiave specificare un nome per la chiave. Lasciare invariati gli altri valori predefiniti.
    4. Seleziona Crea.
    5. Copiare l'URI della chiave.

    Il cliente concede all'applicazione del provider di servizi l'accesso all'insieme di credenziali delle chiavi

    Assegnare il ruolo Del controllo degli accessi in base al ruolo di Azure Key Vault Crypto Service Encryption User all'applicazione registrata del provider di servizi in modo che possa accedere all'insieme di credenziali delle chiavi.

    1. Passare all'insieme di credenziali delle chiavi e selezionare Controllo di accesso (IAM) nel riquadro sinistro.
    2. Sotto Concedi l'accesso a questa risorsa, seleziona Aggiungi assegnazione ruolo.
    3. Cercare e selezionare Key Vault Crypto Service Encryption User (Utente crittografia del servizio di crittografia dell'insieme di credenziali delle chiavi).
    4. In Membri selezionare Utente, gruppo o entità servizio.
    5. Selezionare Membri e cercare il nome dell'applicazione installata dal provider di servizi.
    6. Selezionare Rivedi + Assegna.

    È ora possibile configurare le chiavi gestite dal cliente con l'URI e la chiave dell'insieme di credenziali delle chiavi.

    Creare un set di crittografia del disco

    Dopo aver creato l'insieme di credenziali delle chiavi di Azure ed eseguito le configurazioni necessarie di Microsoft Entra, distribuire un set di crittografia del disco configurato per funzionare tra tenant e associarlo a una chiave nell'insieme di credenziali delle chiavi. A tale scopo, è possibile usare il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure. È anche possibile usare un modello di Resource Manager o un'API REST.

    Per usare il portale di Azure, accedere al portale e seguire questa procedura.

    1. Selezionare + Crea una risorsa, cercare Set di crittografia dischi e selezionare Crea > set di crittografia dischi.

    2. In Dettagli progetto selezionare la sottoscrizione e il gruppo di risorse in cui creare il set di crittografia del disco.

    3. In Dettagli istanza specificare un nome per il set di crittografia del disco.

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

    4. Selezionare l'area in cui creare il set di crittografia del disco.

    5. Per Tipo di crittografia selezionare Crittografia dei dati inattivi con una chiave gestita dal cliente.

    6. In Chiave di crittografia selezionare il pulsante di opzione Immetti chiave dall'URI e quindi immettere l'URI chiave della chiave creata nel tenant del cliente.

    7. In Identità assegnata dall'utente selezionare Seleziona un'identità.

    8. Selezionare l'identità gestita assegnata dall'utente creata in precedenza nel tenant dell'ISV e quindi selezionare Aggiungi.

    9. In Applicazione multi-tenant selezionare Seleziona un'applicazione.

    10. Selezionare l'applicazione registrata multi-tenant creata in precedenza nel tenant dell'ISV e fare clic su Seleziona.

    11. Selezionare Rivedi e crea.

    Usare un modello di Azure Resource Manager

    {
      "$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')]"
          }
        }
      ]
    }
    

    Usare l'API REST

    Usare il token di connessione come intestazione di autorizzazione e application/JSON come tipo di contenuto in BODY. (scheda Rete, filtrare in management.azure durante l'esecuzione di qualsiasi richiesta ARM nel portale).

    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>"
      }
    }
    

    Passaggi successivi

    Vedere anche: