Udostępnij za pośrednictwem


Wprowadzenie do modułu SecretStore

Moduły SecretManagement i SecretStore są dostępne w galerii programu PowerShell i można je zainstalować przy użyciu poleceń PowerShellGet.

# Install with PowerShellGet 2.x
Install-Module Microsoft.PowerShell.SecretManagement
Install-Module Microsoft.PowerShell.SecretStore

lub

# Install with PSResourceGet 1.x
Install-PSResource Microsoft.PowerShell.SecretManagement
Install-PSResource Microsoft.PowerShell.SecretStore

Po zainstalowaniu modułów możesz załadować moduły i rozpocząć używanie lub tworzenie nowych wpisów tajnych.

Import-Module Microsoft.PowerShell.SecretManagement
Import-Module Microsoft.PowerShell.SecretStore

Tworzenie magazynu i dodawanie wpisu tajnego

Najpierw musisz zarejestrować magazyn. Parametr Nazwa jest przyjazną nazwą i może być dowolnym prawidłowym ciągiem.

Register-SecretVault -Name SecretStore -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault

Parametr DefaultVault sprawia, że jest to domyślny magazyn.

Teraz możesz utworzyć wpis tajny.

Set-Secret -Name TestSecret -Secret "TestSecretPassword"

Ten przykład przekazuje ciąg w postaci zwykłego tekstu dla wartości wpisu tajnego. Wartość wpisu tajnego może być jednym z pięciu obsługiwanych typów:

  • bajt[]
  • ciąg
  • SecureString
  • PSCredential

Przy pierwszym uzyskiwaniu dostępu do magazynu należy podać hasło dla nowego magazynu. To hasło służy do blokowania i odblokowywania magazynu.

Vault SecretStore requires a password.
Enter password:
********
Enter password again for verification:
********

Uruchom Get-Secret, aby pobrać wpis tajny. Użycie przełącznika AsPlainText zwraca wpis tajny jako niezaszyfrowany ciąg.

PS> Get-Secret -Name TestSecret -AsPlainText
TestSecretPassword

Aby uzyskać listę wszystkich wpisów tajnych, możesz uruchomić następujące polecenie:

PS> Get-SecretInfo

Name       Type   VaultName
----       ----   ---------
TestSecret String SecretStore

Notatki

Po uruchomieniu Set-Secret z parametrem Name w celu określenia nazwy wpisu tajnego polecenie cmdlet wywołuje GetSecret() implementowane przez rozszerzenie magazynu. Set-Secret przechodzi przez nazwę podaną przez użytkownika. Rozszerzenie magazynu wyszukuje wpis tajny według tej nazwy. Jeśli GetSecret() zwraca dopasowanie, Set-Secret zastąpi wpis tajny, chyba że użyjesz parametru NoClobber. Rozszerzenie magazynu zawsze zapisuje informacje o wpisie tajnym, które otrzymuje.

Implementacja rozszerzenia magazynu zależy od tego, czy należy użyć porównania z uwzględnieniem wielkości liter w nazwie. Na przykład nazwy wpisów tajnych w magazynie rozszerzeń Microsoft.PowerShell.SecretStore są niewrażliwe na wielkość liter. Jeśli nazwa przekazywana do Set-Secret różni się tylko literą o nazwie istniejącego wpisu tajnego w magazynie SecretStore, nazwa zostanie zastąpiona nową wartością.