Schützen von geheimen Schlüsseln in Azure PowerShell

Wenn Sie Azure Ressourcen mit Azure PowerShell verwalten, macht die Ausgabe von Befehlen möglicherweise vertrauliche Informationen verfügbar, die Sie schützen müssen. Beispielsweise könnten Azure PowerShell Kennwörter, Token oder Schlüssel in der Ausgabe anzeigen, wenn Sie sie erstellen. Einige Befehle können die Ausgabe auch in Protokolldateien speichern. Dieses Szenario ist häufig bei der Arbeit mit GitHub Actions oder Azure DevOps der Fall.

Verstehen des Risikos

Es ist wichtig, geheime und vertrauliche Informationen zu schützen. Wenn sie falsch behandelt werden, können sie für nicht autorisierte Benutzer zugänglich werden. Benutzerfehler, z. B. nicht ordnungsgemäß konfigurierte Skripts oder Das Eingeben geheimer Schlüssel als Werte für Parameter, können vertrauliche Details in Protokollen, Befehlsverlaufs- oder Versionssteuerungssystemen verfügbar machen.

Warnmeldung

Azure PowerShell zeigt standardmäßig eine Warnmeldung an, die mit Version 12.0.0 beginnt, um vertrauliche Informationen zu schützen, wenn sie einen potenziellen Geheimschlüssel in der Ausgabe eines Befehls identifiziert.

Deaktivieren der Warnmeldung

Im folgenden Beispiel wird das Update-AzConfig Cmdlet verwendet, um die Warnmeldung zu deaktivieren.

Update-AzConfig -DisplaySecretsWarning $false

Sie können auch die Umgebungsvariable $Env:AZURE_CLIENTS_SHOW_SECRETS_WARNING verwenden, um die Warnmeldung zu deaktivieren.

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

Übergang von Zeichenfolgen zu SecureStrings

Um die Sicherheit zu verbessern und das Risiko von Verlusten an Anmeldeinformationen zu verringern, wurde der Standardausgabetyp des Get-AzAccessToken Cmdlets von einem Nur-Text String zu einem SecureString, beginnend mit Az.Accounts , Version 5.0.0 und Az , Version 14.0.0 geändert.

Zugriffstoken sind vertrauliche Anmeldeinformationen, die Zugriff auf Azure Ressourcen gewähren. Die Rückgabe als Klartext erhöht das Risiko einer versehentlichen Offenlegung in Protokollen, Transkripten oder interaktiven Sitzungen. Durch den Wechsel zu SecureString" verhindert das Cmdlet, dass Token angezeigt oder unsicher gespeichert werden.

Wenn Ihr Szenario das Token im Klartext erfordert, was dringend nicht empfohlen wird, können Sie das SecureString manuell konvertieren. Anleitungen finden Sie unter How can I convert a SecureString to plain text in PowerShell?.