Introdução ao módulo SecretStore

Os módulos SecretManagement e SecretStore estão disponíveis no Galeria do PowerShell e podem ser instalados com comandos do 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

Depois de instalar os módulos, pode carregar os módulos e começar a utilizar ou criar novos segredos.

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

Criar um cofre e adicionar um segredo

Primeiro, tem de registar o cofre. O parâmetro Nome é um nome amigável e pode ser qualquer cadeia válida.

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

O parâmetro DefaultVault torna este o cofre predefinido.

Agora pode criar um segredo.

Set-Secret -Name TestSecret -Secret "TestSecretPassword"

Este exemplo transmite uma cadeia de texto simples para o valor do segredo. O valor secreto pode ser um dos cinco tipos suportados:

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

Na primeira vez que aceder ao cofre, tem de fornecer uma palavra-passe para o novo cofre. Esta palavra-passe é utilizada para bloquear e desbloquear o cofre.

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

Execute Get-Secret para obter o segredo. Utilizar o comutador AsPlainText devolve o segredo como uma cadeia não encriptada.

PS> Get-Secret -Name TestSecret -AsPlainText
TestSecretPassword

Para obter a lista de todos os seus segredos, pode executar:

PS> Get-SecretInfo

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

Notas

Quando executa Set-Secret com o parâmetro Nome para especificar o nome do segredo, o cmdlet chama GetSecret() que é implementado pela extensão do cofre. Set-Secret transmite o nome conforme fornecido pelo utilizador. A extensão do cofre procura o segredo por esse nome. Se GetGecret() devolver uma correspondência, Set-Secret substitui o segredo, a menos que utilize o parâmetro NoClobber . A extensão do cofre escreve sempre as informações secretas que recebe.

Cabe à implementação da extensão do cofre decidir se deve ou não utilizar uma comparação sensível a maiúsculas e minúsculas no nome. Por exemplo, os nomes de segredos no cofre de extensões Microsoft.PowerShell.SecretStore não são sensíveis a maiúsculas e minúsculas. Se o nome que transmitir Set-Secret for diferente apenas por caso com o nome de um segredo existente num cofre secretStore, o nome será substituído pelo novo valor que forneceu.