Crittografia di asset protetti in Automazione di Azure

Automazione di Azure protegge gli asset, ad esempio credenziali, certificati, connessioni e variabili crittografate, usano vari livelli di crittografia. Ciò consente di migliorare la sicurezza di questi asset. Inoltre, per garantire maggiore sicurezza e privacy per il codice del cliente, i runbook e gli script DSC vengono crittografati. La crittografia in Automazione di Azure segue due modelli, a seconda della chiave di primo livello usata per la crittografia:

  • Uso di chiavi gestite da Microsoft
  • Uso di chiavi gestite dall'utente

Chiavi gestite da Microsoft

Per impostazione predefinita, l'account di Automazione di Azure usa chiavi gestite da Microsoft.

Ogni asset sicuro viene crittografato e archiviato in Automazione di Azure tramite una chiave univoca (chiave di crittografia dei dati) generata per ogni account di Automazione. Queste chiavi vengono a loro volta crittografate e archiviate in Automazione di Azure usando un'altra chiave univoca generata per ogni account e denominata chiave di crittografia dell'account (AEK). Queste chiavi di crittografia dell'account vengono crittografate e archiviate in Automazione di Azure tramite chiavi gestite da Microsoft.

Chiavi gestite con Key Vault

È possibile gestire la crittografia degli asset sicuri per l'account di Automazione con le proprie chiavi. Quando si specifica una chiave gestita dal cliente al livello dell'account di Automazione, questa chiave viene usata per proteggere e controllare l'accesso alla chiave di crittografia dell'account per l'account di Automazione. Questa chiave viene a sua volta usata per crittografare e decrittografare tutti gli asset sicuri. Le chiavi gestite dal cliente offrono maggiore flessibilità per creare, ruotare, disabilitare e revocare i controlli di accesso. È anche possibile controllare le chiavi di crittografia usate per proteggere gli asset sicuri.

Usare Azure Key Vault per archiviare le chiavi gestite dal cliente. È possibile creare chiavi personalizzate e archiviarle in un insieme di credenziali delle chiavi oppure usare le API Azure Key Vault per generare chiavi.

L'abilitazione del Firewall di Azure in Azure Key Vault blocca l'accesso da runbook Automazione di Azure per tale servizio. L'accesso verrà bloccato anche quando l'eccezione del firewall per consentire i servizi Microsoft attendibili è abilitata, perché Automazione non fa parte dell'elenco dei servizi attendibili. Con un firewall abilitato, l'accesso può essere ottenuto solo usando un ruolo di lavoro ibrido per runbook e un endpoint servizio di rete virtuale. Tuttavia, quando si abilita il collegamento privato per Key Vault, Automazione di Azure perde l'accesso all'insieme di credenziali delle chiavi. Anche se si abilita un collegamento privato per il ruolo di lavoro ibrido per runbook, consentirà l'accesso solo al servizio Automazione di Azure e non all'insieme di credenziali delle chiavi.

Per altre informazioni su Azure Key Vault, vedere Informazioni su Azure Key Vault.

Uso delle chiavi gestite dal cliente per un account di Automazione

Quando si usa la crittografia con le chiavi gestite dal cliente per un account di Automazione, Automazione di Azure esegue il wrapping della chiave di crittografia dell'account con la chiave gestita dal cliente nell'insieme di credenziali delle chiavi associato. L'abilitazione delle chiavi gestite dal cliente non influisce sulle prestazioni e l'account viene crittografato immediatamente con la nuova chiave, senza alcun ritardo.

Un nuovo account di Automazione viene sempre crittografato con le chiavi gestite da Microsoft. Non è possibile abilitare le chiavi gestite dal cliente al momento della creazione dell'account. Le chiavi gestite dal cliente vengono archiviate in Azure Key Vault e l'insieme di credenziali delle chiavi deve essere sottoposto a provisioning con criteri di accesso che concedono le autorizzazioni all'identità gestita associata all'account di Automazione. L'identità gestita è disponibile solo dopo la creazione dell'account di automazione.

Quando si modifica la chiave usata per Automazione di Azure crittografia sicura degli asset, abilitando o disabilitando le chiavi gestite dal cliente, aggiornando la versione della chiave o specificando una chiave diversa, la crittografia della chiave di crittografia dell'account cambia, ma non è necessario crittografare nuovamente gli asset protetti nell'account Automazione di Azure.

