Usar segredos do Azure Key Vault no seu pipeline
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Com o Azure Key Vault, é possível armazenar e gerenciar com segurança suas informações confidenciais, como senhas, chaves de API, certificados etc. Ao usar o Azure Key Vault, é possível criar e gerenciar chaves de criptografia facilmente para criptografar seus dados. O Azure Key Vault também pode ser usado para gerenciar certificados para todos os seus recursos. Neste artigo, você aprenderá a:
- Crie um Cofre de chaves do Azure.
- Configure suas permissões do Key Vault.
- Crie uma nova conexão de serviço.
- Consulte segredos do pipeline do Azure.
Pré-requisitos
- Uma organização do Azure DevOps. Crie gratuitamente caso ainda não tenha uma.
- Seu próprio projeto. Crie um projeto caso ainda não tenha um.
- Seu próprio repositório. Crie um novo repositório Git caso ainda não tenha um.
- Uma assinatura do Azure. Crie uma conta gratuita do Azure caso ainda não tenha uma.
Criar um cofre de chaves
Entre no portal do Azure e selecione Criar um recurso.
Em Key Vault, selecione Criar para criar um novo Azure Key Vault.
Selecione sua Assinatura no menu suspenso e, em seguida, selecione um grupo de recursos existente ou crie um novo. Insira um nome do cofre de chaves, selecione uma região, escolha um tipo de preço e selecione Avançar se quiser configurar propriedades adicionais. Caso contrário, selecione Examinar + criar para manter as configurações padrão.
Após a conclusão da implantação, selecione Ir para o recurso.
Configurar a autenticação
Criar uma identidade gerenciada atribuída ao usuário
Entre no portal do Azure e pesquise o serviço Identidades Gerenciadas na barra de pesquisa.
Selecione Criar e preencha os campos obrigatórios da seguinte maneira:
- Assinatura: selecione sua assinatura no menu suspenso.
- Grupo de recursos: Selecione um grupo de recursos existente ou crie um novo.
- Região: Selecione uma região no menu suspenso.
- Nome: insira um nome para sua identidade gerenciada atribuída pelo usuário.
Selecione Examinar + criar quando terminar.
Quando a implantação for concluída, selecione Ir para o recurso e copie os valores de Assinatura e ID do Cliente a serem usados nas próximas etapas.
Navegue até Propriedades de Configurações>e copie o valor da ID do locatário da identidade gerenciada para uso posterior.
Configurar políticas de acesso do cofre de chaves
Navegue até o portal do Azure e use a barra de pesquisa para localizar o cofre de chaves que você criou anteriormente.
Selecione Políticas de acesso e, em seguida, selecione Criar para adicionar uma nova política.
Em Permissões secretas, marque as caixas de seleção Obter e Listar .
Selecione Avançar e cole a ID do cliente da identidade gerenciada que você criou anteriormente na barra de pesquisa. Selecione sua identidade gerenciada.
Selecione Avançar e, em seguida , Avançar mais uma vez.
Examine suas novas políticas e selecione Criar quando terminar.
Criar uma conexão de serviço
Entre na sua organização do Azure DevOps e navegue até seu projeto.
Selecione Configurações do projeto>Conexões de serviço e selecione Nova conexão de serviço para criar uma conexão de serviço.
Selecione Azure Resource Manager e, em seguida, selecione Avançar.
Para Tipo de identidade, selecione Identidade gerenciada no menu suspenso.
Para Etapa 1: Detalhes da identidade gerenciada, preencha os campos da seguinte maneira:
Assinatura para identidade gerenciada: selecione a assinatura que contém sua identidade gerenciada.
Grupo de recursos para identidade gerenciada: selecione o grupo de recursos que hospeda sua identidade gerenciada.
Identidade gerenciada: selecione sua identidade gerenciada no menu suspenso.
Para Etapa 2: Escopo do Azure, preencha os campos da seguinte maneira:
Nível de escopo para conexão de serviço: selecione Assinatura.
Assinatura para conexão de serviço: selecione a assinatura que sua identidade gerenciada acessará.
Grupo de recursos para conexão de serviço: (opcional) especifique para limitar o acesso de identidade gerenciada a um grupo de recursos.
Para a Etapa 3: Detalhes da conexão de serviço:
Nome da conexão de serviço: forneça um nome para sua conexão de serviço.
Referência de Gerenciamento de Serviços: (Opcional) Informações de contexto de um banco de dados ITSM.
Descrição: (Opcional) Adicione uma descrição.
Em Segurança, marque a caixa de seleção Conceder permissão de acesso a todos os pipelines para permitir que todos os pipelines usem essa conexão de serviço. Se você não selecionar essa opção, deverá conceder acesso manualmente a cada pipeline que usa essa conexão de serviço.
Selecione Salvar para validar e criar a conexão de serviço.
Consultar e usar segredos no seu pipeline
Usando a Tarefa do Azure Key Vault, podemos buscar o valor do nosso segredo e usá-lo em tarefas subsequentes no nosso pipeline. Deve-se ter em mente que os segredos devem ser explicitamente mapeados para a variável env, conforme mostrado no exemplo abaixo.
pool:
vmImage: 'ubuntu-latest'
steps:
- task: AzureKeyVault@1
inputs:
azureSubscription: 'SERVICE_CONNECTION_NAME'
KeyVaultName: 'KEY_VAULT_NAME'
SecretsFilter: '*'
- bash: |
echo "Secret Found! $MY_MAPPED_ENV_VAR"
env:
MY_MAPPED_ENV_VAR: $(SECRET_NAME)
A saída desse comando deve ter a seguinte aparência:
Secret Found! ***
Observação
Caso queira consultar vários segredos do Azure Key Vault, use o argumento SecretsFilter
para passar uma lista separada por vírgulas de nomes de segredo: 'secret1, secret2'.