Condividi tramite


Configurare le chiavi gestite dal cliente per l'account Azure Batch con Azure Key Vault e identità gestita

Per impostazione predefinita, Azure Batch usa chiavi gestite dalla piattaforma per crittografare tutti i dati dei clienti archiviati nel servizio Azure Batch, ad esempio certificati, metadati di processo/attività. Facoltativamente, è possibile usare chiavi personalizzate, ovvero chiavi gestite dal cliente, per crittografare i dati archiviati in Azure Batch.

Le chiavi fornite devono essere generate in Azure Key Vault e devono essere accessibili con identità gestite per le risorse di Azure.

Esistono due tipi di identità gestite: assegnata dal sistema e assegnata dall'utente.

È possibile creare l'account Batch con identità gestita assegnata dal sistema o creare un'identità gestita assegnata dall'utente separata che abbia accesso alle chiavi gestite dal cliente. Esaminare la tabella di confronto per comprendere le differenze e valutare quale opzione funziona meglio per la soluzione. Ad esempio, se si vuole usare la stessa identità gestita per accedere a più risorse di Azure, è necessaria un'identità gestita assegnata dall'utente. In caso contrario, potrebbe essere sufficiente un'identità gestita assegnata dal sistema associata all'account Batch. L'uso di un'identità gestita assegnata dall'utente offre anche la possibilità di applicare chiavi gestite dal cliente alla creazione dell'account Batch, come illustrato di seguito.

Creare un account Batch con identità gestita assegnata dal sistema

Se non è necessaria un'identità gestita assegnata dall'utente separata, è possibile abilitare l'identità gestita assegnata dal sistema quando si crea l'account Batch.

Importante

Un'identità gestita assegnata dal sistema creata per un account Batch per la crittografia dei dati dei clienti, come descritto in questo documento, non può essere usata come identità gestita assegnata dall'utente in un pool di Batch. Se si vuole usare la stessa identità gestita sia nell'account Batch che nel pool di Batch, usare invece un'identità gestita assegnata dall'utente comune.

Portale di Azure

Nel portale di Azure, quando si creano account Batch, selezionare Sistema assegnato nel tipo di identità nella scheda Avanzate.

Screenshot di un nuovo account Batch con tipo di identità assegnato dal sistema.

Dopo aver creato l'account, è possibile trovare un GUID univoco nel campo Id entità di identità nella sezione Proprietà . Il tipo di identità mostrerà System assigned.

Screenshot che mostra un GUID univoco nel campo Id entità di identità.

Questo valore è necessario per concedere all'account Batch l'accesso al Key Vault.

Interfaccia della riga di comando di Azure

Quando si crea un nuovo account Batch, specificare SystemAssigned per il --identity parametro .

resourceGroupName='myResourceGroup'
accountName='mybatchaccount'

az batch account create \
    --name $accountName \
    --resource-group $resourceGroupName \
    --locations regionName='West US 2' \
    --identity 'SystemAssigned'

Dopo aver creato l'account, è possibile verificare che l'identità gestita assegnata dal sistema sia stata abilitata in questo account. Assicurarsi di prendere nota di PrincipalId, perché questo valore è necessario per concedere a questo account Batch l'accesso al Key Vault.

az batch account show \
    --name $accountName \
    --resource-group $resourceGroupName \
    --query identity

Nota

L'identità gestita assegnata dal sistema creata in un account Batch viene usata solo per recuperare le chiavi gestite dal cliente dal Key Vault. Questa identità non è disponibile nei pool di Batch. Per usare un'identità gestita assegnata dall'utente in un pool, vedere Configurare le identità gestite nei pool di Batch.

Creare un'identità gestita assegnata dall'utente

Se si preferisce, è possibile creare un'identità gestita assegnata dall'utente che può essere usata per accedere alle chiavi gestite dal cliente.

Per accedere al Key Vault è necessario il valore ID client di questa identità.

Configurare l'istanza di Azure Key Vault

Il Key Vault di Azure in cui vengono generate le chiavi deve essere creato nello stesso tenant dell'account Batch. Non deve trovarsi nello stesso gruppo di risorse o anche nella stessa sottoscrizione.

Creare un Azure Key Vault

Quando si crea un'istanza di Azure Key Vault con chiavi gestite dal cliente per Azure Batch, assicurarsi che sia abilitata l'eliminazione temporanea e la protezione dall'eliminazione.

Screenshot della schermata di creazione Key Vault.

Aggiungere un criterio di accesso all'istanza di Azure Key Vault

