Anmeldeinformationen und Geheimnisse
PSCredential-Objekte erzeugen und verwenden- Verstehen, was
SecureStringleistet (und was nicht) - Geheimnisse mit SecretManagement ablegen und abrufen
Skripte brauchen oft Zugangsdaten: für Remoting, Web-APIs oder Dienstkonten. Passwörter im Klartext im Skript sind der häufigste Fehler.
1. Get-Credential
Abschnitt betitelt „1. Get-Credential“$cred = Get-Credential$cred.UserNameGet-Credential fragt Benutzername und Passwort ab und liefert ein PSCredential-Objekt. Viele Cmdlets akzeptieren es über -Credential:
Invoke-Command -ComputerName PSLAB-02 -Credential $cred -ScriptBlock { whoami }2. Was ist ein SecureString?
Abschnitt betitelt „2. Was ist ein SecureString?“Das Passwort steckt als SecureString im PSCredential. Du kannst einen SecureString aus Text erzeugen:
$secure = ConvertTo-SecureString "NurFuerDieUebung" -AsPlainText -Force$cred = [PSCredential]::new("PSLAB\teilnehmer01", $secure)-AsPlainText -Force ist ein Warnschild: Das Klartextpasswort stand dafür in deinem Skript. Das ist nur für Übungen akzeptabel.
3. SecretManagement: der moderne Weg
Abschnitt betitelt „3. SecretManagement: der moderne Weg“Das Modul Microsoft.PowerShell.SecretManagement bietet eine einheitliche Schnittstelle (Set-Secret, Get-Secret). Dahinter steckt ein Tresor deiner Wahl: lokal (SecretStore), Azure Key Vault, KeePass, Bitwarden u. a.
Install-PSResource Microsoft.PowerShell.SecretManagement, Microsoft.PowerShell.SecretStore
Register-SecretVault -Name LokalerTresor -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault
Set-Secret -Name LabApiToken -Secret (Read-Host -AsSecureString -Prompt "Token")Get-Secret -Name LabApiToken # liefert einen SecureStringGet-Secret -Name LabApiToken -AsPlainText # nur wenn wirklich nötigGet-SecretInfoEin PSCredential legst du direkt ab: Set-Secret -Name LabAdmin -Secret (Get-Credential).
Wie sicher ist der lokale Tresor?
Abschnitt betitelt „Wie sicher ist der lokale Tresor?“- Die Daten sind verschlüsselt gespeichert und nur im Kontext deines Benutzers lesbar.
- Standardmäßig fragt der
SecretStorenach einem Passwort. Das ist die sichere Einstellung. - Mit
Set-SecretStoreConfiguration -Authentication None -Interaction Noneentfällt die Abfrage. Der Schlüssel liegt dann mit auf der Platte. Jeder Prozess unter deinem Konto kann lesen. Das passt für Automatisierung auf einem gesicherten Rechner, nicht für wertvolle Geheimnisse. - Für Skripte, die länger laufen, kannst du den Tresor für einen Zeitraum entsperren:
Unlock-SecretStore -Password $pw -PasswordTimeout 600(Sekunden). - Für Automatisierung in Unternehmen nutzt man meist einen Tresor wie Azure Key Vault und eine verwaltete Identität.
Zusammenfassung
Abschnitt betitelt „Zusammenfassung“Get-Credentialfür interaktive Abfragen,PSCredentialfür-Credential-Parameter.SecureStringschützt vor Zufallsausgabe, nicht vor Angreifern.- SecretManagement (
Set-Secret,Get-Secret) legt Geheimnisse in einem Tresor ab.