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.
Este artigo fornece um exemplo para usar um cofre Microsoft.PowerShell.SecretStore em um cenário de automação. Um cofre SecretStore fornece uma maneira de armazenar e recuperar com segurança as senhas, tokens e outros segredos que você precisa usar em seu pipeline de automação no computador local.
Configurar o host que executa a automação
Para este exemplo, você deve primeiro instalar e configurar os módulos SecretManagement. Este exemplo pressupõe que o host de automação esteja executando o 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
Configurar o cofre SecretStore
Você também deve criar uma senha como uma SecureString usada para proteger o cofre SecretStore. O sistema de automação que você usa pode ter uma maneira de fornecer com segurança uma senha que você pode usar para proteger o cofre. Por exemplo, o GitHub fornece uma maneira de armazenar e usar segredos com segurança em GitHub Actions. Para obter mais informações, consulte Usando segredos em GitHub Actions.
Neste exemplo, a senha é uma SecureString exportada com segurança para um arquivo XML e criptografada pela DPAPI (Proteção de Dados do Windows). O comando a seguir solicita uma senha. Neste exemplo, o UserName 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ê poderá 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 SecretStore . A configuração define a interação do usuário como , para None
que o SecretStore nunca solicite ao 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 cofre instalado e configurado, você pode usar Set-Secret
para adicionar os segredos necessários para seus scripts de automação.
Usar segredos na automação
A senha do SecretStore deve ser fornecida de forma segura. Aqui, a senha está sendo importada de um arquivo que foi criptografado usando o DPAPI (Proteção de Dados do Windows).
Observação
Essa é uma solução somente do Windows, mas outra opção é usar uma variável segura fornecida por um sistema de CI como 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 o SecretStore para esta sessão. O tempo limite da senha foi configurado por 1 hora. O cofre permanece desbloqueado na sessão por esse período de tempo. Após o tempo limite, o cofre deve ser desbloqueado novamente antes que os segredos possam ser acessados.
$password = Import-CliXml -Path $securePasswordPath
Unlock-SecretStore -Password $password
$automationPassword = Get-Secret -Name CIJobSecret