Nella portale di Azure, dopo la creazione del Key Vault, in Criteri di accesso in Impostazione aggiungere l'accesso all'account Batch usando l'identità gestita. In Autorizzazioni chiave selezionare Ottieni, Eseguire il wrapping della chiave e annullare il wrapping della chiave.

Screenshot che mostra la schermata Aggiungi criteri di accesso.

Nel campo Seleziona in Principal compilare una delle opzioni seguenti:

  • Per l'identità gestita assegnata dal sistema: immettere l'oggetto principalId recuperato in precedenza o il nome dell'account Batch.
  • Per l'identità gestita assegnata dall'utente: immettere l'ID client recuperato in precedenza o il nome dell'identità gestita assegnata dall'utente.

Screenshot della schermata Principale.

Generare una chiave in Azure Key Vault

Nella portale di Azure passare all'istanza di Key Vault nella sezione chiave, selezionare Genera/Importa. Selezionare il tipo di chiave per essere RSA e le dimensioni della chiave RSA in modo che siano almeno 2048 bit. EC I tipi di chiave non sono attualmente supportati come chiave gestita dal cliente in un account Batch.

Creare una chiave

Dopo aver creato la chiave, fare clic sulla chiave appena creata e sulla versione corrente, copiare l'identificatore di chiave nella sezione delle proprietà . Assicurarsi che in Operazioni consentiteeseguire il wrapping della chiave e della chiave di annullamento del wrapping sia selezionata.

Abilitare le chiavi gestite dal cliente in un account Batch

Ora che i prerequisiti sono soddisfatti, è possibile abilitare le chiavi gestite dal cliente nell'account Batch.

Portale di Azure

Nella portale di Azure passare alla pagina Account Batch. Nella sezione Crittografia abilitare Chiave gestita dal cliente. È possibile usare direttamente l'identificatore di chiave oppure selezionare l'insieme di credenziali delle chiavi e quindi fare clic su Selezionare un insieme di credenziali delle chiavi e una chiave.

Screenshot che mostra la sezione Crittografia e l'opzione per abilitare la chiave gestita dal cliente

Interfaccia della riga di comando di Azure

Dopo aver creato l'account Batch con l'identità gestita assegnata dal sistema e l'accesso a Key Vault viene concesso, aggiornare l'account Batch con l'URL {Key Identifier} nel keyVaultProperties parametro . --encryption-key-source Impostare anche come Microsoft.KeyVault.

az batch account set \
    --name $accountName \
    --resource-group $resourceGroupName \
    --encryption-key-source Microsoft.KeyVault \
    --encryption-key-identifier {YourKeyIdentifier}

Creare un account Batch con identità gestita assegnata dall'utente e chiavi gestite dal cliente

Ad esempio, usando il client .NET di gestione batch, è possibile creare un account Batch con un'identità gestita assegnata dall'utente e chiavi gestite dal cliente.

EncryptionProperties encryptionProperties = new EncryptionProperties()
{
    KeySource = KeySource.MicrosoftKeyVault,
    KeyVaultProperties = new KeyVaultProperties()
    {
        KeyIdentifier = "Your Key Azure Resource Manager Resource ID"
    }
};

BatchAccountIdentity identity = new BatchAccountIdentity()
{
    Type = ResourceIdentityType.UserAssigned,
    UserAssignedIdentities = new Dictionary<string, BatchAccountIdentityUserAssignedIdentitiesValue>
    {
            ["Your Identity Azure Resource Manager ResourceId"] = new BatchAccountIdentityUserAssignedIdentitiesValue()
    }
};
var parameters = new BatchAccountCreateParameters(TestConfiguration.ManagementRegion, encryption:encryptionProperties, identity: identity);

var account = await batchManagementClient.Account.CreateAsync("MyResourceGroup",
    "mynewaccount", parameters);

Aggiornare la versione della chiave gestita dal cliente

Quando si crea una nuova versione di una chiave, aggiornare l'account Batch per usare la nuova versione. Seguire questa procedura:

  1. Passare all'account Batch in portale di Azure e visualizzare le impostazioni di crittografia.
  2. Immettere l'URI per la nuova versione della chiave. In alternativa, è possibile selezionare di nuovo il Key Vault e la chiave per aggiornare la versione.
  3. Salvare le modifiche.

È anche possibile usare l'interfaccia della riga di comando di Azure per aggiornare la versione.

az batch account set \
    --name $accountName \
    --resource-group $resourceGroupName \
    --encryption-key-identifier {YourKeyIdentifierWithNewVersion}

