Konfigurieren und Überprüfen von Berechtigungen

In diesem Lab richten Sie eine sichere Umgebung ein, die dem Prinzip der geringsten Rechte entspricht, um sicherzustellen, dass die Mitglieder nur auf die Ressourcen zugreifen können, die sie für die Ausführung ihrer Aufgaben benötigen, und um potenzielle Sicherheitsrisiken zu minimieren. Dies umfasst das Konfigurieren und Überprüfen von Benutzer- und Pipelineberechtigungen sowie das Einrichten von Genehmigungen und Branchüberprüfungen in Azure DevOps.

Diese Übung dauert ca. 20 Minuten.

Vorbereitung

Sie benötigen ein Azure-Abonnement, eine Azure DevOps-Organisation und die eShopOnWeb-Anwendung, um den Labs zu folgen.

Anweisungen

Übung 0: (Überspringen, wenn bereits erledigt) Importieren und Ausführen von CI/CD-Pipelines

In dieser Übung werden Sie die CI/CD-Pipelines in das Azure-DevOps-Projekt importieren und ausführen.

Aufgabe 1: (überspringen, wenn erledigt) Importieren und Ausführen der CI-Pipeline

Beginnen wir mit dem Importieren der CI-Pipeline mit dem Namen eshoponweb-ci.yml.

  1. Navigieren Sie zum Azure DevOps-Portal unter https://aex.dev.azure.com und öffnen Sie Ihre Organisation.

  2. Öffnen Sie das Projekt eShopOnWeb in Azure DevOps.

  3. Navigieren Sie zu Pipelines > Pipelines.

  4. Wählen Sie die Schaltfläche Pipeline erstellen aus.

  5. Wählen Sie Azure Repos Git (Yaml).

  6. Wählen Sie das Repository eShopOnWeb aus.

  7. Wählen Sie die Option Vorhandene Azure Pipelines-YAML-Datei aus.

  8. Wählen Sie die Datei /.ado/eshoponweb-ci.yml aus und klicken Sie dann auf Weiter.

  9. Klicken Sie auf die Schaltfläche Ausführen, um die Pipeline auszuführen.

    Hinweis: Ihre Pipeline bekommt einen Namen basierend auf dem Projektnamen. Sie benennen die Pipeline um, damit leichter zu identifizieren ist.

  10. Wechseln Sie zu Pipelines > Pipelines und wählen Sie die zuletzt erstellte Pipeline aus. Wählen Sie die Auslassungspunkte und dann die Option Umbenennen/verschieben aus.

  11. Geben Sie ihr den Namen eshoponweb-ci, und wählen Sie Speichern aus.

Aufgabe 2: (überspringen, wenn erledigt) Importieren und Ausführen der CD-Pipeline

