Condividi tramite


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