Suggerimento

È possibile ruotare automaticamente le chiavi creando un criterio di rotazione delle chiavi all'interno di Key Vault. Quando si specifica un identificatore di chiave per l'account Batch, usare l'identificatore di chiave senza versione per abilitare l'autorotazione con un criterio di rotazione valido. Per altre informazioni, vedere come configurare la rotazione delle chiavi in Key Vault.

Usare una chiave diversa per la crittografia Batch

Per modificare la chiave usata per la crittografia Batch, seguire questa procedura:

  1. Passare all'account Batch e visualizzare le impostazioni di crittografia.
  2. Immettere l'URI per la nuova chiave. In alternativa, è possibile selezionare il Key Vault e scegliere una nuova chiave.
  3. Salvare le modifiche.

È anche possibile usare l'interfaccia della riga di comando di Azure per usare una chiave diversa.

az batch account set \
    --name $accountName \
    --resource-group $resourceGroupName \
    --encryption-key-identifier {YourNewKeyIdentifier}

Domande frequenti

  • Le chiavi gestite dal cliente sono supportate per gli account Batch esistenti? No. Le chiavi gestite dal cliente sono supportate solo per i nuovi account Batch.
  • È possibile selezionare dimensioni chiave RSA maggiori di 2048 bit? Sì, sono supportate anche le dimensioni della chiave RSA di 3072 e 4096 i bit.
  • Quali operazioni sono disponibili dopo la revoca di una chiave gestita dal cliente? L'unica operazione consentita è l'eliminazione dell'account se Batch perde l'accesso alla chiave gestita dal cliente.
  • Come ripristinare l'accesso all'account Batch se si elimina accidentalmente la chiave di Key Vault? Poiché la protezione dall'eliminazione e l'eliminazione temporanea sono abilitate, è possibile ripristinare le chiavi esistenti. Per altre informazioni, vedere Ripristinare un Key Vault di Azure.
  • È possibile disabilitare le chiavi gestite dal cliente? È possibile impostare di nuovo il tipo di crittografia dell'account Batch su "Chiave gestita da Microsoft" in qualsiasi momento. In seguito è possibile eliminare o modificare la chiave.
  • Come è possibile ruotare le chiavi? Le chiavi gestite dal cliente non vengono ruotate automaticamente a meno che la chiave non sia in versione a meno che non sia impostata un criterio di rotazione delle chiavi appropriato all'interno di Key Vault. Per ruotare manualmente la chiave, aggiornare l'identificatore di chiave a cui è associato l'account.
  • Dopo aver ripristinato l'accesso quanto tempo richiederà per il funzionamento dell'account Batch? L'accesso può richiedere fino a 10 minuti.
  • Mentre l'account Batch non è disponibile cosa accade alle risorse? Tutti i pool attivi quando batch accede alla chiave gestita dal cliente continueranno a essere eseguiti. Tuttavia, i nodi di questi pool passeranno a uno stato non disponibile e le attività si arresteranno in esecuzione (e verranno riqueuate). Una volta ripristinato l'accesso, i nodi diventano nuovamente disponibili e le attività vengono riavviate.
  • Questo meccanismo di crittografia si applica ai dischi delle macchine virtuali in un pool batch? No. Per i pool di configurazione Servizi cloud (deprecati), non viene applicata alcuna crittografia per il sistema operativo e il disco temporaneo. Per i pool di configurazione della macchina virtuale, il sistema operativo e i dischi dati specificati vengono crittografati con una chiave gestita dalla piattaforma Microsoft per impostazione predefinita. Attualmente non è possibile specificare la propria chiave per questi dischi. Per crittografare il disco temporaneo delle macchine virtuali per un pool batch con una chiave gestita dalla piattaforma Microsoft, è necessario abilitare la proprietà diskEncryptionConfiguration nel pool di configurazione della macchina virtuale . Per ambienti altamente sensibili, è consigliabile abilitare la crittografia dei dischi temporanei ed evitare l'archiviazione dei dati sensibili nei dischi del sistema operativo e dei dati. Per altre informazioni, vedere Creare un pool con crittografia dischi abilitata
  • L'identità gestita assegnata dal sistema nell'account Batch è disponibile nei nodi di calcolo? No. L'identità gestita assegnata dal sistema è attualmente usata solo per accedere all'Key Vault di Azure per la chiave gestita dal cliente. Per usare un'identità gestita assegnata dall'utente nei nodi di calcolo, vedere Configurare le identità gestite nei pool di Batch.

Passaggi successivi