Chiavi gestite dal cliente per la crittografia di Inoltro fluido di Azure

È possibile usare la propria chiave di crittografia per proteggere i dati nella risorsa di Inoltro fluido di Azure. Quando si specifica una chiave gestita dal cliente , tale chiave viene usata per proteggere e controllare l'accesso alla chiave che crittografa i dati. La chiave gestita dal cliente offre maggiore flessibilità per gestire i controlli di accesso.

È necessario usare uno degli archivi chiavi di Azure seguenti per archiviare la chiave gestita dal cliente:

È necessario creare una nuova risorsa di Inoltro fluido di Azure per abilitare la chiave gestita dal cliente. Non è possibile modificare l'abilitazione/disabilitazione della chiave gestita dal cliente in una risorsa di inoltro fluido esistente.

Inoltre, la chiave cmk di fluid relay si basa sull'identità gestita ed è necessario assegnare un'identità gestita alla risorsa di inoltro fluido durante l'abilitazione della chiave gestita. Solo l'identità assegnata dall'utente è consentita per cmk della risorsa di inoltro fluido. Per altre informazioni sulle identità gestite, vedere qui.

Non è ancora possibile configurare una risorsa di inoltro fluido con la chiave gestita dal cliente tramite portale di Azure.

Quando si configura la risorsa Di inoltro fluido con la chiave gestita dal cliente, il servizio Inoltro fluido di Azure configura le impostazioni crittografate della chiave gestita appropriate nell'ambito dell'account Archiviazione di Azure in cui vengono archiviati gli artefatti della sessione Fluid. Per altre informazioni su CMK in Archiviazione di Azure, vedere qui.

Per verificare che una risorsa di inoltro fluido usi cmk, è possibile controllare la proprietà della risorsa inviando GET e verificare se ha una proprietà valida e non vuota di encryption.customerManagedKeyEncryption.

Prerequisiti:

Prima di configurare cmk nella risorsa di Inoltro fluido di Azure, è necessario soddisfare i prerequisiti seguenti:

  • Le chiavi devono essere archiviate in un insieme di credenziali delle chiavi di Azure.
  • Le chiavi devono essere chiave RSA e non chiave EC perché la chiave EC non supporta WRAP e UNWRAP.
  • Un'identità gestita assegnata dall'utente deve essere creata con l'autorizzazione necessaria (GET, WRAP e UNWRAP) all'insieme di credenziali delle chiavi nel passaggio 1. Ulteriori informazioni sono disponibili qui. Concedere GET, WRAP e UNWRAP in Autorizzazioni chiave in AKV.
  • Azure Key Vault, identità assegnata dall'utente e la risorsa Fluid Relay devono trovarsi nella stessa area e nello stesso tenant di Microsoft Entra.

Creare una risorsa di inoltro fluido con la chiave gestita dal cliente

PUT https://management.azure.com/subscriptions/<subscription ID>/resourceGroups/<resource group name> /providers/Microsoft.FluidRelay/fluidRelayServers/< Fluid Relay resource name>?api-version=2022-06-01 @"<path to request payload>" 

Formato payload della richiesta:

{ 
    "location": "<the region you selected for Fluid Relay resource>", 
    "identity": { 
        "type": "UserAssigned", 
        "userAssignedIdentities": { 
            “<User assigned identity resource ID>": {} 
        } 
    }, 
    "properties": { 
       "encryption": { 
            "customerManagedKeyEncryption": { 
                "keyEncryptionKeyIdentity": { 
                    "identityType": "UserAssigned", 
                    "userAssignedIdentityResourceId":  "<User assigned identity resource ID>" 
                }, 
                "keyEncryptionKeyUrl": "<key identifier>" 
            } 
        } 
    } 
} 

UserAssignedIdentities di esempio e userAssignedIdentityResourceId: /subscriptions/ xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testUserAssignedIdentity

Chiave di esempioEncryptionKeyUrl: https://test-key-vault.vault.azure.net/keys/testKey/testKeyVersionGuid

Note:

  • Identity.type deve essere UserAssigned. È il tipo di identità dell'identità gestita assegnata alla risorsa di inoltro fluido.
  • Properties.encryption.customerManagedKeyEncryption.keyEncryptionKeyIdentity.identityType deve essere UserAssigned. È il tipo di identità dell'identità gestita che deve essere usata per la chiave gestita.
  • Anche se è possibile specificare più di una in Identity.userAssignedIdentities, verrà usata solo un'identità utente assegnata alla risorsa di inoltro fluido specificata per l'accesso della chiave del token di gestione chiavi all'insieme di credenziali delle chiavi per la crittografia.
  • Properties.encryption.customerManagedKeyEncryption.keyEncryptionKeyIdentity.userAssignedIdentityResourceId è l'ID risorsa dell'identità assegnata dall'utente che deve essere usata per cmk. Si noti che deve essere una delle identità in Identity.userAssignedIdentities (è necessario assegnare l'identità alla risorsa di inoltro fluido prima di poterla usare per cmk). Inoltre, deve disporre delle autorizzazioni necessarie per la chiave (fornita da keyEncryptionKeyUrl).
  • Properties.encryption.customerManagedKeyEncryption.keyEncryptionKeyUrl è l'identificatore di chiave usato per cmk.

Aggiornare le impostazioni cmk di una risorsa di inoltro fluido esistente

È possibile aggiornare le impostazioni cmk seguenti nella risorsa di inoltro fluido esistente:

  • Modificare l'identità usata per accedere alla chiave di crittografia della chiave.
  • Modificare l'identificatore della chiave di crittografia della chiave (URL della chiave).
  • Modificare la versione della chiave di crittografia della chiave.

Si noti che non è possibile disabilitare cmk sulla risorsa di inoltro fluido esistente dopo l'abilitazione.

URL della richiesta:

PATCH https://management.azure.com/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.FluidRelay/fluidRelayServers/<fluid relay server name>?api-version=2022-06-01 @"path to request payload" 

Esempio di payload della richiesta per l'aggiornamento dell'URL della chiave di crittografia della chiave:

{ 
    "properties": { 
       "encryption": { 
            "customerManagedKeyEncryption": { 
                "keyEncryptionKeyUrl": "https://test_key_vault.vault.azure.net/keys/testKey /xxxxxxxxxxxxxxxx" 
            } 
        } 
    } 
}

Vedi anche