Configurer et valider des autorisations
Dans ce labo, vous allez configurer un environnement sécurisé qui respecte le principe du moindre privilège, en veillant à ce que les membres puissent accéder uniquement aux ressources dont ils ont besoin pour effectuer leurs tâches et réduire les risques de sécurité potentiels. Cela implique de configurer et valider des autorisations d’utilisateur et de pipeline, et de configurer des vérifications d’approbation et de branche dans Azure DevOps.
Ces exercices prennent environ 20 minutes.
Avant de commencer
Vous aurez besoin d’un abonnement Azure, d’une organisation Azure DevOps et de l’application eShopOnWeb pour suivre les labos.
- Procédez comme suit pour valider votre environnement de labo.
- Installez un agent auto-hébergé en suivant le labo Configurer des agents et des pools d’agents pour des pipelines sécurisés ou les étapes de Installer un agent auto-hébergé.
Instructions
Exercice 0 : (ignorer si déjà effectué) importer et exécuter des pipelines CI/CD
Dans cet exercice, vous allez importer et exécuter des pipelines CI/CD dans le projet Azure DevOps.
Tâche 1 : (ignorer si déjà effectuée) importer et exécuter le pipeline CI
Commençons par importer le pipeline CI nommé eshoponweb-ci.yml.
-
Accédez au Portail Azure DevOps sur
https://aex.dev.azure.com
et ouvrez votre organisation. -
Ouvrez le projet eShopOnWeb dans Azure DevOps.
-
Accédez à Pipelines > Pipelines.
-
Sélectionnez le bouton Créer un pipeline.
-
Sélectionnez Azure Repos Git (Yaml).
-
Sélectionnez le référentiel eShopOnWeb.
-
Sélectionnez Fichier YAML Azure Pipelines existant.
-
Sélectionnez le fichier /.ado/eshoponweb-ci.yml, puis cliquez sur Continuer.
-
Sélectionnez le bouton Exécuter pour exécuter le pipeline.
Remarque : votre pipeline est nommé en fonction du nom du projet. Vous le renommez pour identifier plus facilement le pipeline.
-
Accédez à Pipelines > Pipelines et sélectionnez le pipeline récemment créé. Sélectionnez les points de suspension puis Renommer/déplacer.
-
Nommez-le eshoponweb-ci, puis sélectionnez Enregistrer.
Tâche 2 : (ignorer si déjà effectuée) importer et exécuter le pipeline CD
Remarque : dans cette tâche, vous allez importer et exécuter le pipeline CD appelé eshoponweb-cd-webapp-code.yml.
-
Accédez à Pipelines > Pipelines.
-
Sélectionnez le bouton Nouveau pipeline.
-
Sélectionnez Azure Repos Git (Yaml).
-
Sélectionnez le référentiel eShopOnWeb.
-
Sélectionnez Fichier YAML Azure Pipelines existant.
-
Sélectionnez le fichier /.ado/eshoponweb-cd-webapp-code.yml, puis Continuer.
-
Dans la définition du pipeline YAML, définissez la section des variables pour effectuer les opérations suivantes :
variables: resource-group: 'YOUR-RESOURCE-GROUP-NAME' location: 'centralus' templateFile: 'infra/webapp.bicep' subscriptionid: 'YOUR-SUBSCRIPTION-ID' azureserviceconnection: 'YOUR-AZURE-SERVICE-CONNECTION-NAME' webappname: 'YOUR-WEB-APP-NAME'
-
Remplacez les valeurs des variables par les valeurs de votre environnement :
- Remplacez YOUR-RESOURCE-GROUP-NAME par le nom du groupe de ressources que vous souhaitez utiliser dans ce labo, par exemple, rg-eshoponweb-secure.
- Définissez la valeur de la variable d’emplacement sur le nom de la région Azure dans laquelle vous souhaitez déployer vos ressources, par exemple, centralus.
- Remplacez YOUR-SUBSCRIPTION-ID par votre ID d’abonnement Azure.
- Remplacez YOUR-AZURE-SERVICE-CONNECTION-NAME par azure subs.
- Remplacez YOUR-WEB-APP-NAME par un nom unique au monde de l’application web à déployer, par exemple, la chaîne eshoponweb-lab-multi-123456 suivie d’un nombre aléatoire à six chiffres.
-
Sélectionnez Enregistrer et Exécuter, puis choisissez de valider directement dans la branche primaire.
-
Sélectionnez de nouveau Enregistrer et exécuter.
-
Ouvrez l’exécution de pipeline. Si vous voyez le message « Ce pipeline a besoin d’une autorisation pour accéder à une ressource avant que cette exécution puisse poursuivre le déploiement vers l’application web », sélectionnez Afficher, Autoriser et à nouveau Autoriser. Cette opération est nécessaire pour permettre au pipeline de créer la ressource Azure App Service.
-
Le déploiement peut prendre quelques minutes, attendez que le pipeline s’exécute. Le pipeline est déclenché après l’achèvement du pipeline CI et comprend les tâches suivantes :
- AzureResourceManagerTemplateDeployment : Déploie l’application web Azure App Service à partir d’un modèle bicep.
- AzureRmWebAppDeployment : Publie le site web sur l’application web Azure App Service.
Remarque : si le déploiement échoue, accédez à la page d’exécution du pipeline et sélectionnez Réexécuter les travaux ayant échoué pour appeler une autre exécution de pipeline.
Remarque : votre pipeline est nommé en fonction du nom du projet. Renommons-le pour mieux identifier le pipeline.
-
Accédez à Pipelines > Pipelines et sélectionnez le pipeline récemment créé. Sélectionnez les points de suspension puis Renommer/déplacer.
-
Nommez-le eshoponweb-cd-webapp-code, puis cliquez sur Enregistrer.
Exercice 1 : configurer et valider les vérifications d’approbation et de branche
Dans cet exercice, vous allez configurer et valider les vérifications d’approbation et de branche pour le pipeline CD.
Tâche 1 : Créer un environnement et ajouter des approbations et des vérifications
-
Dans le portail Azure DevOps, dans la page du projet eShopOnWeb, sélectionnez Pipelines > Environnements.
-
Sélectionnez Créer un environnement.
-
Nommez l’environnement Test, sélectionnez Aucun comme ressource, puis sélectionnez Créer.
-
Dans l’environnement Test, sélectionnez l’onglet Approbations et vérifications.
-
Sélectionnez Approbations.
-
Dans la zone de texte Approbateurs, entrez votre nom d’utilisateur.
-
Si ce n’est pas fait, cochez la case intitulée « Autoriser les approbateurs à approuver leurs propres exécutions ».
-
Donnez les instructions Approuver le déploiement sur Test et sélectionnez Créer.
-
Cliquez sur le bouton + Ajouter, sélectionnez Contrôle de branche, puis sélectionnez Suivant.
-
Dans le champ Branches autorisées , conservez la valeur par défaut et sélectionnez Créer. Vous pouvez ajouter des actions supplémentaires si vous le souhaitez.
-
Créez un autre environnement nommé Production et effectuez les mêmes étapes pour ajouter des approbations et un contrôle de branche. Pour différencier les environnements, ajoutez les instructions Approuver le déploiement sur Production et définissez les branches autorisées sur refs/heads/main.
Remarque : vous pouvez ajouter d’autres environnements et configurer des approbations et un contrôle de branche pour eux. En outre, vous pouvez configurer Sécurité pour ajouter des utilisateurs ou des groupes à l’environnement avec des rôles tels que Utilisateur, Créateur ou Lecteur.
Tâche 2 : Configurer le pipeline CD pour utiliser le nouvel environnement
-
Dans le portail Azure DevOps, dans la page du projet eShopOnWeb, sélectionnez Pipelines > Pipelines.
-
Ouvrez le pipeline eshoponweb-cd-webapp-code.
-
Sélectionnez Modifier.
-
Sélectionnez la ligne située au-dessus du commentaire ** #download artifacts, jusqu’à la ligne **stages: dans le fichier YAML du pipeline et remplacez le contenu par le code suivant :
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
Remarque : vous devrez décaler toutes les lignes suivant le code ci-dessus de six espaces vers la droite pour vous assurer que les règles de mise en retrait de YAML sont respectées.
Votre pipeline doit se présenter comme suit :
[!IMPORTANT] Vérifiez que le nom du pool est identique à celui que vous avez créé dans le labo précédent.
-
Cliquez sur Valider et enregistrer, choisissez de valider directement sur la branche primaire, puis cliquez sur Enregistrer.
-
Votre pipeline se déclenche automatiquement. Ouvrez l’exécution de pipeline.
Remarque : si vous recevez le message « Ce pipeline a besoin d’une autorisation pour accéder à une ressource avant que cette exécution puisse poursuivre le test de l’application web », sélectionnez Afficher, Autoriser et à nouveau Autoriser.
-
Ouvrez l’étape Test WebApp du pipeline et prêtez attention au message Une approbation a besoin de votre révision avant que cette exécution puisse continuer à tester WebApp. Sélectionnez Vérifier, puis Approuver.
-
Attendez que le pipeline se termine, ouvrez le journal du pipeline et vérifiez que la phase Test de l’application web a bien été exécutée.
-
Revenez au pipeline et vous verrez l’étape Déployer sur l’application web en attente d’approbation. Sélectionnez Vérifier et Approuver comme vous l’avez fait avant la phase Test de l’application web.
Remarque : si vous recevez le message « Ce pipeline a besoin d’une autorisation pour accéder à une ressource avant que cette exécution puisse poursuivre le déploiement vers l’application web », sélectionnez Afficher, Autoriser et à nouveau Autoriser.
-
Attendez que le pipeline se termine et vérifiez que l’étape Déployer sur WebApp a été exécutée avec succès.
Remarque : vous devriez être en mesure d’exécuter le pipeline avec les vérifications d’approbation et de branche dans les deux environnements, Test et Production.
[!IMPORTANT] N’oubliez pas de supprimer les ressources créées dans le portail Azure pour éviter les frais inutiles.
Révision
Dans ce labo, vous avez appris à configurer un environnement sécurisé qui respecte le principe du moindre privilège, en veillant à ce que les membres puissent accéder uniquement aux ressources dont ils ont besoin pour effectuer leurs tâches et réduire les risques de sécurité potentiels. Vous avez configuré et validé des autorisations d’utilisateur et de pipeline, et configuré des vérifications d’approbation et de branche dans Azure DevOps.