Sdílet prostřednictvím


Správa trezoru SecretStore

Modul SecretStore je trezor rozšíření pro modul SecretManagement PowerShellu. Ukládá tajné kódy místně v souborech pro aktuální kontext uživatelského účtu a k šifrování obsahu souborů používá rozhraní .NET API pro šifrování. Modul SecretStore má několik možností konfigurace. Ve výchozí konfiguraci se k ukládání tajných kódů a přístupu k nim vyžaduje heslo a poskytuje nejsilnější ochranu. SecretStore podporuje také ukládání metadat o tajných kódech.

Registrace nového trezoru

Než budete moct vytvořit nový tajný klíč, musíte zaregistrovat trezor. Parametr Name je popisný název a může to být libovolný platný řetězec.

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

Důležité

Modul SecretManagement umožňuje registraci trezoru rozšíření několikrát, protože je možné, že trezor rozšíření může podporovat různé kontexty prostřednictvím registrace VaultParameters. Trezor SecretStore ale v současné době vždy funguje v oboru přihlášeného uživatele. Registrace několika trezorů SecretStore s různými názvy má za následek duplikaci stejného úložiště.

Pomocí následujícího příkazu zobrazte seznam registrovaných trezorů:

Get-SecretVault

Name        ModuleName                       IsDefaultVault
----        ----------                       --------------
Edge        SecretManagement.Chromium        False
SecretStore Microsoft.PowerShell.SecretStore True

V tomto příkladu jsou zaregistrované dva trezory, které používají různé moduly rozšíření.

Konfigurace trezoru

Pomocí rutiny Get-SecretStoreConfiguration zobrazte konfiguraci trezoru.

Get-SecretStoreConfiguration

      Scope Authentication PasswordTimeout Interaction
      ----- -------------- --------------- -----------
CurrentUser       Password             900      Prompt

Trezory SecretStore mají následující nastavení konfigurace:

  • Ověřování - Password (výchozí) nebo None
  • Časový limit - 900 hesla sekund (výchozí)
  • Interakce - Prompt (výchozí) nebo None

Výchozí konfigurace vyžaduje heslo, nastaví časový limit hesla relace na 15 minut a vyzve uživatele k zadání hesla k odemknutí trezoru.

V případě neinteraktivních scénářů automatizace je možné interakci nakonfigurovat tak None , aby se potlačilo zobrazování výzev uživateli. Pokud se vyžaduje heslo, příkazy trezoru vrátí výjimku Microsoft.PowerShell.SecretStore.PasswordRequiredException , pokud neexistuje platné heslo relace. Pomocí Unlock-SecretStore rutiny můžete zadat heslo pro aktuální relaci PowerShellu. Trezor zůstane odemknutý, dokud nevyprší časový limit.

Konfigurace trezoru a data se ukládají v samostatných souborech. Umístění souboru závisí na operačním systému platformy.

  • Pro platformy Windows je umístění: $env:LOCALAPPDATA\Microsoft\PowerShell\secretmanagement\localstore\
  • Pro jiné platformy než Windows je umístění následující: $HOME/.secretmanagement/localstore/

Změna konfigurace

Konfiguraci trezoru můžete změnit pomocí rutiny Set-SecretStoreConfiguration . Rutina poskytuje parametry Authentication, PasswordTimeout a Interaction , které se používají ke změně odpovídajících vlastností konfigurace. K dispozici je také parametr Default , který obnoví konfiguraci zpět na výchozí hodnoty.

Existují dva způsoby, jak v trezoru nastavit heslo.

  1. Rutina Set-SecretStoreConfiguration má parametr Password , který přebírá hodnotu SecureString .
  2. Rutina Set-SecretStorePassword změní heslo trezoru. Rutina nepřijímá žádné parametry a dá se používat jenom interaktivně. Zobrazí se výzva k zadání starých a nových hesel.

Přidání metadat

Modul SecretStore umožňuje přidat do tajných kódů necitlivá metadata. Metadata se dají použít k dokumentování zamýšleného účelu tajného kódu. Například k označení, že tajný kód je určený pro konkrétní scénář předplatného nebo aplikace. Můžete také přidat metadata o datu vytvoření tajného kódu, času vypršení platnosti nebo další informace používané ke správě životního cyklu tajného kódu.

Metadata můžou být libovolná dvojice klíč-hodnota. Modul SecretStore podporuje následující typy hodnot pro metadata:

  • řetězec
  • Int
  • Datum a čas

Vytvoření nového tajného klíče s metadaty:

$metadata = @{
    Purpose = 'Testing'
    Expires = (Get-Date).AddDays(30)
    Limit = 5
}
Set-Secret -Name TestSecret -Secret NewSecret -Metadata $metadata

Pokud chcete zobrazit metadata tajných kódů, můžete spustit příkaz :

Get-SecretInfo -Name TestSecret | Format-List *

Name      : TestSecret
Type      : String
VaultName : SecretStore
Metadata  : {[Limit, 5], [Expires, 6/23/2022 1:45:09 PM], [Purpose, Testing]}

Metadata pro existující tajný kód můžete nastavit také pomocí rutiny Set-SecretInfo :

Set-SecretInfo TestSecret -Metadata @{Purpose = "showing the new cmdlet"}
Get-SecretInfo -Name TestSecret | Select-Object Metadata

Metadata
--------
{[Purpose, showing the new cmdlet]}

Upozornění

Tím se přepíše všechna existující metadata novými hodnotami.

Resetování nebo odebrání trezoru

Rutina Reset-SecretStore resetuje trezor SecretStore odstraněním všech tajných kódů a konfigurací úložiště s výchozími možnostmi. Je určena k použití pouze v případě, že dojde ke ztrátě požadovaného hesla nebo poškození datových souborů. Výchozí možnosti konfigurace lze přepsat zadáním parametrů možností konfigurace jednotlivých příkazů.