次の方法で共有


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[]
  • 文字列 の
  • SecureString の
  • PSCredential の
  • ハッシュテーブル の

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

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 は、ユーザーが指定した名前を通過します。 コンテナー拡張機能は、その名前でシークレットを検索します。 一致 GetSecret()Set-Secret 場合は、NoClobber パラメーターを使用しない限り、シークレットが上書きされます。 コンテナー拡張機能は、受信したシークレット情報を常に書き込みます。

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

  • register-SecretVault を する
  • Get-Secret の
  • Set-Secret の