Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Au moment de l’exécution, chaque travail d’un pipeline peut accéder à d’autres ressources dans Azure DevOps. Par exemple, un travail peut :
- Extraire le code source à partir d’un référentiel Git
- Ajouter une balise au référentiel
- Accéder à un flux dans Azure Artifacts
- Charger les journaux d’activité de l’agent vers le service
- Charger les résultats des tests et d’autres artefacts de l’agent vers le service
- Mettre à jour un élément de travail
Azure Pipelines utilise des jetons d’accès aux travaux pour effectuer ces tâches. Un jeton d’accès de travail est un jeton de sécurité généré dynamiquement par Azure Pipelines pour chaque travail au moment de l’exécution. L’agent sur lequel le travail s’exécute utilise le jeton d’accès du travail pour accéder à ces ressources dans Azure DevOps. Vous pouvez contrôler les ressources auxquelles votre pipeline a accès en contrôlant la façon dont les autorisations sont accordées aux jetons d’accès de travaux.
Les autorisations du jeton sont dérivées (a) de l’étendue d’autorisation du travail et (b) des autorisations que vous définissez sur le compte de service de génération de projet ou de collection.
Étendue d’autorisation du travail
Vous pouvez définir l’étendue d’autorisation du travail pour qu’elle soit de collecte ou projet. En définissant l’étendue sur collection, vous choisissez de laisser les pipelines accéder à tous les référentiels de la collection ou de l’organisation. En définissant l’étendue sur projet, vous choisissez de restreindre l’accès uniquement aux référentiels qui se trouvent dans le même projet que le pipeline.
L'étendue d'autorisation de travail peut être définie pour l’ensemble de l’organisation Azure DevOps ou pour un projet spécifique.
Remarque
Dans Azure DevOps Server 2020, limiter l’étendue d’autorisation du travail au projet actuel s’applique uniquement aux pipelines YAML et aux pipelines de build classiques. Elle ne s’applique pas aux pipelines de mise en production classiques. Les pipelines de mise en production classiques s’exécutent toujours avec l’étendue de la collection de projets.
Pour définir l’étendue d’autorisation du travail pour l’organisation :
- Accédez à la page des paramètres de votre organisation dans l’interface utilisateur Azure DevOps.
- Sélectionnez Paramètres sous pipelines.
- Activez limitez l’étendue d’autorisation du travail au projet actuel pour limiter l’étendue au projet. Il s’agit du paramètre recommandé, car il améliore la sécurité de vos pipelines.
Pour définir l’étendue d’autorisation du travail pour un projet spécifique :
- Accédez à la page des paramètres de votre projet dans l’interface utilisateur Azure DevOps.
- Sélectionnez Paramètres sous pipelines.
- Activez limitez l’étendue d’autorisation du travail au projet actuel pour limiter l’étendue au projet. Il s’agit du paramètre recommandé, car il améliore la sécurité de vos pipelines.
- Pour définir l’étendue d’autorisation du travail au niveau de l’organisation pour tous les projets, choisissez Paramètres de l’organisation>Pipelines>Paramètres.
- Pour définir l’étendue d’autorisation du travail pour un projet spécifique, choisissez paramètres de projet>Pipelines>Paramètres.
Activez un ou plusieurs des paramètres suivants. L’activation de ces paramètres est recommandée, car il améliore la sécurité de vos pipelines.
- Limitez l’étendue d’autorisation du travail au projet actuel pour les pipelines sans mise en production : ce paramètre s’applique aux pipelines YAML et aux pipelines de build classiques et ne s’applique pas aux pipelines de mise en production classiques .
- Limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines de mise en production : ce paramètre s’applique uniquement aux pipelines de mise en production classiques.
Remarque
Si l’étendue est définie sur projet au niveau de l’organisation, vous ne pouvez pas modifier l’étendue de chaque projet.
Important
Si l’étendue n’est pas limitée au niveau de l’organisation ou du projet, chaque travail de votre pipeline YAML obtient un jeton d’accès de tâche délimité à la collecte. En d’autres termes, votre pipeline a accès à n’importe quel dépôt dans n’importe quel projet de votre organisation. Si un adversaire est en mesure d’accéder à un seul pipeline dans un seul projet, il pourra accéder à n’importe quel dépôt de votre organisation. C’est pourquoi, il est recommandé de restreindre l’étendue au niveau le plus élevé (paramètres de l’organisation) afin de contenir l’attaque à un seul projet.
Remarque
Si votre pipeline se trouve dans un projet public, l’étendue d’autorisation du travail est automatiquement limitée à projet quel que soit le paramètre que vous configurez. Les travaux d’un projet public peuvent accéder à des ressources telles que des artefacts de build ou des résultats de test uniquement dans le projet et non à partir d’autres projets de l’organisation.
Limiter l’étendue d’autorisation du travail aux dépôts Azure DevOps référencés
En plus des paramètres d’étendue d’autorisation de travail décrits dans la section précédente, Azure Pipelines fournit une étendue d’autorisation de travail Limiter l’étendue d’autorisation du travail aux référentiels Azure DevOps référencés paramètre.
Les pipelines peuvent accéder à n’importe quel référentiel Azure DevOps dans des projets autorisés, sauf si limiter l’étendue d’autorisation du travail aux référentiels Azure DevOps référencés est activée. Quand cette option est activée, vous pouvez réduire l’étendue d’accès de tous les pipelines aux seuls dépôts Azure DevOps explicitement référencés par une étape checkout
ou une instruction uses
dans le travail de pipeline qui utilise ce dépôt.
Pour plus d’informations, consultez référentiels Git Azure Repos - Limitez l’étendue d’autorisation du travail aux référentiels Azure DevOps référencés.
Protéger l’accès aux dépôts dans les pipelines YAML
Outre les paramètres d’étendue d’autorisation du travail décrits dans la section précédente, Azure Pipelines fournit un Protéger l’accès aux référentiels dans les pipelines YAML paramètre.
Les pipelines peuvent accéder à n’importe quel référentiel Azure DevOps dans des projets autorisés, sauf si Protéger l’accès aux référentiels dans les pipelines YAML est activé. Quand cette option est activée, vous pouvez réduire l’étendue d’accès de tous les pipelines aux seuls dépôts Azure DevOps explicitement référencés par une étape checkout
ou une instruction uses
dans le travail de pipeline qui utilise ce dépôt.
Pour plus d’informations, consultez référentiels Git Azure Repos - Protéger l’accès aux référentiels dans des pipelines YAML.
Important
Protéger l’accès aux dépôts dans les pipelines YAML est activé par défaut pour les nouvelles organisations et les projets créés après mai 2020.
Identités de build délimitées
Azure DevOps utilise deux identités intégrées pour exécuter des pipelines.
- Une identité étendue à la collection, qui a accès à tous les projets de la collection (ou organisation pour Azure DevOps Services)
- Une identité délimitée par un projet, qui a accès à un seul projet
Ces identités sont allouées aux autorisations nécessaires pour effectuer des activités d’exécution de build/mise en production lors de l’appel au système Azure DevOps. Il existe des autorisations par défaut intégrées, et vous pouvez également gérer vos propres autorisations si nécessaire.
Le nom l’identité délimitée à la collection a le format suivant :
Project Collection Build Service ({OrgName})
- Par exemple, si le nom de l’organisation est
fabrikam-tailspin
, ce compte a le nomProject Collection Build Service (fabrikam-tailspin)
.
Le nom de l’identité portée du projet a le format suivant :
{Project Name} Build Service ({Org Name})
- Par exemple, si le nom de l’organisation est
fabrikam-tailspin
et que le nom du projet estSpaceGameWeb
, ce compte a le nomSpaceGameWeb Build Service (fabrikam-tailspin)
.
Par défaut, l’identité délimitée par la collection est utilisée, sauf si elle est configurée autrement, comme décrit dans la section précédente de l’étendue d’autorisation du travail.
Gérer les autorisations de compte de service de build
L’un des résultats de la définition de l’accès à l’étendue du projet peut être que l’identité délimitée par le projet n’a pas d’autorisations pour une ressource dont l’étendue de collection en a fait une.
Vous pouvez modifier les autorisations du jeton d’accès au travail dans des scénarios tels que les suivants :
- Vous souhaitez que votre pipeline accède à un flux qui se trouve dans un autre projet.
- Vous souhaitez que votre pipeline soit limité à la modification du code dans le référentiel.
- Vous souhaitez que votre pipeline soit limité à la création d’éléments de travail.
Pour mettre à jour les autorisations du jeton d’accès au travail :
Tout d’abord, déterminez l’étendue d’autorisation du travail pour votre pipeline. Consultez la section ci-dessus pour comprendre l’étendue d’autorisation du travail. Si l’étendue d’autorisation du travail est collection, le compte de service de build correspondant pour gérer les autorisations est Project Collection Build Service (nom de votre collection). Si l’étendue d’autorisation du travail est projet, le compte de service de build sur lequel gérer les autorisations est votre service de build nom de projet (nom-regroupement).
Pour restreindre ou accorder un accès supplémentaire à service de génération de collection de projets (nom de votre collection):
- Sélectionnez Gérer les de sécurité dans le menu dépassement de capacité dans page Pipelines.
- Sous Utilisateurs, sélectionnez service de génération de regroupement de projets (nom de votre collection).
- Apportez des modifications aux autorisations liées aux pipelines pour ce compte.
- Accédez aux paramètres de l’organisation pour votre organisation Azure DevOps (ou aux paramètres de collecte de votre collection de projets).
- Sélectionnez Autorisations sous Sécurité.
- Sous l’onglet Utilisateurs, recherchez service de génération de collection de projets (nom de votre collection).
- Apportez des modifications aux autorisations non liées aux pipelines pour ce compte.
- Étant donné que service de génération de regroupement de projets (nom de votre collection) est un utilisateur de votre organisation ou collection, vous pouvez ajouter ce compte explicitement à n’importe quelle ressource , par exemple, à un flux dans Azure Artifacts.
Pour restreindre ou accorder un accès supplémentaire à votre service de génération de nom de projet (nom-collection):
- Le compte de service de build sur lequel vous pouvez gérer les autorisations ne sera créé qu’après l’exécution du pipeline une seule fois. Vérifiez que vous avez déjà exécuté le pipeline une seule fois.
- Sélectionnez Gérer les de sécurité dans le menu dépassement de capacité dans page Pipelines.
- Sous Utilisateurs, sélectionnez le service de génération de nom de projet (nom de votre collection).
- Apportez des modifications aux autorisations liées aux pipelines pour ce compte.
- Accédez aux paramètres de l’organisation pour votre organisation Azure DevOps (ou aux paramètres de collecte de votre collection de projets).
- Sélectionnez Autorisations sous Sécurité.
- Sous l’onglet Utilisateurs, recherchez le service de génération nom de projet (nom de votre collection).
- Apportez des modifications aux autorisations non liées aux pipelines pour ce compte.
- Étant donné que votre service de génération de nom de projet (nom de votre collection) est un utilisateur de votre organisation ou collection, vous pouvez ajouter ce compte explicitement à n’importe quelle ressource , par exemple, à un flux dans Azure Artifacts.
Configurer les autorisations d’un projet pour accéder à un autre projet dans la même collection de projets
Dans cet exemple, l’identité de build étendue au projet fabrikam-tailspin/SpaceGameWeb
est autorisée à accéder au projet fabrikam-tailspin/FabrikamFiber
.
Dans le projet FabrikamFiber, accédez à paramètres du projet, autorisations.
Créez un groupe nommé projets externes et ajoutez le compte SpaceGameWeb Build Service.
Choisissez Utilisateurs, commencez à taper le nom SpaceGameWeb, puis sélectionnez le compte SpaceGameWeb Build Service. Si vous ne voyez pas les résultats de la recherche initialement, sélectionnez Développer la recherche.
Accordez l’autorisation Afficher les informations au niveau du projet pour cet utilisateur.
Exemple : configurer des autorisations pour accéder à un autre dépôt dans la même collection de projets
Dans cet exemple, l’identité de build étendue au projet fabrikam-tailspin/SpaceGameWeb
est autorisée à accéder au référentiel FabrikamFiber
dans le projet fabrikam-tailspin/FabrikamFiber
.
Suivez les étapes pour accorder l’autorisation d’identité de build étendue au projet
SpaceGameWeb
pour accéder au projetFabrikamFiber
.Dans le projet FabrikamFiber, accédez à paramètres du projet, Référentiels, FabrikamFiber.
Choisissez l’icône +, commencez à taper le nom SpaceGameWeb, puis sélectionnez le compte SpaceGameWeb Build Service.
Commencez à taper le nom SpaceGameWeb, puis sélectionnez le compte SpaceGameWeb Build Service.
Accordez autorisations de lecture pour cet utilisateur.
Exemple : configurer des autorisations pour accéder à d’autres ressources dans la même collection de projets
Dans cet exemple, l’identité de build étendue au projet fabrikam-tailspin/SpaceGameWeb
est autorisée à accéder à d’autres ressources dans le projet fabrikam-tailspin/FabrikamFiber
.
Suivez les étapes pour accorder l’autorisation d’identité de build étendue au projet
SpaceGameWeb
pour accéder au projetFabrikamFiber
.Configurez les autorisations souhaitées pour cet utilisateur.
Questions fréquentes (FAQ)
Comment déterminer l’étendue d’autorisation du travail de mon pipeline YAML ?
- Si votre projet est un projet public, l’étendue d’autorisation du travail est toujours projet indépendamment des autres paramètres.
- Vérifiez les paramètres de pipeline sous vos paramètres d’organisation Azure DevOps :
- Si limiter l’étendue d’autorisation du travail à l' de projet actuel est activée, l’étendue est projet.
- Si limiter l’étendue d’autorisation du travail au projet actuel n’est pas activée, vérifiez les paramètres de pipeline sous vos paramètres de projet dans Azure DevOps :
- Si limiter l’étendue d’autorisation du travail à l' de projet actuel est activée, l’étendue est projet.
- Sinon, l’étendue est collection.
- Si le pipeline se trouve dans un projet privé, vérifiez les paramètres de pipeline sous vos paramètres Azure DevOps Organisation:
- Si limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines sans mise en production est activée, l’étendue est projet.
- Si limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines sans mise en production n’est pas activée, vérifiez les paramètres de pipeline sous vos paramètres de projet dans Azure DevOps :
- Si limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines sans mise en production est activée, l’étendue est projet.
- Sinon, l’étendue est collection.
Comment déterminer l’étendue d’autorisation du travail de mon pipeline de build classique ?
- Si le pipeline se trouve dans un projet public, l’étendue d’autorisation du travail est projet indépendamment des autres paramètres.
- Vérifiez les paramètres de pipeline sous vos paramètres d’organisation Azure DevOps :
- Si limiter l’étendue d’autorisation du travail à l' de projet actuel est activée, l’étendue est projet.
- Si limiter l’étendue d’autorisation du travail au projet actuel n’est pas activée, vérifiez les paramètres de pipeline sous vos paramètres de projet dans Azure DevOps :
- Si limiter l’étendue d’autorisation du travail à l' de projet actuel est activée, l’étendue est projet.
- Si limitez l’étendue d’autorisation du travail au projet actuel n’est pas activée, ouvrez l’éditeur du pipeline et accédez à l’onglet Options .
- Si l’étendue d’autorisation Générer un travail est projet actuel, l’étendue est projet.
- Sinon, l’étendue est collection.
- Si le pipeline se trouve dans un projet privé, vérifiez les paramètres de pipeline sous vos paramètres Azure DevOps Organisation:
- Si limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines sans mise en production est activée, l’étendue est projet.
- Si limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines sans mise en production n’est pas activée, vérifiez les paramètres de pipeline sous vos paramètres de projet dans Azure DevOps :
- Si limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines sans mise en production est activée, l’étendue est projet.
- Si limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines sans mise en production n’est pas activée, ouvrez l’éditeur du pipeline et accédez à l’onglet Options .
- Si l’étendue d’autorisation Générer un travail est projet actuel, l’étendue est projet.
- Sinon, l’étendue est collection.
Lors de la création d’un pipeline classique, l’étendue d’autorisation du travail est définie sur projet actuel et l’étendue d’autorisation du travail de génération est définie sur projet par défaut.
Comment déterminer l’étendue d’autorisation du travail de mon pipeline de mise en production classique ?
Les pipelines de mise en production classiques dans Azure DevOps Server 2020 et ci-dessous s’exécutent avec collection étendue.
- Si le pipeline se trouve dans un projet public, l’étendue d’autorisation du travail est projet indépendamment des autres paramètres.
- Si le pipeline se trouve dans un projet privé, vérifiez les paramètres de pipeline sous vos paramètres Azure DevOps Organisation:
- Si limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines de mise en production est activée, l’étendue est projet.
- Si limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines de mise en production n’est pas activée, vérifiez les paramètres de pipeline sous vos paramètres de projet dans Azure DevOps :
- Si limiter l’étendue d’autorisation du travail au projet actuel pour les pipelines de mise en production est activée, l’étendue est projet.
- Sinon, l’étendue est collection.