Hinweis: In dieser Aufgabe werden Sie die CD-Pipeline eshoponweb-cd-webapp-code.yml importieren und ausführen.

  1. Navigieren Sie zu Pipelines > Pipelines.

  2. Wählen Sie die Schaltfläche Neue Pipeline aus.

  3. Wählen Sie Azure Repos Git (YAML) aus.

  4. Wählen Sie das Repository eShopOnWeb aus.

  5. Wählen Sie die Option Vorhandene Azure Pipelines-YAML-Datei aus.

  6. Wählen Sie zunächst die Datei /.ado/eshoponweb-cd-webapp-code.yml und dann Weiter aus.

  7. Legen Sie in der YAML-Pipelinedefinition im Abschnitt „Variablen“ Folgendes fest:

    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'
    
  8. Ersetzen Sie die Werte der Variablen jeweils durch die Werte für Ihre Umgebung:

    • Ersetzen Sie YOUR-RESOURCE-GROUP-NAME durch den Namen der Ressourcengruppe, die Sie in diesem Lab verwenden möchten, wie rg-eshoponweb-secure.
    • Legen Sie den Namen der Variablen Standort auf den Namen der Azure-Region fest, in der Sie Ihre Ressourcen bereitstellen möchten, wie centralus.
    • Ersetzen Sie YOUR-SUBSCRIPTION-ID durch Ihre Azure-Abonnement-ID.
    • Ersetzen Sie YOUR-AZURE-SERVICE-CONNECTION-NAME mit azure subs.
    • Ersetzen Sie YOUR-WEB-APP-NAME durch einen global eindeutigen Namen der Web-App, die bereitgestellt werden soll, z.B. die Zeichenfolge eshoponweb-lab-multi-123456 gefolgt von einer zufälligen sechsstelligen Zahl.
  9. Wählen Sie zunächst Speichern und ausführen und dann den direkten Commit zu Mainbranch aus.

  10. Wählen Sie erneut Speichern und ausführen aus.

  11. Öffnen Sie die Pipelineausführung. Wenn Sie Ihnen die Meldung „This pipeline needs permission to access a resource before this run can continue to Deploy to WebApp“ angezeigt wird, wählen Sie erneut View, Permit und Permit aus. Diese Berechtigung ist erforderlich, damit die Pipeline die Azure App Service-Ressource erstellen kann.

    Screenshot der Genehmigung des Zugriffs über die YAML-Pipeline

  12. Die Bereitstellung kann einige Minuten dauern. Warten Sie, bis die Pipeline ausgeführt wird. Die Pipeline wird nach Abschluss der CI-Pipeline ausgelöst und umfasst die folgenden Aufgaben:

    • AzureResourceManagerTemplateDeployment: Stellt die Azure App Service-Web-App mithilfe der Bicep-Vorlage bereit.
    • AzureRmWebAppDeployment: Veröffentlicht die Website in der Azure App Service-Web-App.

    Hinweis: Falls die Bereitstellung fehlschlägt, navigieren Sie zur Seite „Pipelineausführung“ und wählen Sie Fehlerhafte Aufträge erneut ausführen aus, um eine weitere Pipelineausführung aufzurufen.

    Hinweis: Ihre Pipeline bekommt einen Namen basierend auf dem Projektnamen. Wir benennen sie um, damit wir die Pipeline besser identifizieren können.

  13. Wechseln Sie zu Pipelines > Pipelines und wählen Sie die zuletzt erstellte Pipeline aus. Wählen Sie die Auslassungspunkte und dann die Option Umbenennen/verschieben aus.

  14. Nennen Sie es eshoponweb-cd-webapp-code und klicken Sie auf Speichern.

Übung 1: Konfigurieren und Überprüfen von Genehmigungs- und Branchüberprüfungen

In dieser Übung konfigurieren und überprüfen Sie die Genehmigungen und Branchüberprüfungen für die CD-Pipeline.

Aufgabe 1: Umgebung erstellen und Genehmigungen und Überprüfungen hinzufügen

  1. Wählen Sie im Azure DevOps-Portal auf der eShopOnWeb-Projektseite Pipelines > Umgebungen aus.

  2. Klicken Sie auf Umgebung erstellen.

  3. Benennen Sie die Umgebung Test, wählen Sie zunächst Keine als Ressource und dann Erstellen aus.

  4. Öffnen Sie die Test-Umgebung, wählen Sie die Registerkarte Genehmigungen und Überprüfungen aus.

  5. Wählen Sie Genehmigungen aus.

  6. Geben Sie im Textfeld Genehmigende Person Ihren Benutzernamen ein.

  7. Falls nicht aktiviert, markieren Sie das Kästchen „Genehmigenden erlauben, ihre eigenen Läufe zu genehmigen“.

  8. Geben Sie die Anweisungen Genehmigen der Bereitstellung für Test, und wählen Sie Erstellen aus.

    Screenshot der Umgebungsgenehmigungen mit Anweisungen.

  9. Klicken Sie auf die Schaltfläche + Neu hinzufügen, wählen Sie Branchenüberprüfung, und wählen Sie dann Weiter.

  10. Behalten Sie im Feld Zulässige Branches die Standardeinstellung bei, und wählen Sie Erstellen aus. Sie können bei Bedarf weitere Branches hinzufügen.

    Screenshot der Steuerung von Umgebungsbranches mit dem Mainbranch.

  11. Erstellen Sie eine weitere Umgebung mit dem Namen Production, und führen Sie die gleichen Schritte aus, um Genehmigungen und die Steuerung von Branches hinzuzufügen. Um die Umgebungen zu unterscheiden, fügen Sie die Anweisungen Genehmigen der Bereitstellung für Production hinzu und legen Sie die zulässigen Branches auf refs/heads/main fest.

Anmerkung: Sie können weitere Umgebungen hinzufügen und Genehmigungen und Branchenüberprüfungen für sie konfigurieren. Darüber hinaus können Sie Sicherheit so konfigurieren, dass Benutzerinnen oder Gruppen zur Umgebung mit Rollen wie *Benutzerin, *Erstellerin* oder Leserin* hinzugefügt werden.

