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 の