Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure DevOps Services | Servidor Azure DevOps | Azure DevOps Server 2022
Em tempo de execução, cada trabalho em um pipeline pode acessar outros recursos no Azure DevOps. Por exemplo, um trabalho pode:
- Confira o código-fonte de um repositório Git
- Adicionar uma marca ao repositório
- Acessar um feed no Azure Artifacts
- Carregar logs do agente para o serviço
- Carregar resultados de teste e outros artefatos do agente para o serviço
- Atualizar um item de trabalho
O Azure Pipelines usa tokens de acesso ao trabalho para executar essas tarefas. Um token de acesso ao trabalho é um token de segurança gerado dinamicamente pelo Azure Pipelines para cada trabalho em tempo de execução. O agente no qual o trabalho está sendo executado usa o token de acesso ao trabalho para acessar esses recursos no Azure DevOps. Você pode controlar a quais recursos seu pipeline tem acesso controlando como as permissões são concedidas a tokens de acesso ao trabalho.
As permissões do token são derivadas do escopo de autorização de trabalho (a) e (b) das permissões definidas na conta de serviço de build de projeto ou coleção.
Escopo de autorização de trabalho
Você pode definir o escopo de autorização do trabalho para ser coleção ou projeto. Ao definir o escopo como coleção, você opta por permitir que os pipelines acessem todos os repositórios na coleção ou organização. Ao definir o escopo como projeto, você opta por restringir o acesso somente aos repositórios que estão no mesmo projeto que o pipeline.
O escopo de autorização de trabalho pode ser definido para toda a organização do Azure DevOps ou para um projeto específico.
- Para definir o escopo de autorização de trabalho no nível da organização para todos os projetos, escolhaConfigurações de> de > da organização.
- Para definir o escopo de autorização de trabalho para um projeto específico, escolhaConfigurações de> de > de projeto.
Habilite uma ou mais das seguintes configurações. A habilitação dessas configurações é recomendada, pois aprimora a segurança dos pipelines.
- Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de não lançamento – essa configuração se aplica a pipelines YAML e pipelines de build clássicos e não se aplica a pipelines de lançamento clássicos.
- Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de lançamento – essa configuração se aplica somente a pipelines de lançamento clássicos .
Observação
Se o escopo estiver definido como projeto no nível da organização, você não poderá alterar o escopo em cada projeto.
Importante
Se o escopo não estiver restrito no nível da organização ou no nível do projeto, cada trabalho em seu pipeline YAML obterá um token de acesso de trabalho com escopo de coleção. Em outras palavras, seu pipeline tem acesso a qualquer repositório em qualquer projeto da sua organização. Se um adversário conseguir obter acesso a um único pipeline em um único projeto, ele poderá obter acesso a qualquer repositório em sua organização. Por isso, é recomendável restringir o escopo no nível mais alto (configurações da organização) para conter o ataque a um único projeto.
Observação
Se o pipeline estiver em um projeto público, o escopo de autorização do trabalho será automaticamente restrito ao projeto , independentemente do que você configurar em qualquer configuração. Trabalhos em um projeto público podem acessar recursos como compilar artefatos ou resultados de teste somente dentro do projeto e não de outros projetos da organização.
Proteger o acesso a repositórios em pipelines YAML
Além das configurações de escopo de autorização de trabalho descritas na seção anterior, o Azure Pipelines fornece um acesso de Proteção aos repositórios na configuração de pipelines YAML .
Os pipelines podem acessar todos os repositórios do Azure DevOps em projetos autorizados, a menos que o acesso de proteção a repositórios em pipelines YAML esteja habilitado. Com essa opção habilitada, você pode reduzir o escopo de acesso para todos os pipelines apenas para repositórios do Azure DevOps explicitamente referenciados por uma checkout etapa ou uma uses instrução no trabalho de pipeline que usa esse repositório.
Para obter mais informações, consulte repositórios Git do Azure Repos – Proteger o acesso a repositórios em pipelines YAML.
Importante
Proteger o acesso a repositórios em pipelines YAML é habilitado por padrão para novas organizações e projetos criados após maio de 2020.
Identidades de build com escopo
O Azure DevOps usa duas identidades internas para executar pipelines.
- Uma identidade com escopo de coleção, que tem acesso a todos os projetos da coleção (ou organização do Azure DevOps Services)
- Uma identidade com escopo de projeto, que tem acesso a um único projeto
Essas identidades são permissões alocadas necessárias para executar atividades de tempo de execução de build/versão ao chamar de volta para o sistema do Azure DevOps. Há permissões padrão internas e você também pode gerenciar suas próprias permissões conforme necessário.
O nome da identidade com escopo de coleção tem o seguinte formato:
Project Collection Build Service ({OrgName})- Por exemplo, se o nome da organização for
fabrikam-tailspin, essa conta terá o nomeProject Collection Build Service (fabrikam-tailspin).
O nome da identidade no escopo do projeto tem o seguinte formato:
{Project Name} Build Service ({Org Name})- Por exemplo, se o nome da organização for
fabrikam-tailspine o nome do projeto estiverSpaceGameWeb, essa conta terá o nomeSpaceGameWeb Build Service (fabrikam-tailspin).
Por padrão, a identidade com escopo de coleção é usada, a menos que seja configurada de outra forma, conforme descrito na seção anterior do escopo de autorização do trabalho .
Gerenciar permissões de conta de serviço de build
Um resultado da configuração do acesso no escopo do projeto pode ser que a identidade com escopo de projeto pode não ter permissões para um recurso que o escopo da coleção tinha.
Talvez você queira alterar as permissões do token de acesso ao trabalho em cenários como o seguinte:
- Você deseja que seu pipeline acesse um feed que esteja em um projeto diferente.
- Você deseja que seu pipeline seja impedido de alterar o código no repositório.
- Você deseja que seu pipeline seja impedido de criar itens de trabalho.
Para atualizar as permissões do token de acesso ao trabalho:
Primeiro, determine o escopo de autorização do trabalho para o pipeline. Consulte a seção acima para entender o escopo de autorização do trabalho. Se o escopo de autorização do trabalho for coleção, a conta de serviço de build correspondente para gerenciar permissões será o Serviço de Build de Coleção de Projetos (nome da coleção). Se o escopo de autorização do trabalho for projeto, a conta de serviço de build na qual gerenciar permissões será o Serviço de Build do nome do projeto (nome da coleção).
Para restringir ou conceder acesso adicional ao Project Collection Build Service (nome da coleção):
- Selecione Gerenciar segurança no menu estouro na página Pipelines .
- Em Usuários, selecione Serviço de Build da Coleção de Projetos (nome-da-coleção).
- Faça alterações nas permissões relacionadas a pipelines para essa conta.
- Navegue até as configurações da organização para sua organização do Azure DevOps (ou configurações de coleção para sua coleção de projetos).
- Selecione Permissões em Segurança.
- Na guia Usuários , procure o Serviço de Build da Coleção de Projetos (nome-da-coleção).
- Faça alterações nas permissões não relacionadas a pipelines para essa conta.
- Como o Project Collection Build Service (nome da coleção) é um usuário em sua organização ou coleção, você pode adicionar essa conta explicitamente a qualquer recurso , por exemplo, a um feed no Azure Artifacts.
Para restringir ou conceder acesso adicional ao Serviço de Build do nome do seu projeto (nome-da-coleção):
- A conta de serviço de build na qual você pode gerenciar permissões só será criada depois que você executar o pipeline uma vez. Verifique se você já executou o pipeline uma vez.
- Selecione Gerenciar segurança no menu estouro na página Pipelines .
- Em Usuários, selecione Serviço de Compilação nome-projeto (nome-da-coleção).
- Faça alterações nas permissões relacionadas a pipelines para essa conta.
- Navegue até as configurações da organização para sua organização do Azure DevOps (ou configurações de coleção para sua coleção de projetos).
- Selecione Permissões em Segurança.
- Na guia Usuários , procure o serviço de build nome do seu projeto (nome-da-coleção).
- Faça alterações nas permissões não relacionadas a pipelines para essa conta.
- Como o Serviço de Build do nome do seu projeto (seu nome de coleção) é um usuário em sua organização ou coleção, você pode adicionar essa conta explicitamente a qualquer recurso , por exemplo, a um feed no Azure Artifacts.
Configurar permissões para um projeto acessar outro projeto na mesma coleção de projetos
Neste exemplo, a identidade de build no escopo do fabrikam-tailspin/SpaceGameWeb projeto recebe permissões para acessar o fabrikam-tailspin/FabrikamFiber projeto.
No projeto FabrikamFiber , navegue até as configurações do Project, Permissões.
Crie um novo grupo chamado Projetos Externos e adicione a conta do Serviço de Build do SpaceGameWeb .
Escolha Usuários, comece a digitar o nome SpaceGameWeb e selecione a conta do Serviço de Build do SpaceGameWeb . Se você não vir nenhum resultado da pesquisa inicialmente, selecione Expandir pesquisa.
Conceda a permissão exibir informações no nível do projeto para esse usuário.
Exemplo – Configurar permissões para acessar outro repositório na mesma coleção de projetos
Neste exemplo, a identidade de build no escopo do fabrikam-tailspin/SpaceGameWeb projeto recebe permissão para acessar o FabrikamFiber repositório no fabrikam-tailspin/FabrikamFiber projeto.
Siga as etapas para conceder a
SpaceGameWebpermissão de identidade de build no escopo do projeto para acessar oFabrikamFiberprojeto.No projeto FabrikamFiber , navegue até configurações do Project, Repositórios, FabrikamFiber.
Comece a digitar o nome SpaceGameWeb e selecione a conta do Serviço de Build do SpaceGameWeb .
Conceda permissões de leitura para esse usuário.
Exemplo – Configurar permissões para acessar outros recursos na mesma coleção de projetos
Neste exemplo, a identidade de build no escopo do fabrikam-tailspin/SpaceGameWeb projeto recebe permissões para acessar outros recursos no fabrikam-tailspin/FabrikamFiber projeto.
Siga as etapas para conceder a
SpaceGameWebpermissão de identidade de build no escopo do projeto para acessar oFabrikamFiberprojeto.Configure as permissões desejadas para esse usuário.
perguntas frequentes
Como determinar o escopo de autorização de trabalho do meu pipeline YAML?
- Se o projeto for um projeto público, o escopo de autorização do trabalho sempre será um projeto , independentemente de outras configurações.
- Se o pipeline estiver em um projeto privado, verifique as configurações do Pipeline nas configurações da Organização do Azure DevOps:
- Se o escopo de autorização de trabalho limite ao projeto atual para pipelines de não lançamento estiver habilitado, o escopo será o projeto.
- Se o escopo de autorização de trabalho limite para o projeto atual para pipelines que não são de lançamento não estiver habilitado, verifique as configurações do Pipeline nas configurações do Projeto no Azure DevOps:
- Se o escopo de autorização de trabalho limite ao projeto atual para pipelines de não lançamento estiver habilitado, o escopo será o projeto.
- Caso contrário, o escopo será coleção.
Como determinar o escopo de autorização de trabalho do meu pipeline de build clássico?
- Se o pipeline estiver em um projeto público, o escopo de autorização do trabalho será o projeto , independentemente de outras configurações.
- Se o pipeline estiver em um projeto privado, verifique as configurações do Pipeline nas configurações da Organização do Azure DevOps:
- Se o escopo de autorização de trabalho limite ao projeto atual para pipelines de não lançamento estiver habilitado, o escopo será o projeto.
- Se o escopo de autorização de trabalho limite para o projeto atual para pipelines que não são de lançamento não estiver habilitado, verifique as configurações do Pipeline nas configurações do Projeto no Azure DevOps:
- Se o escopo de autorização de trabalho limite ao projeto atual para pipelines de não lançamento estiver habilitado, o escopo será o projeto.
- Se o escopo de autorização de trabalho limite para o projeto atual para pipelines sem versão não estiver habilitado, abra o editor do pipeline e navegue até a guia Opções .
- Se o escopo de autorização do trabalho build for Projeto atual, o escopo será o projeto.
- Ou então, o escopo é coleção.
Ao criar um novo pipeline clássico, o escopo de autorização do trabalho é definido como projeto atual e o escopo de autorização do trabalho de build é definido como projeto por padrão.
Como determinar o escopo de autorização de trabalho do meu pipeline de lançamento clássico?
- Se o pipeline estiver em um projeto público, o escopo de autorização do trabalho será o projeto , independentemente de outras configurações.
- Se o pipeline estiver em um projeto privado, verifique as configurações do Pipeline nas configurações da Organização do Azure DevOps:
- Se o escopo de autorização de trabalho limite para o projeto atual para pipelines de lançamento estiver habilitado, o escopo será o projeto.
- Se o escopo de autorização de trabalho limite para o projeto atual para pipelines de lançamento não estiver habilitado, verifique as configurações do Pipeline nas configurações do Projeto no Azure DevOps:
- Se o escopo de autorização de trabalho limite para o projeto atual para pipelines de lançamento estiver habilitado, o escopo será o projeto.
- Caso contrário, o escopo será coleção.