Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Important
Het PowerShell-team heeft besloten dat Secret-modules volledig functioneel zijn en niet langer actief ontwikkeld zullen worden. De modules blijven ondersteund voor beveiligings- en kritieke bugfixes. De coderepository is gearchiveerd.
De meest recente gepubliceerde versies zijn:
De aard van geheimen is fundamenteel veranderd sinds het ontwerp van dit project. Wachtwoordloze authenticatiemethoden zoals passkeys, single sign-on en gefedereerde inloggegevens zoals Microsoft Entra ID, biometrie en hardware-beveiligingssleutels zijn de toekomst.
Dit artikel geeft een voorbeeld voor het gebruik van een Microsoft. PowerShell.SecretStore vault in een automatiseringsscenario. Een SecretStore-kluis biedt je een manier om veilig de wachtwoorden, tokens en andere geheimen die je nodig hebt in je automatiseringspijplijn op de lokale machine op te slaan en terug te halen.
Stel de host in die de automatisering uitvoert
Voor dit voorbeeld moet je eerst de SecretManagement-modules installeren en configureren. Dit voorbeeld gaat ervan uit dat je automatiseringshost Windows draait. Deze commando's moeten worden uitgevoerd in de gebruikerscontext van het automatiseringsaccount op de host.
Install-Module -Name Microsoft.PowerShell.SecretStore -Repository PSGallery -Force
Install-Module -Name Microsoft.PowerShell.SecretManagement -Repository PSGallery -Force
Import-Module Microsoft.PowerShell.SecretStore
Import-Module Microsoft.PowerShell.SecretManagement
Configureer de SecretStore-kluis
Je moet ook een wachtwoord aanmaken als SecureString dat wordt gebruikt om de SecretStore-kluis te beveiligen. Het automatiseringssysteem dat je gebruikt kan een manier hebben om veilig een wachtwoord te geven waarmee je de kluis kunt beveiligen. Zo biedt GitHub een manier om geheimen veilig op te slaan en te gebruiken in GitHub Actions. Zie Geheimen gebruiken in GitHub Actions voor meer informatie.
In dit voorbeeld is het wachtwoord een SecureString die veilig wordt geëxporteerd naar een XML-bestand en versleuteld door Windows Data Protection (DPAPI). Het volgende commando vraagt je om een wachtwoord. In dit voorbeeld is de Gebruikersnaam onbelangrijk.
PS> $credential = Get-Credential -UserName 'SecureStore'
PowerShell credential request
Enter your credentials.
Password for user SecureStore: **************
Zodra je het wachtwoord hebt, kun je het opslaan als een versleuteld XML-bestand.
$securePasswordPath = 'C:\automation\passwd.xml'
$credential.Password | Export-Clixml -Path $securePasswordPath
Vervolgens moet je de SecretStore-kluis configureren. De configuratie stelt gebruikersinteractie in op None, zodat SecretStore de gebruiker nooit een vraag vraagt. De configuratie vereist een wachtwoord, en het wachtwoord wordt doorgegeven als een SecureString-object . De -Confirm:false parameter wordt gebruikt zodat PowerShell niet om bevestiging vraagt.
Register-SecretVault -Name SecretStore -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault
$password = Import-CliXml -Path $securePasswordPath
$storeConfiguration = @{
Authentication = 'Password'
PasswordTimeout = 3600 # 1 hour
Interaction = 'None'
Password = $password
Confirm = $false
}
Set-SecretStoreConfiguration @storeConfiguration
Nu je de vault hebt geïnstalleerd en geconfigureerd, kun je de Set-Secret geheimen toevoegen die je nodig hebt voor je automatiseringsscripts.
Gebruik geheimen in automatisering
Het SecretStore-wachtwoord moet op een veilige manier worden verstrekt. Hier wordt het wachtwoord geïmporteerd uit een bestand dat is versleuteld met Windows Data Protection (DPAPI).
Note
Dit is een Windows-only oplossing, maar een andere optie is het gebruik van een veilige variabele die wordt geleverd door een CI-systeem zoals GitHub Actions.
Het automatiseringsscript moet de kluis ontgrendelen om de geheimen terug te halen die in het script nodig zijn. De Unlock-SecretStore cmdlet wordt gebruikt om de SecretStore voor deze sessie te ontgrendelen. De wachtwoord-timeout was ingesteld op 1 uur. De kluis blijft gedurende die sessie gedurende die tijd ontgrendeld. Na de time-out moet de kluis opnieuw worden ontgrendeld voordat geheimen toegankelijk zijn.
$password = Import-CliXml -Path $securePasswordPath
Unlock-SecretStore -Password $password
$automationPassword = Get-Secret -Name CIJobSecret