Definir variáveis de segredos
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Variáveis secretas são variáveis criptografadas que você pode usar em pipelines sem expor seu valor. As variáveis secretas podem ser usadas para informações privadas, como senhas, IDs e outros dados de identificação que você não gostaria de expor em um pipeline. As variáveis secretas são criptografadas em repouso com uma chave RSA de 2048 bits e estão disponíveis no agente para tarefas e scripts a serem usados.
As maneiras recomendadas de definir variáveis secretas estão na interface do usuário, em um grupo de variáveis e em um grupo de variáveis do Cofre de Chaves do Azure. Você também pode definir variáveis secretas em um script com um comando de log, mas esse método não é recomendado, pois qualquer pessoa que possa acessar seu pipeline também pode ver o segredo.
As variáveis secretas definidas na interface do usuário de configurações de pipeline para um pipeline têm como escopo o pipeline onde estão definidas. Você pode usar grupos de variáveis para compartilhar variáveis secretas entre pipelines.
Variável secreta na interface do usuário
Você pode definir variáveis secretas no editor de pipeline quando estiver editando um pipeline individual. Você criptografa e torna secreta uma variável de pipeline selecionando o ícone de cadeado.
Você define variáveis secretas da mesma maneira para YAML e Classic.
Para definir segredos na interface Web, siga estes passos:
- Vá para a página Pipelines , selecione o pipeline apropriado e, em seguida, selecione Editar.
- Localize as variáveis para este pipeline.
- Adicione ou atualize a variável.
- Selecione a opção Manter esse valor secreto para armazenar a variável de forma criptografada.
- Salve o pipeline.
As variáveis secretas são encriptadas em repouso com uma chave RSA de 2048 bits. Os segredos estão disponíveis no agente para tarefas e scripts a serem usados. Tenha cuidado com quem tem acesso para alterar seu pipeline.
Importante
Fazemos um esforço para impedir que segredos apareçam na saída do Azure Pipelines, mas você ainda precisa tomar precauções. Nunca ecoe segredos como saída. Alguns sistemas operacionais registram argumentos de linha de comando. Nunca passe segredos na linha de comando. Em vez disso, sugerimos que você mapeie seus segredos em variáveis de ambiente.
Nunca mascaramos subcadeias de segredos. Se, por exemplo, "abc123" for definido como um segredo, "abc" não será mascarado dos logs. Isso é para evitar mascarar segredos em um nível muito granular, tornando os logs ilegíveis. Por esta razão, os segredos não devem conter dados estruturados. Se, por exemplo, "{ "foo": "bar" }" for definido como um segredo, "bar" não será mascarado dos logs.
Ao contrário de uma variável normal, eles não são automaticamente descriptografados em variáveis de ambiente para scripts. Você precisa mapear explicitamente variáveis secretas.
Usar uma variável secreta na interface do usuário
Você precisa mapear variáveis secretas como variáveis de ambiente para fazer referência a elas em pipelines YAML. Neste exemplo, há duas variáveis secretas definidas na interface do usuário SecretOne
e SecretTwo
. O valor de SecretOne
is foo
e o valor de SecretTwo
is bar
.
steps:
- powershell: |
Write-Host "My first secret variable is $env:FOO_ONE"
$env:FOO_ONE -eq "foo"
env:
FOO_ONE: $(SecretOne)
- bash: |
echo "My second secret variable: $FOO_TWO"
if [ "$FOO_TWO" = "bar" ]; then
echo "Strings are equal."
else
echo "Strings are not equal."
fi
env:
FOO_TWO: $(SecretTwo)
As saídas do pipeline:
My first secret variable is ***
True
My second secret variable: ***
Strings are equal.
Nota
O Azure Pipelines faz um esforço para mascarar segredos ao emitir dados para logs de pipeline, para que você possa ver variáveis adicionais e dados mascarados na saída e logs que não estão definidos como segredos.
Para obter um exemplo mais detalhado, consulte Definir variáveis.
Definir uma variável secreta em um grupo de variáveis
Você pode adicionar segredos a um grupo variável ou vincular segredos de um Cofre de Chaves do Azure existente.
Criar novos grupos de variáveis
Selecione Biblioteca de Pipelines>>+ Grupo de variáveis.
Insira um nome e uma descrição para o grupo.
Opcional: mova a alternância para vincular segredos de um cofre de chaves do Azure como variáveis. Para obter mais informações, consulte Usar segredos do Cofre da Chave do Azure.
Insira o nome e o valor de cada variável a ser incluída no grupo, escolhendo + Adicionar para cada uma.
Para tornar a sua variável segura, escolha o ícone de "cadeado" no final da linha.
Quando terminar de adicionar variáveis, selecione Salvar.
Os grupos de variáveis seguem o modelo de segurança da biblioteca.
Associar segredos de um cofre de chaves do Azure
Você pode criar grupos de variáveis e vinculá-los a um cofre de chaves do Azure existente, permitindo mapear segredos armazenados no cofre de chaves. Apenas os nomes secretos são mapeados para o grupo de variáveis, não os valores secretos. O pipeline executa esse link para o grupo de variáveis e busca os valores secretos mais recentes do cofre. Para obter mais informações, consulte Vincular um grupo de variáveis a segredos no Cofre de Chaves do Azure.
Usar a tarefa Cofre da Chave do Azure
Você pode usar a tarefa Cofre da Chave do Azure para incluir segredos em seu pipeline. Essa tarefa permite que o pipeline se conecte ao seu Cofre de Chaves do Azure e recupere segredos para usar como variáveis de pipeline.
No editor de pipeline, selecione Mostrar assistente para expandir o painel assistente.
Procure
vault
e selecione a tarefa Azure Key Vault.
A opção Tornar segredos disponíveis para trabalho inteiro não é suportada atualmente no Azure DevOps Server 2019 e 2020.
Para saber mais sobre a tarefa Azure Key Vault, consulte Usar segredos do Azure Key Vault no Azure Pipelines.
Definir uma variável de segredo num script com comandos de registo
Você pode usar o task.setvariable
comando logging para definir variáveis em scripts PowerShell e Bash. Esse método é a maneira menos segura de trabalhar com variáveis secretas, mas pode ser útil para depuração. As maneiras recomendadas de definir variáveis secretas estão na interface do usuário, em um grupo de variáveis e em um grupo de variáveis do Cofre de Chaves do Azure.
Para definir uma variável como um script com um comando de log, você precisa passar o issecret
sinalizador.
Quando issecret
for definido como true, o valor da variável será salvo como secreto e mascarado dos logs.
Nota
O Azure Pipelines faz um esforço para mascarar segredos ao emitir dados para logs de pipeline, para que você possa ver variáveis adicionais e dados mascarados na saída e logs que não estão definidos como segredos.
Defina a variável mySecretVal
secreta .
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
Obtenha a variável mySecretVal
secreta .
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
- bash: |
echo $(mySecretVal)
Saída variável secreta em bash.
Saiba mais sobre como definir e usar variáveis em scripts.