Nota

Per abilitare la chiave gestita dal cliente usando Automazione di Azure chiamate API REST, è necessario usare api versione 2020-01-13-preview.

Prerequisiti per l'uso delle chiavi gestite dal cliente in Automazione di Azure

Prima di abilitare le chiavi gestite dal cliente per un account di Automazione, è necessario verificare che siano soddisfatti i seguenti prerequisiti:

  • Insieme di credenziali delle chiavi di Azure con le proprietà Eliminazione temporanea e Non ripulire abilitate. Queste proprietà sono necessarie per consentire il ripristino delle chiavi in caso di eliminazione accidentale.
  • Con la crittografia di Automazione di Azure sono supportate solo le chiavi RSA. Per altre informazioni sulle chiavi, vedere Informazioni su chiavi, segreti e certificati di Azure Key Vault.
  • L'account di Automazione e l'insieme di credenziali delle chiavi possono trovarsi in sottoscrizioni diverse, ma devono trovarsi nello stesso tenant di Microsoft Entra.
  • Quando si usa PowerShell, verificare che il modulo Azure Az PowerShell sia installato. Installare o aggiornare, vedere Come installare il modulo Azure Az PowerShell.

Generare e assegnare una nuova identità assegnata dal sistema per un account di Automazione

Per usare chiavi gestite dal cliente con un account di Automazione, l'account di Automazione deve eseguire l'autenticazione nell'insieme di credenziali delle chiavi che archivia le chiavi gestite dal cliente. Automazione di Azure usa identità gestite assegnate dal sistema per autenticare l'account con Azure Key Vault. Per altre informazioni sulle identità gestite, vedere Informazioni sulle identità gestite per le risorse di Azure.

Tramite PowerShell

Usare il cmdlet di PowerShell Set-AzAutomationAccount per modificare un account di Automazione di Azure esistente. Il -AssignSystemIdentity parametro genera e assegna una nuova identità assegnata dal sistema per l'account di Automazione da usare con altri servizi come Azure Key Vault. Per altre informazioni, vedere Che cosa sono le identità gestite per le risorse di Azure? e Informazioni su Azure Key Vault. Eseguire questo codice:

# Revise variables with your actual values.
$resourceGroup = "ResourceGroupName"
$automationAccount = "AutomationAccountName"
$vaultName = "KeyVaultName"
$keyName = "KeyName"

Set-AzAutomationAccount `
    -ResourceGroupName $resourceGroup `
    -Name $automationAccount `
    -AssignSystemIdentity

L'output dovrebbe essere simile al seguente:

Output del cmdlet Set-AzAutomationAccount.

Ottenere l'oggetto PrincipalId per un uso successivo. Eseguire questo codice:

$principalID = (Get-AzAutomationAccount `
    -ResourceGroupName $resourceGroup `
    -Name $automationAccount).Identity.PrincipalId

$principalID

Uso di REST

Configurare un'identità gestita assegnata dal sistema per l'account di Automazione usando la chiamata API REST seguente:

PATCH https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name?api-version=2020-01-13-preview

Corpo della richiesta:

{ 
 "identity": 
 { 
  "type": "SystemAssigned" 
  } 
}

L'identità assegnata dal sistema per l'account di Automazione viene restituita in una risposta simile alla seguente:

{
 "name": "automation-account-name",
 "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name",
 ..
 "identity": {
    "type": "SystemAssigned",
    "principalId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
    "tenantId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"
 },
..
}

Configurazione dei criteri di accesso di Key Vault

Dopo aver assegnato un'identità gestita assegnata dal sistema all'account di Automazione, si configura l'accesso all'insieme di credenziali delle chiavi che archivia le chiavi gestite dal cliente. Automazione di Azure richiede Autorizzazioni per l'operazione Get, Recover, WrapKey e UnwrapKey per l'identità per accedere alle chiavi gestite dal cliente.

Tramite PowerShell

Usare il cmdlet di PowerShell Set-AzKeyVaultAccessPolicy per concedere le autorizzazioni necessarie. Usare quindi Add-AzKeyVaultKey per creare una chiave nell'insieme di credenziali delle chiavi. Eseguire questo codice:

Set-AzKeyVaultAccessPolicy `
    -VaultName $vaultName `
    -ObjectId $principalID `
    -PermissionsToKeys Get, Recover, UnwrapKey, WrapKey

