Share via


SecretStore モジュールの概要

SecretManagement モジュールと SecretStore モジュールは、PowerShell ギャラリーから使用でき、PowerShellGet コマンドを使用してインストールできます。

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

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

モジュールをインストールしたら、モジュールを読み込み、新しいシークレットの使用または作成を開始できます。

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

コンテナーを作成してシークレットを追加する

まず、コンテナーを登録する必要があります。 Name パラメーターはフレンドリ名であり、任意の有効な文字列を指定できます。

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

DefaultVault パラメーターを使用すると、これが既定のコンテナーになります。

これで、シークレットを作成できます。

Set-Secret -Name TestSecret -Secret "TestSecretPassword"

次の使用例は、シークレットの値にプレーンテキスト文字列を渡します。 シークレット値には、次の 5 つのサポートされている型のいずれかを指定できます。

  • byte[]
  • String
  • SecureString
  • PSCredential
  • Hashtable

コンテナーに初めてアクセスするときは、新しいコンテナーのパスワードを指定する必要があります。 このパスワードは、コンテナーをロックおよびロック解除するために使用されます。

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

を実行 Get-Secret してシークレットを取得します。 AsPlainText スイッチを使用すると、シークレットが暗号化されていない文字列として返されます。

PS> Get-Secret -Name TestSecret -AsPlainText
TestSecretPassword

すべてのシークレットの一覧を取得するには、次を実行します。

PS> Get-SecretInfo

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

メモ

Name パラメーターを使用してを実行Set-Secretしてシークレットの名前を指定すると、コンテナー拡張機能によって実装されている がコマンドレットによって呼び出GetSecret()されます。 Set-Secret は、ユーザーが指定した名前を渡します。 コンテナー拡張機能は、その名前でシークレットを検索します。 が一致を返す場合 GetGecret() は、 Set-SecretNoClobber パラメーターを使用しない限り、シークレットが上書きされます。 コンテナー拡張機能は、受信したシークレット情報を常に書き込みます。

名前に対して大文字と小文字を区別する比較を使用するかどうかを決定するのは、コンテナー拡張機能の実装に依存します。 たとえば、 Microsoft.PowerShell.SecretStore 拡張機能コンテナー内のシークレット名では、大文字と小文字は区別されません。 渡す Set-Secret 名前が SecretStore コンテナー内の既存のシークレットの名前と大文字と小文字のみが異なる場合、名前は指定した新しい値で上書きされます。