Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
A equipe do PowerShell decidiu que os módulos Secret são completos em recursos e não serão mais desenvolvidos ativamente. Os módulos continuarão a ser suportados para correções de segurança e bugs críticos. O repositório de código foi arquivado.
As versões mais recentes publicadas são:
A natureza dos segredos mudou fundamentalmente desde que este projeto foi concebido. Métodos de autenticação sem senha, como chaves de acesso, login único e sistemas federados de credenciais, como Microsoft Entra ID, biometria e chaves de segurança de hardware, são o futuro.
Este artigo fornece um exemplo de como usar uma Microsoft. Cofre PowerShell.SecretStore em um cenário de automação. Um cofre SecretStore oferece uma forma segura de armazenar e recuperar as senhas, tokens e outros segredos que você precisa usar no seu pipeline de automação na máquina local.
Configure o host que executa a automação
Para este exemplo, você deve primeiro instalar e configurar os módulos SecretManagement. Este exemplo assume que seu host de automação está rodando Windows. Esses comandos devem ser executados no contexto do usuário da conta de automação no host.
Install-Module -Name Microsoft.PowerShell.SecretStore -Repository PSGallery -Force
Install-Module -Name Microsoft.PowerShell.SecretManagement -Repository PSGallery -Force
Import-Module Microsoft.PowerShell.SecretStore
Import-Module Microsoft.PowerShell.SecretManagement
Configure o cofre da SecretStore
Você também deve criar uma senha como um SecureString que é usada para proteger o cofre da SecretStore. O sistema de automação que você usa pode ter uma forma segura de fornecer uma senha que você pode usar para proteger o cofre. Por exemplo, o GitHub oferece uma forma segura de armazenar e usar segredos no GitHub Actions. Para obter mais informações, consulte Como usar segredos no GitHub Actions.
Neste exemplo, a senha é um SecureString que é exportado de forma segura para um arquivo XML e criptografado pela Proteção de Dados do Windows (DPAPI). O comando a seguir solicita uma senha. Neste exemplo, o Nome de Usuário não é importante.
PS> $credential = Get-Credential -UserName 'SecureStore'
PowerShell credential request
Enter your credentials.
Password for user SecureStore: **************
Depois de ter a senha, você pode salvá-la em um arquivo XML criptografado.
$securePasswordPath = 'C:\automation\passwd.xml'
$credential.Password | Export-Clixml -Path $securePasswordPath
Em seguida, você deve configurar o cofre do SecretStore . A configuração define a interação do usuário para None, de modo que o SecretStore nunca solicita o usuário. A configuração requer uma senha, e a senha é passada como um objeto SecureString . O -Confirm:false parâmetro é usado para que o PowerShell não solicite confirmação.
Register-SecretVault -Name SecretStore -ModuleName Microsoft.PowerShell.SecretStore -DefaultVault
$password = Import-CliXml -Path $securePasswordPath
$storeConfiguration = @{
Authentication = 'Password'
PasswordTimeout = 3600 # 1 hour
Interaction = 'None'
Password = $password
Confirm = $false
}
Set-SecretStoreConfiguration @storeConfiguration
Agora que você tem o vault instalado e configurado, pode usar Set-Secret para adicionar os segredos necessários para seus scripts de automação.
Uso de segredos na automação
A senha da SecretStore deve ser fornecida de forma segura. Aqui, a senha está sendo importada de um arquivo que foi criptografado usando o Windows Data Protection (DPAPI).
Note
Esta é uma solução exclusiva para Windows, mas outra opção é usar uma variável segura fornecida por um sistema de CI como o GitHub Actions.
O script de automação precisa desbloquear o cofre para recuperar os segredos necessários no script. O Unlock-SecretStore cmdlet é usado para desbloquear a SecretStore desta sessão. O tempo limite da senha foi configurado para 1 hora. O cofre permanece destrancado durante a sessão por esse tempo. Após o tempo técnico, o cofre deve ser destrancado novamente antes que segredos possam ser acessados.
$password = Import-CliXml -Path $securePasswordPath
Unlock-SecretStore -Password $password
$automationPassword = Get-Secret -Name CIJobSecret