Utilizar os segredos do Azure Key Vault nos Pipelines do Azure
Serviços do Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
O Azure Key Vault permite aos programadores armazenar e gerir segredos de forma segura, como chaves de API, credenciais ou certificados. O serviço Key Vault do Azure suporta dois tipos de contentores: cofres e conjuntos HSM geridos (módulo de segurança de hardware). Os cofres suportam o armazenamento de chaves, segredos e certificados suportados por HSM e software, enquanto os conjuntos HSM geridos só suportam chaves suportadas por HSM.
Neste tutorial, vai aprender a:
- Criar um Key Vault do Azure com a CLI do Azure
- Adicionar um segredo e configurar o acesso ao cofre de chaves do Azure
- Utilizar segredos no pipeline
Pré-requisitos
- Uma organização do Azure DevOps. Caso não tenha uma, pode criá-la gratuitamente.
- Uma subscrição do Azure. Crie uma conta do Azure gratuitamente se ainda não tiver uma.
Criar um Azure Key Vault
Inicie sessão no Portal do Azure e, em seguida, selecione o botão Cloud Shell no canto superior direito.
Se tiver mais do que uma subscrição do Azure associada à sua conta, utilize o comando abaixo para especificar uma subscrição predefinida. Pode utilizar
az account list
para gerar uma lista das suas subscrições.az account set --subscription <your_subscription_name_or_ID>
Defina a sua região predefinida do Azure. Pode utilizar
az account list-locations
para gerar uma lista de regiões disponíveis.az config set defaults.location=<your_region>
Por exemplo, este comando irá selecionar a região westus2:
az config set defaults.location=westus2
Criar um novo grupo de recursos. Um grupo de recursos é um contentor que detém recursos relacionados para uma solução do Azure.
az group create --name <your-resource-group>
Crie um novo cofre de chaves.
az keyvault create \ --name <your-key-vault> \ --resource-group <your-resource-group>
Crie um novo segredo no cofre de chaves do Azure.
az keyvault secret set \ --name "Password" \ --value "mysecretpassword" \ --vault-name <your-key-vault-name>
Criar um projeto
Inicie sessão na sua organização do Azure DevOps.
Se ainda não tiver projetos na sua organização, selecione Criar um projeto para começar. Caso contrário, selecione Novo projeto no canto superior direito.
Criar um repositório
Vamos utilizar o YAML para criar o nosso pipeline, mas primeiro temos de criar um novo repositório.
Inicie sessão na sua organização do Azure DevOps e navegue para o seu projeto.
Selecione Repositórios e, em seguida, selecione Inicializar para inicializar um novo repositório com um README.
Criar um novo pipeline
Selecione Pipelines e, em seguida, selecione Novo Pipeline.
Selecione Git de Repositórios do Azure (YAML).
Selecione o repositório que criou no passo anterior.
Selecione o modelo de pipeline Starter .
O pipeline predefinido incluirá alguns scripts que executam comandos de eco. Estes não são necessários para que possamos eliminá-los. O seu novo ficheiro YAML deverá ter o seguinte aspeto:
trigger: - main pool: vmImage: 'ubuntu-latest' steps:
Selecione Mostrar assistente para expandir o painel assistente. Este painel fornece uma lista conveniente e pesquisável de tarefas de pipeline.
Procure o cofre e selecione a tarefa Key Vault do Azure.
Selecione a sua subscrição do Azure e, em seguida, selecione Autorizar. Selecione o cofre de chaves no menu pendente e, em seguida, selecione Adicionar para adicionar a tarefa ao pipeline YAML.
Nota
A funcionalidade Disponibilizar segredos para todo o trabalho não é suportada no Azure DevOps Server 2019 e 2020.
O ficheiro YAML deve ter o seguinte aspeto:
trigger: - main pool: vmImage: ubuntu-latest steps: - task: AzureKeyVault@2 inputs: azureSubscription: 'Your-Azure-Subscription' KeyVaultName: 'Your-Key-Vault-Name' SecretsFilter: '*' RunAsPreJob: false - task: CmdLine@2 inputs: script: 'echo $(Your-Secret-Name) > secret.txt' - task: CopyFiles@2 inputs: Contents: secret.txt targetFolder: '$(Build.ArtifactStagingDirectory)' - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'drop' publishLocation: 'Container'
Ainda não guarde ou coloque em fila o pipeline. Primeiro, temos de dar ao nosso pipeline as permissões certas para aceder ao Azure Key Vault. Mantenha o separador do browser aberto, retomaremos os passos restantes assim que configurarmos as permissões do cofre de chaves.
Configurar políticas de acesso do Azure Key Vault
Para aceder ao nosso Key Vault do Azure, primeiro temos de configurar um principal de serviço para dar acesso aos Pipelines do Azure. Siga este guia para criar o principal de serviço e, em seguida, siga os passos seguintes nesta secção.
Navegue para o portal do Azure.
Utilize a barra de pesquisa para procurar o cofre de chaves que criou anteriormente.
Em Definições Selecione Políticas de acesso.
Selecione Adicionar Política de Acesso para adicionar uma nova política.
Para Permissões de segredo, selecione Obter e Lista.
Selecione a opção para selecionar um principal de serviço e procure o que criou no início desta secção. Um principal de segurança é um objeto que representa um utilizador, grupo, serviço ou aplicação que está a pedir acesso aos recursos do Azure.
Selecione Adicionar para criar a política de acesso e, em seguida, selecione Guardar quando terminar.
Nota
Os Cofres de Chaves do Azure que utilizam o controlo de acesso baseado em funções do Azure (RBAC do Azure) não são suportados.
Executar e rever o pipeline
Regresse ao separador anterior onde ficámos.
Selecione Guardar e, em seguida, selecione Guardar novamente para consolidar as alterações e acionar o pipeline. Poderá ser-lhe pedido para permitir o acesso do pipeline aos recursos do Azure, se lhe for pedido, selecione Permitir. Só terá de aprovar o pipeline uma vez.
Selecione a tarefa CmdLine para ver os registos.
Regresse ao resumo do pipeline e selecione o artefacto publicado.
Selecione o artefacto secret.txt para o abrir.
O ficheiro de texto deve conter o nosso segredo: mysecretpassword.
Aviso
Este tutorial destina-se apenas a fins educativos. Para obter as melhores práticas de segurança e como trabalhar com segredos em segurança, veja Gerir segredos nas suas aplicações de servidor com o Azure Key Vault.
Limpar os recursos
Siga os passos abaixo para eliminar os recursos que criou:
Se tiver criado uma nova organização para alojar o seu projeto, veja como eliminar a sua organização, caso contrário, elimine o projeto.
Todos os recursos do Azure criados durante este tutorial são alojados num único grupo de recursos PipelinesKeyVaultResourceGroup. Execute o seguinte comando para eliminar o grupo de recursos e todos os respetivos recursos.
az group delete --name PipelinesKeyVaultResourceGroup
FAQ
P: Estou a receber o seguinte erro: "o utilizador ou grupo não tem permissão de lista de segredos" o que devo fazer?
R: Se encontrar um erro a indicar que o utilizador ou grupo não tem permissão de lista de segredos no cofre de chaves, execute os seguintes comandos para autorizar a sua aplicação a aceder à chave ou segredo no Azure Key Vault:
$ErrorActionPreference="Stop";
$Credential = Get-Credential;
Connect-AzAccount -SubscriptionId <YOUR_SUBSCRIPTION_ID> -Credential $Credential;
$spn=(Get-AzureRmADServicePrincipal -SPN <YOUR_SERVICE_PRINCIPAL_ID>);
$spnObjectId=$spn.Id;
Set-AzureRmKeyVaultAccessPolicy -VaultName key-vault-tutorial -ObjectId $spnObjectId -PermissionsToSecrets get,list;
Passos seguintes
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários