Definir variáveis secretas
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. Variáveis de segredo 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 Azure Key Vault. Você também pode definir variáveis secretas em um script com um comando de registro em log, mas isso não é recomendado, pois qualquer pessoa que acessar seu pipeline também poderá ver o segredo.
As variáveis secretas definidas na interface do usuário das configurações de pipeline têm como escopo o pipeline em que 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 ao editar um pipeline individual. Você criptografará e tornará um segredo de variável de pipeline selecionando o ícone de bloqueio.
Você define variáveis secretas da mesma maneira para YAML e Clássico.
Para definir segredos na interface da Web, siga estas etapas:
- Acesse a página Pipelines, selecione o pipeline apropriado e escolha Editar.
- Localize as Variáveis desse pipeline.
- Adicione ou atualize a variável.
- Selecione a opção Manter esse valor em segredo para armazenar a variável de maneira criptografada.
- Salve o pipeline.
As variáveis secretas são criptografadas em estado inativo com uma chave RSA de 2.048 bits. Os segredos estão disponíveis no agente para uso por tarefas e scripts. Seja cauteloso com quem tem acesso para alterar o pipeline.
Importante
Fazemos um esforço para mascarar a exibição de segredos na saída do Azure Pipelines, mas ainda é preciso tomar precauções. Nunca ecoe segredos como saída. Alguns sistemas operacionais registram argumentos de linha de comando. Nunca transmita segredos na linha de comando. Em vez disso, a recomendação é mapear os segredos para variáveis de ambiente.
Nunca mascare as subcadeias de caracteres de segredos. Por exemplo, se "abc123" for definido como um segredo, "abc" não será mascarado nos logs. Isso evita mascarar segredos em um nível muito granular, o que torna os logs ilegíveis. Por esse motivo, os segredos não devem conter dados estruturados. Por exemplo, se "{ "foo": "bar" }" for definido como um segredo, "bar" não será mascarado nos logs.
Ao contrário de uma variável normal, elas não são descriptografadas automaticamente em variáveis de ambiente para scripts. Você precisa mapear explicitamente as variáveis secretas.
Usar uma variável secreta na interface do usuário
Você precisará mapear a variável secreta como variáveis de ambiente para referenciá-las em pipelines do YAML. Neste exemplo, há duas variáveis secretas definidas na interface do usuário SecretOne
e SecretTwo
. O valor de SecretOne
é foo
e o valor de SecretTwo
é 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.
Observação
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, dados mascarados na saída e logs que não são definidos como segredos.
Para obter um exemplo mais detalhado, confira Definir variáveis.
Definir uma variável secreta em um grupo de variáveis
Você pode adicionar segredos a um grupo de variáveis ou vincular segredos de um Azure Key Vault.
Criar grupos de variáveis
SelecionePipelines>Biblioteca>+ Grupo de variáveis.
Insira um nome e uma descrição para o grupo.
Opcional: mova o botão de alternância para vincular segredos de um Azure Key Vault como variáveis. Para obter mais informações, confira Usar segredos do Azure Key Vault.
Insira o nome e o valor de cada variável a ser incluída no grupo, escolhendo + Adicionar para cada uma delas.
Para tornar sua variável segura, escolha o ícone "bloquear" no final da linha.
Quando terminar de adicionar variáveis, selecione Salvar.
Grupos de variáveis seguem o modelo de segurança da biblioteca.
Vincular segredos de um cofre de chaves do Azure
Vincule um Azure Key Vault a um grupo de variáveis e mapeie segredos seletivos do cofre para o grupo de variáveis.
Na página Grupos de variáveis, habilite Vincular segredos de um Azure Key Vault como variáveis. Você precisará de um cofre de chaves existente que contenha seus segredos. Crie um key vault usando o portal do Azure.
Especifique o ponto de extremidade da assinatura do Azure e o nome do cofre que contém seus segredos.
Verifique se a conexão de serviço do Azure tem pelo menos as permissões de gerenciamento Obter e Listar no cofre para obter segredos. Habilite o Azure Pipelines para definir essas permissões escolhendo Autorizar ao lado do nome do cofre. Ou então, defina as permissões manualmente no portal do Azure:
- Abra Configurações para o cofre e escolha Políticas de acesso>Adicionar.
- Selecione Selecionar entidade e escolha a entidade de serviço para sua conta cliente.
- Selecione Permissões de segredo e verifique se Obter e Listar estão marcadas.
- Selecione Ok para salvar as alterações.
Na página Grupos de variáveis, selecione + Adicionar para selecionar segredos específicos do cofre para mapeamento para esse grupo de variáveis.
Gerenciar segredos do Key Vault
Confira a lista a seguir de dicas úteis para gerenciar segredos.
Somente os nomes de segredo são mapeados para o grupo de variáveis, não os valores de segredo. O valor do segredo mais recente, buscado do cofre, é usado na execução de pipeline vinculada ao grupo de variáveis.
Qualquer alteração feita em segredos existentes no cofre de chaves está automaticamente disponível para todos os pipelines em que o grupo de variáveis é usado.
Quando segredos são adicionados ou excluídos do cofre, os grupos de variáveis associados não são atualizados automaticamente. Os segredos incluídos no grupo de variáveis precisam ser atualizados explicitamente para que os pipelines que estão usando o grupo de variáveis sejam executados corretamente.
O Azure Key Vault dá suporte ao armazenamento e ao gerenciamento de chaves criptográficas e segredos no Azure. Atualmente, a integração de grupo de variáveis do Azure Pipelines dá suporte ao mapeamento apenas de segredos do Azure Key Vault. Não há suporte para chaves criptográficas e certificados.
Usar a tarefa Azure Key Vault
Você pode usar a tarefa Azure Key Vault para incluir segredos em seu pipeline. Essa tarefa permite que o pipeline se conecte ao Azure Key Vault e recupere os segredos a serem usados como variáveis de pipeline.
No editor de pipeline, selecione Mostrar assistente para expandir o painel do assistente.
Pesquise
vault
e selecione a tarefa do Azure Key Vault.
Atualmente, não há suporte para a opção Disponibilizar segredos para todo o trabalho no Azure DevOps Server 2019 e 2020.
Para saber mais sobre a tarefa Azure Key Vault, confira Usar segredos do Azure Key Vault no Azure Pipelines.
Definir variável secreta em um script com comandos de registro em log
Você pode usar o comando de registro em log task.setvariable
para definir variáveis nos scripts do PowerShell e do Bash. Essa é 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 Azure Key Vault.
Para definir uma variável como um script com um comando de registro em log, você precisa passar o sinalizador issecret
.
Quando issecret
for definido como true, o valor da variável será salvo como segredo e mascarado dos logs.
Observação
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, dados mascarados na saída e logs que não são definidos como segredos.
Defina a variável secreta mySecretVal
.
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
Obtenha a variável secreta mySecretVal
.
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
- bash: |
echo $(mySecretVal)
Saída de variável secreta no bash.
Saiba mais sobre como definir e usar variáveis em scripts.
Artigos relacionados
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de