Configurar e validar permissões

Neste laboratório, você vai configurar um ambiente seguro que adere ao princípio de privilégios mínimos, garantindo que os membros possam acessar apenas os recursos necessários para executar suas tarefas e minimizar possíveis riscos de segurança. Isso envolve configurar e validar permissões de usuário e pipeline e configurar verificações de aprovação e branch no Azure DevOps.

Estes exercícios levam aproximadamente 30 minutos.

Antes de começar

Você precisará de uma assinatura do Azure, da organização do Azure DevOps e do aplicativo eShopOnWeb para acompanhar os laboratórios.

Instruções

Exercício 1: importar o pipeline de CI e configurar permissões específicas de pipeline

Neste exercício, você importará e executará o pipeline de CI para o aplicativo eShopOnWeb e configurará permissões específicas de pipeline.

Tarefa 1: Importar e executar o pipeline de CI

[!NOTE] Comece importando o pipeline de CI chamado eshoponweb-ci.yml.

  1. Navegue até o portal do Azure DevOps em https://dev.azure.com e abra sua organização.

  2. Abra o projeto eShopOnWeb.

  3. Acesse Pipelines > Pipelines.

  4. Selecione Novo Pipeline.

  5. Selecione Git do Azure Repos (Yaml).

  6. Selecione o repositório eShopOnWeb.

  7. Selecione Arquivo YAML existente do Azure Pipelines.

  8. Selecione o arquivo /.ado/eshoponweb-ci.yml e selecione Continuar.

  9. Clique no botão Executar para executar o pipeline.

    [!NOTE] Seu pipeline assumirá um nome com base no nome do projeto. Renomeie-o para identificar melhor o pipeline.

  10. Vá para Pipelines > Pipelines, selecione o pipeline criado recentemente, selecione as reticências e selecione a opção Renomear/mover.

  11. Nomeie-o eshoponweb-ci e selecione Salvar.

Tarefa 2: configurar e executar o pipeline com permissões específicas

[!NOTE] Para usar o pool de agentes configurado nesta tarefa, primeiro você precisará iniciar a VM do Azure que hospeda o agente.

  1. No seu navegador, abra o portal do Azure em https://portal.azure.com.

  2. No portal do Azure, navegue até a página exibindo a VM do Azure eshoponweb-vm implantada neste laboratório

  3. Na página da VM do Azure eshoponweb-vm, na barra de ferramentas, selecione Iniciar para iniciá-la.

    [!NOTE] Em seguida, você configurará o pipeline de CI para ser executado com o pool de agentes correspondente e validará as permissões para executar o pipeline. Você precisa ter permissões para editar o pipeline e adicionar permissões ao pool de agentes.

  4. Acesse as Configurações do Projeto e clique em Pools de Agentes em Pipelines.

  5. Abra o pool de agentes eShopOnWebSelfPool.

  6. Selecione a guia Segurança.

  7. Na seção Permissões de pipeline, selecione o botão + e selecione o pipeline eshoponweb-ci para adicioná-lo à lista de pipelines com acesso ao pool de agentes.

  8. Navegue até a página do projeto eShopOnWeb.

  9. Na página do projeto eShopOnWeb, navegue até Pipelines > Pipelines.

  10. Selecione o pipeline eshoponweb-ci e selecione Editar.

  11. Na subseção trabalhos da seção estágios, atualize o valor da propriedade pool para fazer referência ao pool de agentes auto-hospedado eShopOnWebSelfPool configurado nesta tarefa para que ele tem o seguinte formato:

      jobs:
      - job: Build
        pool: eShopOnWebSelfPool
        steps:
        - task: DotNetCoreCLI@2
    
  12. Selecione Salvar e escolha confirmar diretamente no branch principal.

  13. Selecione Salvar novamente.

  14. Selecione Executar o pipeline e clique em Executar novamente.

  15. Verifique se o trabalho de compilação está em execução no agente eShopOnWebSelfAgent e ele é concluído com êxito.

