Начало работы с модулем 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
Создание хранилища и добавление секрета
Сначала необходимо зарегистрировать хранилище. Параметр имени
Register-SecretVault -Name SecretStore -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault
Параметр DefaultVault делает это хранилище по умолчанию.
Теперь можно создать секрет.
Set-Secret -Name TestSecret -Secret "TestSecretPassword"
В этом примере передается строка открытого текста для значения секрета. Значение секрета может быть одним из пяти поддерживаемых типов:
- байт[]
- строка
- 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
Примечания
При запуске Set-Secret
проходит через имя, предоставленное пользователем. Расширение хранилища ищет секрет по имени. Если GetSecret()
возвращает совпадение, Set-Secret
перезаписывает секрет, если не используется параметр NoClobber. Расширение хранилища всегда записывает полученную секретную информацию.
Это зависит от реализации расширения хранилища, чтобы решить, следует ли использовать сравнение с учетом регистра по имени. Например, имена секретов в хранилище расширений Microsoft.PowerShell.SecretStore не учитывает регистр. Если имя, которое вы передаете в Set-Secret
, отличается только по имени существующего секрета в хранилище SecretStore, имя перезаписывается новым значением, которое вы указали.
Связанные ссылки
- Register-SecretVault
- get-Secret
- set-Secret