Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022
O Azure Key Vault é um serviço na cloud que ajuda os programadores a armazenar e gerir de forma segura informações sensíveis, como chaves API, credenciais e certificados. O Key Vault suporta dois tipos de contentores: cofres e pools de módulos de segurança de hardware gerido (HSM). Os cofres podem armazenar tanto chaves, segredos e certificados, apoiados por Software e por Módulos de Segurança de Hardware (HSM). Pools de HSM geridos suportam exclusivamente chaves protegidas por HSM.
Neste artigo, aprende como criar um cofre de chaves, adicionar um segredo, configurar políticas de acesso e depois usar esse segredo no Azure Pipelines. Este tutorial utiliza um cofre de chaves com acesso público à rede. Se precisar de aceder a um cofre de chaves privadas a partir do seu pipeline, veja Aceder a um cofre de chave privada a partir do seu pipeline. Para ligar segredos do Key Vault a grupos de variáveis, consulte Ligar um grupo de variáveis a segredos em Azure Key Vault.
Pré-requisitos
| Categoria | Requerimentos |
|---|---|
| Azure DevOps | - Uma organização de DevOps do Azure. - Um projeto Azure DevOps. |
| Azure | Uma assinatura do Azure. |
Obter o código
Se não tiver o seu próprio projeto, importe o seguinte repositório de exemplos para o seu repositório Azure:
Inicie sessão na sua organização do Azure DevOps e, em seguida, aceda ao seu projeto.
Selecione Repositórios e, em seguida, selecione Importar. Insira o seguinte URL do repositório e selecione Importar.
https://github.com/MicrosoftDocs/pipelines-dotnet-core
Criar um cofre de chaves
Para criar um novo cofre de chaves no Azure usando a CLI do Azure, siga estes passos:
Vai ao portal Azure, e depois seleciona Azure Cloud Shell no canto superior direito.
Se a sua conta estiver associada a várias subscrições do Azure, defina a sua subscrição predefinida.
az account set --subscription <YOUR_SUBSCRIPTION_NAME_OR_ID>Defina uma região Azure predefinida. Para ver uma lista de regiões disponíveis, execute
az account list-locations.az config set defaults.location=<YOUR_REGION>Criar um novo grupo de recursos.
az group create --name <YOUR_RESOURCE_GROUP_NAME>Cria um novo cofre de chaves.
az keyvault create \ --name <YOUR_KEY_VAULT_NAME> \ --resource-group <YOUR_RESOURCE_GROUP_NAME>Adiciona um segredo ao teu cofre de chaves.
az keyvault secret set \ --name <YOUR_SECRET_NAME> \ --value <YOUR_ACTUAL_SECRET> \ --vault-name <YOUR_KEY_VAULT_NAME>
Configurar a autenticação
Depois de criar o seu cofre de chaves, o passo seguinte é configurar a autenticação. Selecione Identidade Gerida ou Principal de Serviço e siga as instruções para configurar a autenticação.
Criar uma identidade gerida atribuída pelo utilizador
Vai ao portal Azure, e depois pesquisa por Identidades Geridas na barra de pesquisa.
Selecione Criar e forneça a seguinte informação:
- Subscrição: Selecione a sua subscrição Azure no menu suspenso.
- Grupo de recursos: selecione um grupo de recursos existente ou crie um novo.
- Região: Selecione a região onde a identidade gerida é criada.
- Nome: Introduza um nome para a identidade gerida atribuída pelo utilizador.
Seleciona Rever + criar e depois seleciona Criar para iniciar a implementação.
Após a implementação terminar, selecione Ir para o recurso e copie os valores do ID da Subscrição e do ID do Cliente . Precisas destes valores em etapas posteriores.
Em Definições, selecione Propriedades e copie o valor do ID de Inquilino da sua identidade gerida para uso posterior.
Configurar políticas de acesso ao cofre de chaves
Vai ao portal Azure, e usa a barra de pesquisa para localizar o cofre de chaves que criaste anteriormente.
Selecione políticas de acesso e depois selecione Criar para adicionar uma nova política.
Em Permissões secretas, marque as caixas de seleção Obter e Listar .
Selecione Avançar. Cole o ID do Cliente da identidade gerida que criou anteriormente na barra de pesquisa e depois selecione a identidade gerida.
Selecione Seguinte e, depois, selecione Seguinte novamente.
Revise os detalhes da política de acesso e selecione Criar para aplicar a política.
Criar uma conexão de serviço
Inicia sessão no Azure DevOps e depois vai ao teu projeto.
Selecione Definições do projeto>Conexões de serviço>Nova conexão de serviço.
Selecione Azure Resource Manager e, em seguida, selecione Next.
Para Tipo de Identidade, selecione Identidade Gerida.
No Passo 1: Detalhes de identidade geridos, forneça a seguinte informação:
- Subscrição para identidade gerida: selecione a subscrição que contém a sua identidade gerida.
- Grupo de recursos para identidade gerida: Selecione o grupo de recursos que aloja a sua identidade gerida.
- Identidade gerida: Selecione a sua identidade gerida na lista suspensa.
Para o Passo 2: Azure Scope, forneça a seguinte informação:
- Nível de escopo para conexão de serviço: Selecione Assinatura.
- Subscrição para ligação ao serviço: Selecione a subscrição a que a identidade gerida acede.
- Grupo de recursos para ligação ao serviço: (Opcional) Especifique um grupo de recursos para limitar o acesso da identidade gerida a um único grupo de recursos.
Para o Passo 3: Detalhes da ligação ao serviço, forneça a seguinte informação:
- Nome da ligação de serviço: Insira um nome para a ligação de serviço.
- Referência de gestão de serviços: (Opcional) Inclua informação de contexto de uma base de dados ITSM.
- Descrição: (Opcional) Introduzir uma descrição.
Em Segurança, a opção Conceder permissão de acesso a todos os pipelines permite que todos os pipelines utilizem esta ligação de serviço. Não recomendamos esta opção. Em vez disso, autorize cada pipeline individualmente a usar a conexão de serviço.
Selecione Salvar para validar e criar a conexão de serviço.
Aceda aos segredos do cofre de chaves a partir do seu fluxo de trabalho
Aviso
Este tutorial é apenas para fins educacionais. Para melhores práticas de segurança e orientações sobre como trabalhar em segurança com segredos, consulte Gerir segredos nas suas aplicações de servidor com Azure Key Vault.
Inicia sessão no Azure DevOps e depois vai ao teu projeto.
Selecione Cadeias>Nova Cadeia.
Selecione Repositórios do Azure Git (YAML) e, em seguida, selecione seu repositório.
Selecione o modelo de pipeline inicial.
O pipeline padrão inclui comandos de eco como exemplo. Não precisas destes comandos, por isso podes removê-los.
Adiciona a tarefa Azure Key Vault ao teu pipeline. Substitua os marcadores pelo nome da ligação de serviço que criou anteriormente e pelo nome do cofre de chaves. O seu ficheiro YAML deve parecer semelhante ao seguinte exemplo:
trigger: - main pool: vmImage: ubuntu-latest steps: - task: AzureKeyVault@2 displayName: Azure Key Vault inputs: azureSubscription: 'SERVICE_CONNECTION_NAME' KeyVaultName: 'KEY_VAULT_NAME' SecretsFilter: '*' RunAsPreJob: falseAdicione as seguintes tarefas para copiar e publicar o segredo. Este exemplo é apenas para fins demonstrativos. Não o uses num ambiente de produção.
trigger: - main pool: vmImage: ubuntu-latest steps: - task: AzureKeyVault@2 displayName: Azure Key Vault inputs: azureSubscription: 'SERVICE_CONNECTION_NAME' KeyVaultName: 'KEY_VAULT_NAME' SecretsFilter: '*' RunAsPreJob: false - task: CmdLine@2 displayName: Create file inputs: script: 'echo $(SECRET_NAME) > secret.txt' - task: CopyFiles@2 displayName: Copy file inputs: Contents: secret.txt targetFolder: '$(Build.ArtifactStagingDirectory)' - task: PublishBuildArtifacts@1 displayName: Publish Artifact inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'drop' publishLocation: 'Container'Selecione Salvar e executar e, em seguida, selecione-o mais uma vez para confirmar suas alterações e acionar o pipeline. Se for solicitado, selecione Permitir para conceder acesso ao pipeline aos recursos do Azure.
Depois de o pipeline começar, selecione a tarefa CmdLine para visualizar os registos.
Quando a execução do pipeline terminar, volte ao resumo do pipeline e selecione o artefacto publicado.
Selecione drop>secret.txt para descarregar o ficheiro.
Abre o ficheiro de texto descarregado. Deve conter o segredo recuperado do teu cofre de chaves.
Limpar recursos
Para eliminar os recursos que criou, siga estes passos:
Se criou uma nova organização para alojar o seu projeto, veja como eliminar a sua organização. Caso contrário, apaga o teu projeto.
Todos os recursos Azure criados durante este tutorial estão alojados num único grupo de recursos. Execute o seguinte comando para eliminar o grupo de recursos e todos os seus recursos.
az group delete --name <YOUR_RESOURCE_GROUP_NAME>
Solução de problemas
Erro: "O utilizador ou grupo não tem permissão para a lista de segredos"
Este erro ocorre quando o principal de serviço ou a identidade gerida usada pelo seu pipeline não tem permissão para listar segredos no cofre de chaves. Para resolver este problema, certifique-se de que a identidade tem as permissões Get e List para segredos. Execute os seguintes comandos para conceder as permissões necessárias ao seu principal de serviço:
az login
az account set --subscription <YOUR_SUBSCRIPTION_ID>
$spnObjectId = az ad sp show --id <YOUR_SERVICE_PRINCIPAL_ID>
az keyvault set-policy --name <YOUR_KEY_VAULT_NAME> --object-id $spnObjectId --secret-permissions get list