Tarefa 3: Configurar o pipeline de CD e validar permissões

  1. No portal do Azure DevOps, na página do projeto eShopOnWeb, acesse Pipelines > Pipelines.

  2. Selecione Novo pipeline.

  3. Selecione Git do Azure Repos (Yaml).

  4. Selecione o repositório eShopOnWeb.

  5. Selecione Arquivo YAML existente do Azure Pipelines.

  6. Selecione o arquivo /.ado/eshoponweb-cd-webapp-code.yml e selecione Continuar.

  7. Na definição de pipeline YAML, na seção de variáveis, personalize:

    • AZ400-EWebShop-NAME com o nome de sua preferência, por exemplo, rg-eshoponweb-perm.
    • Local com o nome da região do Azure que você deseja implantar seus recursos, por exemplo, southcentralus.
    • YOUR-SUBSCRIPTION-ID com sua ID de assinatura do Azure.
    • azure subs com azure subs gerenciados
    • az400-webapp-NAME com um nome global exclusivo do aplicativo Web a ser implantado, por exemplo, a cadeia de caracteres eshoponweb-lab-perm- seguida por um número aleatório de seis dígitos.
  8. Atualize o arquivo YAML para usar o pool de agentes eShopOnWebSelfPool. Para fazer isso, defina a seção do pool com o seguinte valor:

      jobs:
      - job: Deploy
        pool: eShopOnWebSelfPool
        steps:
        #download artifacts
        - download: eshoponweb-ci
    
  9. Selecione Salvar e executar e, em seguida, selecione Salvar e executar novamente.

  10. Abra o pipeline e observe a mensagem “Este pipeline precisa de permissão para acessar dois recursos antes que essa execução possa continuar a implantar no WebApp”. Selecione Exibir e, em seguida, Permitir para permitir a execução do pipeline.

    Captura de tela do pipeline com botões de permissão".

  11. Renomeie o pipeline para eshoponweb-cd-webapp-code.

Exercício 2: configurar e validar verificações de aprovação e branch

Neste exercício, você configurará e validará as verificações de aprovação e branch para o pipeline de CD.

Tarefa 1: Criar um ambiente e adicionar aprovações e verificações

  1. No portal do Azure DevOps, na página do projeto eShopOnWeb, selecione Pipelines > Ambientes.

  2. Selecione Criar ambiente.

  3. Nomeie o ambiente Teste, selecione Nenhum como o recurso e selecione Criar.

  4. Selecione Novo ambiente, crie um novo ambiente Produção, verifique se Nenhum está selecionado como o recurso e selecione Criar.

  5. Abra o ambiente Teste, selecione a guia Aprovações e verificações.

  6. Selecione Approvals.

  7. Na caixa de texto Aprovadores, insira o nome de usuário.

  8. Dê as instruções Aprovar a implantação para testar e selecione Criar.

    Captura de tela das aprovações do ambiente com instruções.

  9. Selecione o botão +, selecione Controle de branch e, em seguida, selecione Avançar.

  10. No campo Branch permitidos, deixe o padrão e selecione Criar. Você poderá adicionar mais branches se desejar.

    Captura de tela do controle de branch do ambiente com o branch principal.

  11. Crie outro ambiente chamado Produção e execute as mesmas etapas para adicionar aprovações e controle de ramificação. Para diferenciar os ambientes, adicione as instruções Aprovar a implantação para Produção e defina os branches permitidos como refs/heads/main.

[!NOTE] Você pode adicionar mais ambientes e configurar aprovações e controle de branch para eles. Além disso, você pode configurar a Segurança para adicionar usuários ou grupos ao ambiente com funções como Usuário, Criador ou Leitor.

