Usar segredos do Azure Key Vault no Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
O Azure Key Vault permite que os desenvolvedores armazenem e gerenciem segredos com segurança, como chaves de API, credenciais ou certificados. O serviço do Azure Key Vault dá suporte a dois tipos de contêineres: cofres e pools de HSM (módulo de segurança de hardware) gerenciados. Os cofres dão suporte ao armazenamento de chaves, segredos e certificados com suporte de HSM e de software, enquanto os pools de HSM gerenciados dão suporte apenas a chaves com suporte de HSM.
Neste tutorial, você aprenderá a:
- Criar um Azure Key Vault usando a CLI do Azure
- Adicionar um segredo e configurar o acesso ao cofre de chaves do Azure
- Usar segredos em seu pipeline
Pré-requisitos
- Uma organização do Azure DevOps. Caso não tenha uma, você pode criá-la gratuitamente.
- Uma assinatura do Azure. Crie uma conta do Azure gratuitamente se você ainda não tiver uma.
Criar um Cofre de chaves do Azure
Entre no Portal do Azure e pressione o botão Cloud Shell no canto superior direito.
Se você tiver mais de uma assinatura do Azure associada à sua conta, use o comando abaixo para especificar uma assinatura padrão. Você pode usar
az account list
para gerar uma lista das suas assinaturas.az account set --subscription <your_subscription_name_or_ID>
Defina sua região do Azure padrão. Você pode usar
az account list-locations
para gerar uma lista de regiões disponíveis.az config set defaults.location=<your_region>
Por exemplo, esse comando selecionará a região westus2:
az config set defaults.location=westus2
Criar um grupo de recursos. Um grupo de recursos é um contêiner que mantém os recursos relacionados a uma solução do Azure.
az group create --name <your-resource-group>
Criar um cofre de chaves.
az keyvault create \ --name <your-key-vault> \ --resource-group <your-resource-group>
Crie um segredo no cofre de chaves do Azure.
az keyvault secret set \ --name "Password" \ --value "mysecretpassword" \ --vault-name <your-key-vault-name>
Criar um projeto
Entre na sua organização do Azure DevOps.
Se você não tiver nenhum projeto em sua organização, selecione Criar um projeto para começar. Caso contrário, selecione Novo projeto no canto superior direito.
Criar um repositório
Usaremos o YAML para criar nosso pipeline, mas primeiro precisamos criar um repositório.
Entre na sua organização do Azure DevOps e navegue até seu projeto.
Selecione Repositórios e Inicializar para inicializar um novo repositório com um LEIAME.
Criar um novo pipeline
Selecione Pipelines e escolha Novo Pipeline.
Selecione Git do Azure Repos (YAML).
Escolha o repositório criado nas etapas anteriores.
Selecione o modelo Pipeline inicial.
O pipeline padrão incluirá alguns scripts que executam comandos echo. Eles não serão necessários, logo podemos excluí-los. O novo arquivo YAML deve ser semelhante a este:
trigger: - main pool: vmImage: 'ubuntu-latest' steps:
Selecione Mostrar assistente para expandir o painel do assistente. Este painel fornece uma lista conveniente e pesquisável de tarefas de pipeline.
Pesquise o cofre e selecione a tarefa Azure Key Vault.
Selecione sua assinatura do Azure e escolha Autorizar. Selecione o Cofre de chaves no menu suspenso e escolha Adicionar para adicionar a tarefa ao pipeline YAML.
Observação
Não há suporte para o recurso Tornar segredos disponíveis para todo o trabalho no Azure DevOps Server 2019 e 2020.
O arquivo YAML deverá ser semelhante ao seguinte:
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'
Não salve e nem enfileire o pipeline ainda. Primeiro, devemos dar ao pipeline as permissões certas para acessar o Azure Key Vault. Mantenha a guia do navegador aberta, retomaremos as etapas restantes depois de configurarmos as permissões do cofre de chaves.
Configurar políticas de acesso do Azure Key Vault
Para acessar nosso Azure Key Vault, primeiro devemos configurar uma entidade de serviço para dar acesso ao Azure Pipelines. Siga este guia para criar sua entidade de serviço e prossiga com as próximas etapas nesta seção.
Navegue até o portal do Azure.
Use a barra de pesquisa para procurar o cofre de chaves criado anteriormente.
Em Configurações, selecione Políticas de acesso.
Selecione Adicionar Política de Acesso para adicionar uma nova política.
Selecione Permissões de segredo e escolha Obter e Listar.
Selecione a opção para escolher uma entidade de serviço e pesquise por aquela que você criou no início desta seção. Uma entidade de segurança é um objeto que representa um usuário, grupo, serviço ou aplicativo que está solicitando acesso aos recursos do Azure.
Selecione Adicionar para criar a política de acesso e escolha Salvar quando terminar.
Observação
Não há suporte para os Azure Key Vaults que usam o RBAC (controle de acesso baseado em função) do Azure.
Executar e revisar o pipeline
Volte para a guia anterior de onde paramos.
Selecione Salvar e escolha Salvar novamente para confirmar suas alterações e acionar o pipeline. Talvez seja solicitado que você permita o acesso do pipeline aos recursos do Azure, se solicitado, selecione Permitir. Você só precisará aprovar uma vez o pipeline.
Selecione a tarefa CmdLine para exibir os logs.
Retorne ao resumo do pipeline e selecione o artefato publicado.
Selecione o artefato secret.txt para abri-lo.
O arquivo de texto deve conter nosso segredo: mysecretpassword.
Aviso
Este tutorial é somente para fins educacionais. Para obter as melhores práticas de segurança e como trabalhar em segurança com segredos, confira Gerenciar segredos em seus aplicativos de servidor com o Azure Key Vault.
Limpar os recursos
Siga as etapas abaixo para excluir os recursos que você criou:
Se você criou uma nova organização para hospedar o projeto, confira como excluir sua organização, caso contrário, exclua seu projeto.
Todos os recursos do Azure criados durante este tutorial são hospedados em um único grupo de recursos PipelinesKeyVaultResourceGroup. Execute o seguinte comando para excluir o grupo de recursos e todos os recursos.
az group delete --name PipelinesKeyVaultResourceGroup
Perguntas frequentes
P: Estou recebendo o seguinte erro: "O usuário ou grupo não tem permissão de lista de segredos". O que devo fazer?
R: Se você encontrar um erro indicando que o usuário ou grupo não tem a permissão de lista de segredos no cofre de chaves, execute os seguintes comandos para autorizar seu aplicativo a acessar a chave ou o 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;
Próximas etapas
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