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
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.
È 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.
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.
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.
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.
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:
Ottenere l'oggetto PrincipalId
per un uso successivo. Eseguire questo codice:
$principalID = (Get-AzAutomationAccount `
-ResourceGroupName $resourceGroup `
-Name $automationAccount).Identity.PrincipalId
$principalID
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"
},
..
}
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.
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:
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.
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.
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:
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"
},
..
}
}
È 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.
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.
- Per informazioni sulle linee guida sulla sicurezza, vedere Procedure consigliate per la sicurezza in Automazione di Azure.
- Per una panoramica di Azure Key Vault, vedere Informazioni su Azure Key Vault.
- Per usare i certificati, vedere Gestire i certificati in Automazione di Azure.
- Per gestire le credenziali, vedere Gestire le credenziali in Automazione di Azure.
- Per usare le variabili di Automazione, vedere Gestire variabili in Automazione di Azure.
- Per informazioni sull'uso delle connessioni, vedere Gestire le connessioni in Automazione di Azure.