Tarefa 2: configurar o pipeline de CD para usar o novo ambiente

  1. No portal do Azure DevOps, na página do projeto eShopOnWeb, selecione Pipelines > Pipelines.

  2. Abra o pipeline eshoponweb-cd-webapp-code.

  3. Selecione Editar.

  4. Substitua as linhas 21-27 (diretamente acima do comentário #download artefatos) pelo seguinte conteúdo:

    stages:
    - stage: Test
      displayName: Testing WebApp
      jobs:
      - deployment: Test
        pool: eShopOnWebSelfPool
        environment: Test
        strategy:
          runOnce:
            deploy:
              steps:
              - script: echo Hello world! Testing environments!
    - stage: Deploy
      displayName: Deploy to WebApp
      jobs:
      - deployment: Deploy
        pool: eShopOnWebSelfPool
        environment: Production
        strategy:
          runOnce:
            deploy:
              steps:
              - checkout: self
    

    [!NOTE] Você precisará deslocar todas as linhas seguindo o código acima de seis espaços à direita para garantir que as regras de recuo yaml sejam atendidas.

    Seu pipeline deve ter esta aparência:

    Captura de tela do pipeline com a nova implantação.

  5. Selecione Salvar (duas vezes) e Executar (duas vezes).

  6. Abra o estágio Testando o WebApp do pipeline e observe a mensagem 1 aprovação precisa de sua revisão antes que essa execução possa continuar Testando o WebApp. Selecione Revisar e Aprovar.

    Captura de tela do pipeline com a Etapa de teste a ser aprovada".

  7. Aguarde a conclusão do pipeline, abra o log do pipeline e verifique se a etapa Testar o WebApp foi executada com êxito.

    Captura de tela do log de pipeline com a etapa Testar o WebApp executada com êxito".

  8. Volte para o pipeline e você verá o estágio Implantar no WebApp aguardando aprovação. Selecione Revisar e Aprovar como fez antes para o estágio Testar o WebApp.

  9. Aguarde até que o pipeline seja concluído e verifique se o estágio Implantar no WebApp foi executado com êxito.

    Captura de tela do pipeline com o estágio Implantar no WebApp a ser aprovado".

[!NOTE] Você conseguirá executar o pipeline com êxito com as verificações de aprovações e de branch em ambos os ambientes, de Teste e de Produção.

Exercício 3: Executar a limpeza dos recursos do Azure e do Azure DevOps

Neste exercício, você removerá os recursos do Azure e do Azure DevOps criados neste laboratório.

Tarefa 1: remover recursos do Azure

  1. No portal do Azure, navegue até o grupo de recursos rg-eshoponweb-perm que contém recursos implantados e selecione Excluir grupo de recursos para excluir todos os recursos criados neste laboratório.

Tarefa 2: remover pipelines do Azure DevOps

  1. Navegue até o portal do Azure DevOps em https://dev.azure.com e abra sua organização.

  2. Abra o projeto eShopOnWeb.

  3. Acesse Pipelines > Pipelines.

  4. Vá para Pipelines > Pipelines e exclua os pipelines existentes.

Tarefa 3: Recriar o repositório do Azure DevOps

  1. No portal do Azure DevOps, no projeto eShopOnWeb, selecione Configurações do projeto no canto inferior esquerdo.

  2. No menu vertical Configurações do projeto ao lado esquerdo, na seção Repositórios, selecione Repositórios.

  3. No painel Todos os Repositórios, passe o mouse sobre a extremidade direita da entrada do repositório eShopOnWeb até que o ícone de reticências Mais opções apareça. Selecione-o e, no menu Mais opções, selecione Renomear.

  4. Na janela Renomear o repositório eShopOnWeb, na caixa de texto Nome do repositório, insira eShopOnWeb_old e selecione Renomear.

  5. De volta ao painel Todos os Repositórios, selecione + Criar.

  6. No painel Criar um repositório, na caixa de texto Nome do repositório, insira eShopOnWeb, desmarque a caixa de seleção Adicionar um LEIAME e selecione Criar.

  7. De volta ao painel Todos os Repositórios, passe o mouse sobre a extremidade direita da entrada do repositório eShopOnWeb_old até que o ícone de reticências Mais opções apareça. Selecione-o e, no menu Mais opções, selecione Excluir.

  8. Na janela Excluir o repositório eShopOnWeb_old, insira eShopOnWeb_old e selecione Excluir.

  9. No menu de navegação esquerdo do portal do Azure DevOps, selecione Repositórios.

  10. No painel eShopOnWeb está vazio. Adicione algum código! selecione Importar um repositório.

  11. Na janela Importar um repositório do Git, cole a seguinte URL https://github.com/MicrosoftLearning/eShopOnWeb e selecione Importar:

Revisão

Neste laboratório, você aprendeu a configurar um ambiente seguro que adere ao princípio de privilégios mínimos, garantindo que os membros possam acessar apenas os recursos necessários para executar as tarefas deles e minimizar possíveis riscos de segurança. Você configurou e validou permissões de usuário e pipeline e configurou verificações de aprovação e branch no Azure DevOps.