Add-AzKeyVaultKey `
    -VaultName $vaultName `
    -Name $keyName `
    -Destination 'Software'

L'output dovrebbe essere simile al seguente:

Output del cmdlet Add-AzKeyVaultKey.

Uso di REST

I criteri di accesso possono essere impostati usando la chiamata API REST seguente:

PUT https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/sample-group/providers/Microsoft.KeyVault/vaults/sample-vault/accessPolicies/add?api-version=2018-02-14

Corpo della richiesta:

{
  "properties": {
    "accessPolicies": [
      {
        "tenantId": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb",
        "objectId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
        "permissions": {
          "keys": [
            "get",
            "recover",
            "wrapKey",
            "unwrapKey"
          ],
          "secrets": [],
          "certificates": []
        }
      }
    ]
  }
}

Nota

Per i campi tenantId e objectId è necessario specificare rispettivamente i valori di identity.tenantId e identity.principalId dalla risposta dell'identità gestita per l'account di Automazione.

Riconfigurare l'account di Automazione per l'uso della chiave gestita dal cliente

Se si vuole cambiare l'account di Automazione dalle chiavi gestite da Microsoft alle chiavi gestite dal cliente, è possibile eseguire questa modifica usando Azure PowerShell o con un modello di Azure Resource Manager.

Tramite PowerShell

Usare il cmdlet di PowerShell Set-AzAutomationAccount per riconfigurare l'account di Automazione per l'uso delle chiavi gestite dal cliente.

$vaultURI = (Get-AzKeyVault -VaultName $vaultName).VaultUri
$keyVersion = (Get-AzKeyVaultKey -VaultName $vaultName -KeyName $keyName).Version

Set-AzAutomationAccount `
    -ResourceGroupName $resourceGroup `
    -Name $automationAccount `
    -AssignSystemIdentity `
    -KeyName $keyName `
    -KeyVaultUri $vaultURI `
    -KeyVersion $keyVersion `
    -KeyVaultEncryption 

È possibile verificare la modifica eseguendo il comando seguente:

(Get-AzAutomationAccount `
    -ResourceGroupName $resourceGroup `
    -Name $automationAccount).Encryption `
    |  ConvertTo-Json 

L'output dovrebbe essere simile al seguente:

Output del cmdlet Get-AzAutomationAccount.

Uso di REST

Usare la chiamata API REST seguente:

PATCH https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name?api-version=2020-01-13-preview

Corpo della richiesta:

{
	"identity": {
	"type": "SystemAssigned"
	},
	"properties": {
		"encryption": {
			"keySource": "Microsoft.Keyvault",
			"keyvaultProperties": {
				"keyName": "sample-vault-key",
				"keyvaultUri": "https://sample-vault-key12.vault.azure.net",
				"keyVersion": "7c73556c521340209371eaf623cc099d"
			}
		}
	}
}

Risposta di esempio

{
  "name": "automation-account-name",
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resource-group-name/providers/Microsoft.Automation/automationAccounts/automation-account-name",
  ..
  "properties": {
    ..
    "encryption": {
      "keyvaultProperties": {
         "keyName": "sample-vault-key",
          "keyvaultUri": "https://sample-vault-key12.vault.azure.net",
          "keyVersion": "7c73556c521340209371eaf623cc099d"
      },
      "keySource": "Microsoft.Keyvault"
    },
    ..
  }
}

Rotazione di una chiave gestita dal cliente

È possibile ruotare una chiave gestita dal cliente in Azure Key Vault in base ai criteri di conformità. Quando la chiave viene ruotata, è necessario aggiornare l'account di Automazione per usare il nuovo URI della chiave.

La rotazione della chiave non attiva la ricrittografazione degli asset protetti nell'account di Automazione. Non sono necessarie altre azioni.

Revoca dell'accesso a una chiave gestita dal cliente

Per revocare l'accesso alle chiavi gestite dal cliente, usare PowerShell o l'interfaccia della riga di comando di Azure. Per altre informazioni, vedere PowerShell per Azure Key Vault o Interfaccia della riga di comando per Azure Key Vault. La revoca dell'accesso blocca di fatto l'accesso a tutti gli asset sicuri dell'account di Automazione perché la chiave di crittografia non può accedere ad Automazione di Azure.

Passaggi successivi