Pipelineressourcen

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Azure Pipelines bietet Sicherheit, die über den bloßen Schutz der YAML-Datei und des Quellcodes hinausgeht. Wenn YAML-Pipelines ausgeführt werden, erfolgt der Zugriff auf Ressourcen über sogenannte Überprüfungen. Überprüfungen können eine Pipelineausführung anhalten oder sogar fehlschlagen lassen, um Ressourcen zu schützen. Eine Pipeline kann auf zwei Arten von Ressourcen zugreifen: geschützte Ressourcen und offene Ressourcen.

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. Azure Pipelines erfordert die Administratorrolle, wenn der Zugriff auf eine Ressource für alle Pipelines für alle geschützten Ressourcen mit Ausnahme von Umgebungen geöffnet wird. Für Umgebungen benötigen Sie die Rolle "Ersteller ". Erfahren Sie mehr über Ressourcenschutz.
In Azure Pipelines werden alle folgenden Ressourcen in YAML-Pipelines als geschützte Ressourcen betrachtet:

„Geschützt“ bedeutet Folgendes:

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

Schützen von Repositoryressourcen

Repositorys können optional geschützt werden. Auf Organisations- oder Projektebene können Sie den Gültigkeitsbereich des Azure Pipelines-Zugriffstokens auf die erwähnten Repositorys beschränken. In diesem Fall fügt Azure Pipelines zwei weitere Schutzmaßnahmen hinzu:

  • Das Zugriffstoken, das an den Agent für die Ausführung von Aufträgen übergeben wird, hat nur Zugriff auf Repositorys, die im Abschnitt resources der Pipeline explizit erwähnt werden.
  • Der Pipeline hinzugefügte Repositorys müssen von einer Person autorisiert werden, die Zugriff als Mitwirkender auf das Repository hat, wenn diese 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, müssen sie in den Organisationseinstellungen aktivieren.

Öffnen von Ressourcen

Alle anderen Ressourcen in einem Projekt werden als offene Ressourcen betrachtet. Zu den offenen Ressourcen gehören folgende:

  • Artifacts
  • Pipelines
  • Testpläne
  • Arbeitselemente

Im Abschnitt zu Projekten erfahren Sie mehr darüber, welche Pipelines auf welche Ressourcen zugreifen können.

Benutzerberechtigungen

Benutzerberechtigungen stellen die erste Verteidigungslinie für geschützte Ressourcen dar. Stellen Sie im Allgemeinen sicher, dass Sie nur Benutzer*innen Berechtigungen erteilen, die diese benötigen. Alle geschützten Ressourcen verfügen über ein ähnliches Sicherheitsmodell. Ein Mitglied der Benutzerrolle für eine Ressource kann folgende Aktionen ausführen:

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

Screenshot: 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 aufnehmen. Pipelineberechtigungen schützen vor einem solchen Kopiervorgang. Stellen Sie für jede geschützte Ressource sicher, dass Sie die Option zum Gewähren des Zugriffs auf alle Pipelines deaktiviert haben. Gewähren Sie stattdessen explizit Zugriff auf bestimmte Pipelines, denen Sie vertrauen.

Screenshot: 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 erteilt. Nichts hindert einen Angreifer daran, einen weiteren Branch in Ihrem Repository zu erstellen, schädlichen Code einzuschleusen und dieselbe Pipeline für den Zugriff auf diese Ressource zu verwenden. Auch ohne böswillige Absicht benötigen die meisten Pipelines eine zweite Instanz, die die Änderungen (insbesondere an der Pipeline selbst) vor der Bereitstellung in der Produktion überprüft. Mit Überprüfungen können Sie die Pipelineausführung anhalten, bis bestimmte Bedingungen erfüllt sind:

  • Manuelle Genehmigungsprüfung: Jede Ausführung, die eine projektgeschützte Ressource verwendet, wird gesperrt und muss von Ihnen manuell genehmigt werden, bevor der Vorgang fortgesetzt werden kann. Der manuelle Schutz bietet Ihnen die Möglichkeit, den Code zu überprüfen und sicherzustellen, dass er aus dem richtigen Branch stammt.
  • Überprüfung der geschützten Branches: Wenn Sie für einige Ihrer Branches manuelle Code Review-Prozesse eingerichtet haben, können Sie diesen Schutz auf Pipelines ausweiten. Konfigurieren Sie eine Überprüfung der geschützten Branches für Ihre Ressourcen. Dadurch wird die Ausführung Ihrer Pipeline zusätzlich zu Benutzerbranches automatisch beendet.
  • Überprüfung der geschützten Ressourcen: Sie können Überprüfungen zu Umgebungen, Dienstverbindungen, Repositorys, Variablengruppen, Agentpools und sicheren Dateien hinzufügen, um Bedingungen anzugeben, die erfüllt sein müssen, bevor eine Stufe in einer Pipeline eine Ressource nutzen kann. Weitere Informationen zu Überprüfungen und Genehmigungen finden Sie hier.

Screenshot: Konfigurieren von Überprüfungen

Nächste Schritte

Überlegen Sie als Nächstes, wie Sie Ressourcen in einer Projektstruktur gruppieren möchten.