Partilhar via


Usar segredos do Azure Key Vault em seu pipeline

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Com o Azure Key Vault, você pode armazenar e gerenciar com segurança suas informações confidenciais, como senhas, chaves de API, certificados, etc. usando o Azure Key Vault, você pode facilmente criar e gerenciar chaves de criptografia para criptografar seus dados. O Azure Key Vault também pode ser usado para gerenciar certificados para todos os seus recursos. Neste artigo, vai aprender a:

  • Crie um Cofre da Chave do Azure.
  • Configure suas permissões do Cofre da Chave.
  • Crie uma nova conexão de serviço.
  • Consulta de segredos do seu Pipeline do Azure.

Pré-requisitos

Criar um Key Vault

  1. Entre no portal do Azure e selecione Criar um recurso.

  2. Em Cofre da Chave, selecione Criar para criar um novo Cofre da Chave do Azure.

  3. Selecione a sua Subscrição no menu pendente e, em seguida, selecione um grupo de Recursos existente ou crie um novo. Insira um nome de cofre de chaves, selecione uma região, escolha um nível de preço e selecione Avançar se quiser configurar propriedades adicionais. Caso contrário, selecione Rever + criar para manter as configurações padrão.

  4. Quando a implantação estiver concluída, selecione Ir para o recurso.

Configurar a autenticação

Criar uma identidade gerida atribuída pelo utilizador

  1. Entre no portal do Azure e procure o serviço Identidades Gerenciadas na barra de pesquisa.

  2. Selecione Criar e preencha os campos obrigatórios da seguinte forma:

    • 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: introduza um nome para a sua identidade gerida atribuída pelo utilizador.
  3. Selecione Rever + criar quando terminar.

  4. Quando a implantação estiver concluída, selecione Ir para recurso e copie os valores de Assinatura e ID do Cliente para usar nas próximas etapas.

  5. Navegue até Propriedades de Configurações> e copie o valor de ID de Locatário da identidade gerenciada para uso posterior.

Configurar políticas de acesso ao cofre de chaves

  1. Navegue até o portal do Azure e use a barra de pesquisa para localizar o cofre de chaves criado anteriormente.

  2. Selecione Políticas de acesso e, em seguida, selecione Criar para adicionar uma nova política.

  3. Em Permissões secretas, marque as caixas de seleção Obter e Listar .

  4. Selecione Avançar e cole a ID do Cliente da identidade gerenciada criada anteriormente na barra de pesquisa. Selecione sua identidade gerenciada.

  5. Selecione Avançar e, em seguida, Avançar mais uma vez.

  6. Reveja as suas novas políticas e, em seguida, selecione Criar quando terminar.

Criar uma conexão de serviço

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Configurações do>projeto Conexões de serviço e, em seguida, selecione Nova conexão de serviço para criar uma nova conexão de serviço.

  3. Selecione Azure Resource Manager e, em seguida, selecione Next.

  4. Em Tipo de identidade, selecione Identidade gerenciada no menu suspenso.

  5. Para a Etapa 1: Detalhes da identidade gerenciada, preencha os campos da seguinte maneira:

    • Subscrição para identidade gerida: selecione a subscrição que contém a sua identidade gerida.

    • 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.

  6. Para a 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.

  7. 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.

  8. 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 manualmente acesso a cada pipeline que usa essa conexão de serviço.

  9. Selecione Salvar para validar e criar a conexão de serviço.

    Uma captura de tela exibindo como criar uma conexão de serviço ARM de identidade gerenciada.

Consultar e usar segredos em seu pipeline

Usando a tarefa Azure Key Vault, podemos buscar o valor de nosso segredo e usá-lo em tarefas subsequentes em nosso pipeline. Uma coisa a ter em mente é que os segredos devem ser explicitamente mapeados para a variável env, como 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 do último comando bash deve ter esta aparência:

Secret Found! ***

Nota

Se você quiser consultar vários segredos do seu Cofre de Chaves do Azure, use o argumento para passar uma lista separada por vírgulas SecretsFilter de nomes secretos: 'secret1, secret2'.