Proteggere i segreti in Azure PowerShell
Quando si gestiscono le risorse di Azure con Azure PowerShell, l'output dei comandi potrebbe esporre informazioni riservate che è necessario proteggere. Ad esempio, Azure PowerShell potrebbe visualizzare password, token o chiavi nell'output quando vengono creati. Alcuni comandi possono anche archiviare l'output nei file di log. Questo scenario si verifica spesso quando si lavora con GitHub Actions o Azure DevOps.
Comprendere il rischio
È fondamentale proteggere i segreti e le informazioni riservate. In caso di gestione errata, possono diventare accessibili a utenti non autorizzati. Gli errori utente, ad esempio script configurati in modo non corretto o l'immissione di segreti in testo normale come valori per i parametri, possono esporre dettagli sensibili nei log, nella cronologia dei comandi o nei sistemi di controllo della versione.
Messaggio di avviso
Azure PowerShell visualizza un messaggio di avviso per impostazione predefinita a partire dalla versione 12.0.0 per proteggere le informazioni riservate quando identifica un potenziale segreto nell'output di un comando.
Disabilitare il messaggio di avviso
Nell'esempio seguente viene usato il cmdlet Update-AzConfig
per disabilitare il messaggio di avviso.
Update-AzConfig -DisplaySecretsWarning $false
È anche possibile usare la variabile di ambiente $Env:AZURE_CLIENTS_SHOW_SECRETS_WARNING
per disabilitare il messaggio di avviso.
Set-Item -Path Env:\AZURE_CLIENTS_SHOW_SECRETS_WARNING -Value $false
Transizione da stringhe a SecureStrings
Ai fini della sicurezza, il tipo di output predefinito del cmdlet Get-AzAccessToken
è pianificato per passare da un String
di testo normale a SecureString
. Per preparare l'aggiornamento, usare il parametro AsSecureString prima che si verifichi la modifica che causa un'interruzione.
Questa modifica è progettata per impedire l'esposizione accidentale dei token sensibili in testo normale. Per garantire una transizione uniforme, aggiornare gli script per usare il parametro AsSecureString, come illustrato nell'esempio seguente:
$token = Get-AzAccessToken -AsSecureString