Aufgabe 2: CD-Pipeline für die Verwendung der neuen Umgebung konfigurieren

  1. Wählen Sie im Azure DevOps-Portal auf der eShopOnWeb-Projektseite Pipelines > Pipelines aus.

  2. Öffnen Sie die eshoponweb-cd-webapp-code-Pipeline.

  3. Wählen Sie Bearbeiten aus.

  4. Wählen Sie die Zeile oberhalb des Kommentars #download artifacts bis zur Zeile stages: in der Pipeline-YAML-Datei aus und ersetzen Sie den Inhalt durch den folgenden Code:

    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
    

    Hinweis: Sie müssen alle Zeilen, die dem obigen Code folgen, um sechs Leerzeichen nach rechts verschieben, damit die YAML-Einrückungsregeln eingehalten werden.

    Ihre Pipeline sollte wie folgt aussehen:

    Screenshot der Pipeline mit der neuen Bereitstellung.

    [!IMPORTANT] Vergewissern Sie sich, dass der Name des Pools derselbe ist wie der, den Sie in der vorherigen Übung erstellt haben.

  5. Klicken Sie auf “Überprüfen und speichern”, wählen Sie den Commit direkt im Mainbranch aus, und klicken Sie dann auf Speichern.

  6. Ihre Pipeline wird automatisch ausgelöst. Öffnen Sie die Pipelineausführung.

    Hinweis: Wenn Sie die Meldung „Diese Pipeline benötigt eine Berechtigung für den Zugriff auf eine Ressource, bevor dieser Lauf mit dem Testen der WebApp fortgesetzt werden kann“ erhalten, wählen Sie erneut Ansicht, Berechtigung und Berechtigung.

  7. Öffnen Sie die Phase Testen von WebApp der Pipeline, und beachten Sie die Meldung 1 Genehmigung muss von Ihnen überprüft werden, bevor diese Ausführung mit dem Testen von WebApp fortfahren kann. Wählen Sie zunächst Überprüfen und dann Genehmigen aus.

    Screenshot der Pipeline mit der zu genehmigenden Testphase“.

  8. Warten Sie, bis die Ausführung der Pipeline abgeschlossen ist, öffnen Sie das Pipelineprotokoll, und überprüfen Sie, ob die Phase Testen von WebApp erfolgreich ausgeführt wurde.

    Screenshot des Pipelineprotokolls mit der erfolgreichen Ausführung der Phase „Testen von WebApp“.

  9. Zurück zur Pipeline, und Sie sehen, dass die Phase Bereitstellen für WebApp auf die Genehmigung wartet. Wählen Sie Überprüfen und Genehmigen aus, wie Sie es zuvor für die Phase Testen von WebApp getan haben.

    Hinweis: Wenn Sie die Meldung „Diese Pipeline benötigt eine Berechtigung für den Zugriff auf eine Ressource, bevor diese Ausführung mit der Bereitstellung in der WebApp fortfahren kann“ erhalten, wählen Sie Ansicht, Zulassen und noch einmal Zulassen aus.

  10. Warten Sie, bis die Ausführung der Pipeline abgeschlossen ist, und überprüfen Sie, ob die Phase Bereitstellen für WebApp erfolgreich ausgeführt wurde.

    Screenshot der Pipeline mit der zu genehmigenden ‚Bereitstellen für WebApp‘-Phase“.

Hinweis: Sie sollten in der Lage sein, die Pipeline mit den Genehmigungen und Verzweigungsprüfungen in beiden Umgebungen, Test und Produktion, erfolgreich auszuführen.

[!IMPORTANT] Denken Sie daran, die im Azure-Portal erstellten Ressourcen zu löschen, um unnötige Gebühren zu vermeiden.

Überprüfung

In diesem Lab haben Sie gelernt, wie Sie eine sichere Umgebung einrichten, die dem Prinzip der geringsten Rechte entspricht, um sicherzustellen, dass die Mitglieder nur auf die Ressourcen zugreifen können, die sie für die Ausführung ihrer Aufgaben benötigen, und um potenzielle Sicherheitsrisiken zu minimieren. Sie haben Benutzer- und Pipelineberechtigungen konfiguriert und überprüft und Genehmigungen und Branchüberprüfungen in Azure DevOps eingerichtet.