Skydda hemligheter i Azure PowerShell

När du hanterar Azure resurser med Azure PowerShell kan utdata från kommandon exponera känslig information som du måste skydda. Till exempel kan Azure PowerShell visa lösenord, token eller nycklar i utdata när du skapar dem. Vissa kommandon kan också lagra utdata i loggfiler. Det här scenariot är ofta fallet när du arbetar med GitHub Actions eller Azure DevOps.

Förstå risken

Det är viktigt att skydda hemligheter och känslig information. När de hanteras felaktigt kan de bli tillgängliga för obehöriga användare. Användarfel, till exempel felaktigt konfigurerade skript eller att ange hemligheter i oformaterad text som värden för parametrar, kan exponera känslig information i loggar, kommandohistorik eller versionskontrollsystem.

Varningsmeddelande

Azure PowerShell visar ett varningsmeddelande som standard som börjar med version 12.0.0 för att skydda känslig information när den identifierar en potentiell hemlighet i utdata från ett kommando.

Inaktivera varningsmeddelandet

I följande exempel används cmdleten Update-AzConfig för att inaktivera varningsmeddelandet.

Update-AzConfig -DisplaySecretsWarning $false

Du kan också använda $Env:AZURE_CLIENTS_SHOW_SECRETS_WARNING miljövariabeln för att inaktivera varningsmeddelandet.

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

Övergång från strängar till SecureStrings

För att förbättra säkerheten och minska risken för läckage av autentiseringsuppgifter ändrades standardutdatatypen för cmdleten Get-AzAccessToken från oformaterad text String till en SecureString, med början i Az.Accounts version 5.0.0 och Az version 14.0.0.

Åtkomsttoken är känsliga autentiseringsuppgifter som ger åtkomst till Azure resurser. Om du returnerar dem som oformaterad text ökar risken för oavsiktlig exponering i loggar, avskrifter eller interaktiva sessioner. Genom att växla till SecureStringhjälper cmdleten till att förhindra att token visas eller lagras osäkert.

Om ditt scenario kräver token i klartext, vilket starkt avrådes från, kan du konvertera det SecureString manuellt. Vägledning finns i Hur kan jag konvertera en SecureString till oformaterad text i PowerShell?.