Pipelineressourcen

Azure Pipelines bietet Sicherheitsmechanismen, die über den schutz der YAML-Datei und des Quellcodes hinausgehen. Wenn Pipelines ausgeführt werden, wird der Zugriff auf Ressourcen über ein System namens überprüft. Überprüfungen können angehalten werden oder sogar einen Fehler bei der Ausführung einer Pipeline zur Gewährleistung der Sicherheit von Ressourcen zur Folge haben. Eine Pipeline kann auf zwei Arten von Ressourcen zugreifen, geschützt und geöffnet.

Geschützte Ressourcen

Ihre Pipelines haben häufig Zugriff auf Geheimnisse. Zum Signieren Ihres Builds benötigen Sie beispielsweise ein Signaturzertifikat. Für die Bereitstellung in einer Produktionsumgebung benötigen Sie Anmeldeinformationen für diese Umgebung. In Azure Pipelines gelten alle folgenden Ressourcen als geschützte Ressourcen:

"Geschützt" bedeutet:

  • Sie können für bestimmte Benutzer und bestimmte Pipelines innerhalb des Projekts zugänglich gemacht werden. Benutzer und Pipelines außerhalb eines Projekts können nicht auf sie zugreifen.
  • Sie können zusätzliche manuelle oder automatisierte Überprüfungen jedes Mal ausführen, wenn eine Pipeline eine dieser Ressourcen verwendet. Weitere Informationen zu geschützten Ressourcen finden Sie unter Informationen zu Pipelineressourcen.

Schützen von Repositoryressourcen

Repositorys können optional geschützt werden. Auf Organisation- oder Projektebene können Sie den Bereich des Azure Pipelines Zugriffstokens auf die erwähnten Repositorys beschränken. Wenn Sie dies tun, fügt Azure Pipelines zwei zusätzliche Schutzmaßnahmen hinzu:

  1. Das Zugriffstoken, das dem Agent zum Ausführen von Aufträgen gewährt wird, hat nur Zugriff auf Repositorys, die im Abschnitt der Pipeline explizit erwähnt resources werden.
  2. Repositorys, die der Pipeline hinzugefügt werden, müssen von einer Person mit Lesezugriff auf das Repository autorisiert werden, wenn die Pipeline das Repository zum ersten Mal verwendet.

Diese Einstellung ist standardmäßig für alle Organisationen aktiviert, die nach Mai 2020 erstellt wurden. Organisationen, die zuvor erstellt wurden, sollten dies in den Organisationseinstellungenaktivieren.

Öffnen von Ressourcen

Alle anderen Ressourcen in einem Projekt gelten als offene Ressourcen. Zu den geöffneten Ressourcen gehören:

  • artifacts
  • pipelines
  • Testpläne
  • Arbeitsaufgaben

Weitere Informationen dazu, welche Pipelines auf welche Ressourcen zugreifen können, finden Sie im Abschnitt zu Projekten.

Benutzerberechtigungen

Die erste Verteidigungslinie für geschützte Ressourcen sind Benutzerberechtigungen. Stellen Sie im Allgemeinen sicher, dass Sie nur Benutzern Berechtigungen erteilen, die sie benötigen. Alle geschützten Ressourcen verfügen über ein ähnliches Sicherheitsmodell. Ein Mitglied der Benutzerrolle für eine Ressource kann:

  • Entfernen von genehmigenden Personen und Überprüfungen, die für diese Ressource konfiguriert sind
  • Gewähren des Zugriffs für andere Benutzer oder Pipelines zur Verwendung dieser Ressource

Screenshot der Benutzerberechtigungen für Pipelines

Pipelineberechtigungen und Sicherheitsrollen

Wenn Sie YAML-Pipelines verwenden, reichen Benutzerberechtigungen nicht aus, um Ihre geschützten Ressourcen zu schützen. Sie können den Namen einer geschützten Ressource (z. B. eine Dienstverbindung für Ihre Produktionsumgebung) einfach kopieren und in eine andere Pipeline einschließen. Pipelineberechtigungen schützen vor solchen Kopien. Stellen Sie für jede der geschützten Ressourcen sicher, dass Sie die Option zum Gewähren des Zugriffs auf "alle Pipelines" deaktiviert haben. Stattdessen wurde explizit Zugriff auf bestimmte Pipelines gewährt, denen Sie vertrauen.

Screenshot der Pipelineberechtigungen

Prüfungen

In YAML reicht eine Kombination aus Benutzer- und Pipelineberechtigungen nicht aus, um Ihre geschützten Ressourcen vollständig zu schützen. Pipelineberechtigungen für Ressourcen werden der gesamten Pipeline gewährt. Nichts hindert einen Angreifer daran, einen anderen Branch in Ihrem Repository zu erstellen, schädlichen Code einzufügen und dieselbe Pipeline für den Zugriff auf diese Ressource zu verwenden. Auch ohne böswillige Absichten benötigen die meisten Pipelines vor der Bereitstellung in der Produktion einen zweiten Blick auf Änderungen (insbesondere an der Pipeline selbst). Überprüfungen ermöglichen es Ihnen, die Pipeline-Ausführung anzuhalten, bis bestimmte Bedingungen erfüllt sind:

  • Manuelle Genehmigungsprüfung. Jede Ausführung, die eine projektgeschützte Ressource verwendet, wird für Ihre manuelle Genehmigung blockiert, bevor Sie fortfahren. Dadurch haben Sie die Möglichkeit, den Code zu überprüfen und sicherzustellen, dass er vom richtigen Branch stammt.
  • Überprüfung der geschützten Verzweigung. Wenn Sie für einige Ihrer Branches manuelle Codeüberprüfungsprozesse eingerichtet haben, können Sie diesen Schutz auf Pipelines ausweiten. Konfigurieren Sie eine Überprüfung auf geschützte Verzweigung für jede Ihrer Ressourcen. Dadurch wird die Ausführung Ihrer Pipeline auf allen Benutzerbranches automatisch beendet.

Screenshot: Konfigurieren von Überprüfungen

Nächste Schritte

Als Nächstes überlegen Sie, wie Sie Ressourcen in einer Projektstrukturgruppieren.