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 2022 - Azure DevOps Server 2019
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 tag ao repositório
- Aceder a um feed nos Artefactos do Azure
- 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 a tarefas para executar essas tarefas. Um token de acesso a trabalho é um token de segurança gerado dinamicamente pelos Pipelines do Azure para cada trabalho em tempo de execução. O agente no qual a tarefa está em execução utiliza o token de acesso à tarefa para aceder a estes recursos no Azure DevOps. Pode controlar os recursos aos quais o pipeline tem acesso ao controlar a forma como as permissões são concedidas aos tokens de acesso a tarefas.
As permissões do token derivam (a) do âmbito de autorização da tarefa e (b) das permissões que definiu na conta de serviço de compilação de projetos ou coleções.
Escopo da autorização de trabalho
Você pode definir o escopo de autorização de trabalho como de coleta ou projeto. Ao definir o escopo para coleta, você opta por permitir que os pipelines acessem todos os repositórios na coleção ou organização. Ao definir o escopo para projeto, você opta por restringir o acesso apenas aos repositórios que estão no mesmo projeto que o pipeline.
O âmbito de autorização da Tarefa pode ser definido para toda a organização do Azure DevOps ou para um projeto específico.
Observação
No Azure DevOps Server 2020, Limitar o escopo de autorização de trabalho ao projeto atual se aplica somente a pipelines YAML e pipelines de compilação clássicos. Não se aplica aos pipelines de liberação clássicos. Os pipelines de liberação clássicos sempre são executados com o escopo da coleção de projetos.
Para definir o escopo de autorização de trabalho para a organização:
- Navegue até a página de configurações da sua organização na interface do usuário do Azure DevOps.
- Selecione Configurações em Pipelines.
- Habilite Limitar o escopo de autorização de trabalho ao projeto atual limite o escopo ao projeto. Essa é a configuração recomendada, pois aumenta a segurança de seus pipelines.
Para definir o escopo de autorização de trabalho para um projeto específico:
- Navegue até a página de configurações do projeto na interface do usuário do Azure DevOps.
- Selecione Configurações em Pipelines.
- Habilite Limitar o escopo de autorização de trabalho ao projeto atual limite o escopo ao projeto. Essa é a configuração recomendada, pois aumenta a segurança de seus pipelines.
- Para definir o escopo de autorização de trabalho no nível da organização para todos os projetos, escolha Configurações da organização>Pipelines>Configurações.
- Para definir o escopo de autorização de trabalho para um projeto específico, escolha Configurações do projeto>Pipelines>Configurações.
Habilite uma ou mais das seguintes configurações. Recomenda-se habilitar essas configurações, pois aumenta a segurança de seus pipelines.
- Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de não liberação - Esta configuração se aplica a pipelines YAML e pipelines de construção clássicos e não se aplica a pipelines de liberação clássicos.
- Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de liberação - Esta configuração se aplica apenas aos pipelines de liberação clássicos.
Observação
Se o escopo estiver definido para de 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 do projeto, cada trabalho em seu pipeline YAML receberá um token de acesso ao trabalho com escopo de coleção. Em outras palavras, seu pipeline tem acesso a qualquer repositório em qualquer projeto de sua organização. Se um adversário for capaz de obter acesso a um único pipeline em um único projeto, ele poderá obter acesso a qualquer repositório em sua organização. É por isso que é 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 de trabalho será automaticamente restrito a projeto independentemente do que você configurar em qualquer configuração. Os trabalhos em um projeto público podem acessar recursos como artefatos de construção ou resultados de teste somente dentro do projeto e não de outros projetos da organização.
Limitar o escopo de autorização de trabalho a repositórios de DevOps do Azure referenciados
Além das configurações de escopo de autorização de trabalho descritas na seção anterior, o Azure Pipelines fornece uma Limitar o escopo de autorização de trabalho para repositórios de DevOps do Azure referenciados.
Os pipelines podem acessar qualquer repositório de DevOps do Azure em projetos autorizados, a menos que escopo de autorização de trabalho para repositórios de DevOps do Azure referenciados esteja habilitado. Com essa opção habilitada, você pode reduzir o escopo de acesso para todos os pipelines para apenas repositórios de DevOps do Azure 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 - Limitar o escopo de autorização de trabalho aos repositórios de DevOps do Azure referenciados.
Proteja 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 uma configuração Proteger o acesso a repositórios em pipelines YAML.
Os pipelines podem acessar qualquer repositório de DevOps do Azure em projetos autorizados, a menos que Proteger o acesso a repositórios em pipelines YAML esteja habilitado. Com essa opção habilitada, você pode reduzir o escopo de acesso para todos os pipelines para apenas repositórios de DevOps do Azure 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 está habilitado por padrão para novas organizações e projetos criados após maio de 2020.
Identidades de compilação 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 na coleção (ou organização para Serviços de DevOps do Azure)
- Uma identidade de escopo de projeto , que tem acesso a um único projeto
Essas identidades são alocadas permissões necessárias para executar atividades de tempo de execução de compilação/liberação ao chamar de volta para o sistema Azure DevOps. Há permissões padrão internas e você também pode gerenciar suas próprias permissões, conforme necessário.
A identidade com escopo de coleção nome 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)
.
A identidade nome escopo do projeto tem o seguinte formato:
{Project Name} Build Service ({Org Name})
- Por exemplo, se o nome da organização for
fabrikam-tailspin
e o nome do projeto forSpaceGameWeb
, essa conta terá o nomeSpaceGameWeb Build Service (fabrikam-tailspin)
.
Por padrão, a identidade com escopo de coleção é usada, a menos que configurada de outra forma, conforme descrito na seção escopo de autorização de trabalho do anterior.
Gerenciar permissões de conta de serviço de compilação
Um resultado da definição do acesso com escopo do projeto pode ser que a identidade do escopo do 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 os seguintes:
- 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 de trabalho para seu pipeline. Consulte a seção acima para entender o escopo da autorização de trabalho. Se o escopo de autorização de trabalho for de coleta , a conta de serviço de compilação correspondente para gerenciar permissões será Project Collection Build Service (your-collection-name). Se o escopo de autorização de trabalho for projeto, a conta de serviço de compilação na qual gerenciar permissões será Serviço de Compilação Your-project-name (seu-nome-da-coleção).
Para restringir ou conceder acesso adicional a Serviço de Compilação de Coleção de Projetos (seu-nome-da-coleção):
- Selecione Gerenciar de segurança no menu de estouro na página Pipelines.
- Em Usuários, selecione Project Collection Build Service (your-collection-name).
- Faça quaisquer alterações nas permissões relacionadas a pipelines para esta 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 Serviço de Compilação de Coleção de Projetos (seu-nome-da-coleção).
- Faça quaisquer alterações nas permissões não relacionadas a pipelines para esta conta.
- Como Serviço de Criação de Coleção de Projetos (seu-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 nos Artefatos do Azure.
Para restringir ou conceder acesso adicional a Serviço de compilação do nome do seu projeto (seu-nome da coleção):
- A conta de serviço de compilação na qual você pode gerenciar permissões só será criada depois que você executar o pipeline uma vez. Certifique-se de que você já executou o pipeline uma vez.
- Selecione Gerenciar de segurança no menu de estouro na página Pipelines.
- Em Usuários, selecione Serviço de compilação Seu nome de projeto (seu-nome-da-coleção).
- Faça quaisquer alterações nas permissões relacionadas a pipelines para esta 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 serviço de compilação Your-project-name (your-collection-name).
- Faça quaisquer alterações nas permissões não relacionadas a pipelines para esta conta.
- Como Serviço de Criação do nome do projeto (seu-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.
Configurar permissões para um projeto acessar outro projeto na mesma coleção de projetos
Neste exemplo, a identidade de compilação com escopo de projeto fabrikam-tailspin/SpaceGameWeb
recebe permissões para acessar o projeto fabrikam-tailspin/FabrikamFiber
.
No projeto FabrikamFiber, navegue até Configurações do projeto, Permissões.
Crie um novo Grupo chamado Projetos Externos e adicione a conta Serviço de Construção SpaceGameWeb.
Escolha Usuários, comece a digitar o nome SpaceGameWebe selecione a conta SpaceGameWeb Build Service. Se você não vir nenhum resultado da pesquisa inicialmente, selecione Expandir pesquisa.
Conceda ao Exibir informações no nível do projeto permissão para esse usuário.
Exemplo - Configurar permissões para acessar outro repositório na mesma coleção de projetos
Neste exemplo, a identidade de compilação com escopo de projeto fabrikam-tailspin/SpaceGameWeb
recebe permissão para acessar o repositório FabrikamFiber
no projeto fabrikam-tailspin/FabrikamFiber
.
Siga as etapas para conceder ao
SpaceGameWeb
permissão de identidade de compilação com escopo de projeto para acessar o projetoFabrikamFiber
.No projeto FabrikamFiber, navegue até Configurações do projeto, Repositórios, FabrikamFiber.
Escolha o ícone +, comece a digitar o nome SpaceGameWeb e selecione a conta SpaceGameWeb Build Service.
Comece a digitar o nome SpaceGameWebe selecione a conta SpaceGameWeb Build Service.
Conceda permissões de 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 compilação com escopo de projeto fabrikam-tailspin/SpaceGameWeb
recebe permissões para acessar outros recursos no projeto fabrikam-tailspin/FabrikamFiber
.
Siga as etapas para conceder ao
SpaceGameWeb
permissão de identidade de compilação com escopo de projeto para acessar o projetoFabrikamFiber
.Configure as permissões desejadas para esse usuário.
Perguntas Frequentes
Como determino o escopo de autorização de trabalho do meu pipeline YAML?
- Se o seu projeto for um projeto público, o escopo de autorização de trabalho será sempre projeto independentemente de quaisquer outras configurações.
- Verifique as configurações de Pipeline em suas configurações do Azure DevOps Organization:
- Se Limitar o escopo de autorização de trabalho ao de projeto atual estiver habilitado, o escopo será projeto.
- Se Limitar o escopo de autorização de trabalho ao de projeto atual não estiver habilitado, verifique as configurações de Pipeline em seu de configurações do Projeto no Azure DevOps:
- Se Limitar o escopo de autorização de trabalho ao de projeto atual estiver habilitado, o escopo será projeto.
- Caso contrário, o escopo é coleta.
- Se o pipeline estiver em um projeto privado, verifique as configurações de Pipeline em suas configurações do Azure DevOps Organization:
- Se Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de não-lançamento estiver habilitado, o escopo será projeto.
- Se Limitar o escopo de autorização de trabalho ao projeto atual para pipelines não liberados não estiver habilitado, verifique as configurações de Pipeline em seu de configurações do Projeto no Azure DevOps:
- Se Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de não-lançamento estiver habilitado, o escopo será projeto.
- Caso contrário, o escopo é coleta.
Como determino o escopo de autorização de trabalho do meu pipeline de compilação clássico?
- Se o pipeline estiver em um projeto público, o escopo de autorização de trabalho será projeto independentemente de quaisquer outras configurações.
- Verifique as configurações de Pipeline em suas configurações do Azure DevOps Organization:
- Se Limitar o escopo de autorização de trabalho ao de projeto atual estiver habilitado, o escopo será projeto.
- Se Limitar o escopo de autorização de trabalho ao de projeto atual não estiver habilitado, verifique as configurações de Pipeline em seu de configurações do Projeto no Azure DevOps:
- Se Limitar o escopo de autorização de trabalho ao de projeto atual estiver habilitado, o escopo será projeto.
- Se Limitar o escopo de autorização de trabalho ao atual do projeto não estiver habilitado, abra o editor do pipeline e navegue até a guia Opções de .
- Se o escopo de autorização de trabalho Build for projeto atual, o escopo será projeto.
- Caso contrário, o escopo é coleção.
- Se o pipeline estiver em um projeto privado, verifique as configurações de Pipeline em suas configurações do Azure DevOps Organization:
- Se Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de não-lançamento estiver habilitado, o escopo será projeto.
- Se Limitar o escopo de autorização de trabalho ao projeto atual para pipelines não liberados não estiver habilitado, verifique as configurações de Pipeline em seu de configurações do Projeto no Azure DevOps:
- Se Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de não-lançamento estiver habilitado, o escopo será projeto.
- Se Limitar o escopo de autorização de trabalho ao projeto atual para pipelines não liberados não estiver habilitado, abra o editor do pipeline e navegue até a guia Opções de .
- Se o escopo de autorização de trabalho Build for projeto atual, o escopo será projeto.
- Ou então, o escopo é coleção.
Ao criar um novo pipeline clássico, o escopo de autorização de trabalho é definido como de projeto atual e o escopo de autorização de trabalho de compilação é definido como de projeto por padrão.
Como determino o escopo de autorização de trabalho do meu pipeline de liberação clássico?
Os pipelines de versão clássicos no Azure DevOps Server 2020 e abaixo são executados com coleção escopo.
- Se o pipeline estiver em um projeto público, o escopo de autorização de trabalho será projeto independentemente de quaisquer outras configurações.
- Se o pipeline estiver em um projeto privado, verifique as configurações de Pipeline em suas configurações do Azure DevOps Organization:
- Se Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de liberação estiver habilitado, o escopo será projeto.
- Se Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de liberação não estiver habilitado, verifique as configurações de Pipeline em seu Configurações do Projeto no Azure DevOps:
- Se Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de liberação estiver habilitado, o escopo será projeto.
- Caso contrário, o escopo é coleta.