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 Update-AzConfig cmdlet per disabilitare il messaggio di avviso.

Update-AzConfig -DisplaySecretsWarning $false

È anche possibile usare la $Env:AZURE_CLIENTS_SHOW_SECRETS_WARNING 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 Get-AzAccessToken cmdlet è cambiato da un testo String normale a un SecureString, 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 di 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 SecureString, 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.SecureString Per indicazioni, vedere Come convertire secureString in testo normale in PowerShell?.