Proteggere i segreti in Azure PowerShell

Quando si gestiscono Azure risorse con Azure PowerShell, l'output dei comandi potrebbe esporre informazioni riservate da proteggere. Ad esempio, Azure PowerShell potrebbe visualizzare password, token o chiavi nell'output durante la creazione. Alcuni comandi possono anche archiviare l'output nei file di log. Questo scenario è spesso il caso 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 per disabilitare il messaggio di avviso.

Update-AzConfig -DisplaySecretsWarning $false

È anche possibile usare la variabile di ambiente per disabilitare il messaggio di avviso.

Set-Item -Path Env:\AZURE_CLIENTS_SHOW_SECRETS_WARNING -Value $false

Transizione da stringhe a SecureStrings

Per migliorare la sicurezza e ridurre il rischio di perdite di credenziali, il tipo di output predefinito del cmdlet è cambiato da un testo normale a un , a partire da Az.Accounts versione 5.0.0 e Az versione 14.0.0.

I token di accesso sono credenziali sensibili che concedono l'accesso alle risorse Azure. La restituzione di tali dati come testo normale aumenta il rischio di esposizione accidentale nei log, nelle trascrizioni o nelle sessioni interattive. Passando a , il cmdlet impedisce la visualizzazione o l'archiviazione dei token in modo non sicuro.

Se lo scenario richiede il token in testo normale, che è fortemente sconsigliato, è possibile convertire manualmente. Per indicazioni, vedere Come convertire secureString in testo normale in PowerShell?.