Einführung

Abgeschlossen

Wenn Sie Ihre Infrastructure als Code bereitstellen, können Sie Ihre Bereitstellungen automatisieren, mehr Vertrauen in Ihre Bereitstellungen gewinnen und Ihr Team effizienter agieren lassen. Diese Vorteile ergeben sich jedoch nur, wenn Sie und Ihr Team sorgfältig vorgehen und manuelle Änderungen an Ihrer Umgebung vermeiden.

In diesem Modul erfahren Sie, wie Sie für Ihre Azure-Umgebung und -Pipelines mittels Konfiguration und Governance unerwartete oder unkontrollierte Änderungen vermeiden können.

Hinweis

Der GitHub Actions-Begriff für eine Pipeline ist Workflow. Der Einfachheit halber verwenden wir in diesem Modul den Begriff Pipeline, um sowohl auf Pipelines in Azure Pipelines als auch auf Workflows in GitHub Actions zu verweisen.

Beispielszenario

Angenommen, Sie sind bei einem Spielwarenhersteller als Azure-Administrator tätig. In den letzten Monaten haben Sie und Ihr Team Ihre Azure-Bereitstellungen auf Bicep umgestellt. Sie haben die Bereitstellungsprozesse mithilfe von Pipelines automatisiert. Doch in Ihrem Team gibt es immer noch einige, die sich noch nicht darauf eingestellt haben, alle ihre Änderungen als Code bereitzustellen.

Zuletzt gab es mehrere Situationen, in denen die Bereitstellung in Azure mithilfe unterschiedlicher Prozesse erfolgte:

  1. Jemand hat die Konfiguration einer Website direkt im Azure-Portal geändert.
  2. Ein zweiter hat eine neue Bicep-Datei direkt von seinem eigenen Computer aus bereitgestellt.
  3. Ein dritter hat die Anmeldeinformationen des Dienstprinzipals einer Pipeline kopiert und damit über die Azure CLI auf die Produktionsumgebung zugegriffen.
  4. Ein vierter hat eine Änderung an einer Bicep-Datei direkt im Mainbranch des Repositorys committet und dabei das Review von Pull Requests umgangen.
  5. Ein fünfter hat eine Bicep-Datei mittels Pull Request aktualisiert. Die Änderungen wurden überprüft, getestet und in der richtigen Reihenfolge der Umgebungen bereitgestellt.

Das folgende Diagramm veranschaulicht diese Szenarien:

Abbildung: Verschiedene Ansätze zum Durchführen von Azure-Konfigurationsänderungen

Von all diesen Änderungen wurde nur die fünfte mithilfe der von Ihnen eingeführten Automatisierungstools und anhand des mit Ihrem Team abgestimmten Prozesses bereitgestellt. Keine der anderen Änderungen hat Schaden angerichtet, aber Sie sollten Ihr Glück nicht überstrapazieren. Ihr Team hat beschlossen, Ihren Prozess vorzuschreiben, damit Sie den größten Nutzen aus Ihrer Investition in Automatisierung ziehen können. Sie haben mit Ihrem Team vereinbart, dass keine Bereitstellungen in Ihrer Azure-Umgebung mehr zugelassen werden, es sei denn, der genehmigte Prozess wurde befolgt:

Abbildung: Verschiedene Ansätze zum Durchführen von Azure-Konfigurationsänderungen, bei denen bis auf die genehmigten Prozesse alle blockiert sind

Wie werden Sie vorgehen?

In diesem Modul erfahren Sie, wie Sie die Bereitstellung Ihrer Azure-Infrastruktur als Code erzwingen. Sie überlegen, welche Kontrollmechanismen Sie für Ihre verschiedenen Umgebungen benötigen, und wenden Governance- und Sicherheitsrichtlinien zum Schutz Ihrer Azure-Ressourcen an. Außerdem erfahren Sie, wie Sie Ihre Pipelines und Repositorys schützen können, indem Sie sicherstellen, dass alle Aspekte Ihrer Azure-Konfiguration einem empfohlenen und gehärteten Prozess folgen.

Tipp

Dieses Modul bietet eine Einführung in zahlreiche Sicherheitsfeatures. Die Zusammenfassungseinheit enthält Links zu weiteren Informationen zu den einzelnen Features.

Was ist das Hauptziel?

Am Ende dieses Moduls können Sie die Kontrollmechanismen für Sicherheit und Governance bestimmen, die Sie für Ihre Azure-Umgebung, Repositorys und Pipelines benötigen, damit Sie Ihre gesamte Infrastruktur als Code bereitstellen können.

Voraussetzungen

Sie sollten mit Folgendem vertraut sein:

  • Infrastruktur als Code und ihre Vorteile sowie Technologien wie Bicep oder Terraform.
  • Azure, einschließlich Azure-Portal, Abonnements, Ressourcengruppen und Ressourcen.
  • Git zum Verwalten Ihres Codes, einschließlich Branches und Pull Requests.
  • Automatisierte Bereitstellungen über GitHub Actions oder Azure Pipelines.