Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Pipelines bieten leistungsstarke Funktionen zum Ausführen von Skripts und zum Bereitstellen von Code in Produktionsumgebungen, aber es ist entscheidend, diese Leistungsfähigkeit mit Sicherheit zu ausgleichen. Sie möchten nie, dass eine Pipeline zu einem Konduit für bösartigen Code wird. Das Ausgleichen der Sicherheit mit der Flexibilität und Leistungsfähigkeit von Entwicklungsteams ist unerlässlich.
Dieser Artikel enthält eine Übersicht über die erforderlichen sicherheitsbezogenen Konfigurationen, um Ihre Pipelines vor Bedrohungen und Sicherheitsrisiken zu schützen.
Voraussetzungen
Kategorie | Anforderungen |
---|---|
Azure DevOps | – Implementieren Sie Empfehlungen in Machen Sie Ihr Azure DevOps sicher. - Grundkenntnisse in YAML und Azure Pipelines. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Pipeline. |
Erlaubnisse | – So ändern Sie Pipelineberechtigungen: Mitglied der Gruppe "Projektadministratoren". – So ändern Sie Organisationsberechtigungen: Mitglied der Gruppe "Projektsammlungsadministratoren". |
Einschränken des Projekt-, Repository- und Dienstverbindungszugriffs
Um die Sicherheit zu erhöhen, ziehen Sie die Trennung Ihrer Projekte, das Verwenden von Richtlinien für Branches und das Hinzufügen weiterer Sicherheitsmaßnahmen für Forks in Betracht. Minimieren Sie den Umfang der Dienstverbindungen, und verwenden Sie die sichersten Authentifizierungsmethoden.
- Separate Projekte: Verwalten Sie jedes Produkt und jedes Team in separaten Projekten. Dadurch wird verhindert, dass Pipelines von einem Produkt versehentlich auf offene Ressourcen von einem anderen Produkt zugreifen, wodurch die Lateralexposition minimiert wird.
- Verwenden Sie Identitäten auf Projektebene: Verwenden Sie eine projektbasierte Buildidentität für Pipelines anstelle einer Identität auf Sammlungsebene. Identitäten auf Projektebene können nur auf Ressourcen innerhalb ihres zugeordneten Projekts zugreifen, wodurch das Risiko eines nicht autorisierten Zugriffs durch böswillige Akteure minimiert wird. Weitere Informationen finden Sie unter bereichsbezogenen Buildidentitäten und Auftragsautorisierungsbereich.
- Verwenden Sie Verzweigungsrichtlinien: Um sichere Änderungen an Code und Pipeline sicherzustellen, wenden Sie Berechtigungen und Verzweigungsrichtlinien an. Darüber hinaus sollten Sie Pipelineberechtigungen und Überprüfungen zu Repositorys hinzufügen.
-
Fügen Sie zusätzliche Sicherheit für Forks hinzu: Wenn Sie mit öffentlichen Repositorys von GitHub arbeiten, sollten Sie Ihren Ansatz für Fork-Builds sorgfältig überdenken. Forks, die von außerhalb Ihrer Organisation stammen, bergen besondere Risiken.
- Stellen Sie keine Geheimnisse für Fork-Builds bereit: Standardmäßig sind Pipelines so konfiguriert, dass sie Verzweigungen erstellen, aber Geheimnisse und geschützte Ressourcen werden nicht automatisch für die Aufträge in diesen Pipelines verfügbar gemacht. Es ist wichtig, diesen Schutz nicht zu deaktivieren, um die Sicherheit aufrechtzuerhalten.
- Erwägen Sie das manuelle Auslösen von Fork-Builds: Deaktivieren Sie automatische Fork-Builds und verwenden Sie Pull-Request-Kommentare, um diese Beiträge manuell zu erstellen. Diese Einstellung bietet Ihnen die Möglichkeit, den Code vor dem Auslösen eines Builds zu überprüfen. Weitere Informationen finden Sie unter "Deaktivieren der automatischen Verzweigungsbuilds".
- Geben Sie keine geheimen Daten für Fork-Builds frei: Standardmäßig werden geheime Daten, die Ihrer Pipeline zugeordnet sind, nicht für Pull-Request-Validierungen von Forks bereitgestellt. Aktivieren Sie die Option nicht, geheime Schlüssel für Builds von Forks verfügbar zu machen. Anweisungen zum Suchen und Überprüfen dieser Einstellung finden Sie unter "Beiträge von Forks".
- Erwägen Sie das manuelle Auslösen von Fork-Builds: Deaktivieren Sie automatische Fork-Builds und verwenden Sie Pull-Request-Kommentare, um diese Beiträge manuell zu erstellen. Diese Einstellung bietet Ihnen die Möglichkeit, den Code vor dem Auslösen eines Builds zu überprüfen. Anweisungen dazu finden Sie unter Automatische Verzweigungsbuilds deaktivieren.
- Verwenden Sie von Microsoft gehostete Agents für Builds von Forks: Vermeiden Sie die Ausführung von Builds aus Forks auf selbst-gehosteten Agents. Auf diese Weise können externe Organisationen externen Code auf Computern innerhalb Ihres Unternehmensnetzwerks ausführen. Verwenden Sie nach Möglichkeit von Microsoft gehostete Agents.
- Verwenden Sie die GitHub-App von Azure Pipelines zur Einschränkung des Tokenumfangs: Wenn Sie eine geforkte Pull-Anfrage in GitHub erstellen, stellt Azure Pipelines sicher, dass die Pipeline keine Inhalte des GitHub-Repositories ändern kann. Diese Einschränkung gilt nur , wenn Sie die GitHub-App von Azure Pipelines für die Integration in GitHub verwenden.
Sichere Dienstverbindungen
- Minimieren Sie den Umfang der Dienstverbindungen: Dienstverbindungen sollten nur Zugriff auf erforderliche Ressourcen haben. Wenn Sie eine neue Azure Resource Manager-Dienstverbindung erstellen, wählen Sie immer eine bestimmte Ressourcengruppe aus. Stellen Sie sicher, dass die Ressourcengruppe nur die erforderlichen virtuellen Computer oder Ressourcen enthält, die für den Build erforderlich sind. Anweisungen zum Einrichten von Dienstverbindungen finden Sie unter Verwenden einer Azure Resource Manager-Dienstverbindung.
- Verwenden Sie den Workload-Identitätsverbund für die Authentifizierung: Verwenden Sie nach Möglichkeit den Workload-Identitätsverbund anstelle eines Dienstprinzipals für Ihre Azure-Dienstverbindung. Der Workload-Identitätsverbund verwendet Open ID Connect (OIDC), eine Branchenstandardtechnologie, um die Authentifizierung zwischen Azure und Azure DevOps zu erleichtern, ohne sich auf geheime Schlüssel zu verlassen. Anweisungen dazu finden Sie unter Erstellen einer Dienstverbindung mit dem Workload-Identitätsverbund (automatisch).
- Minimieren Sie den Zugriff auf GitHub-Apps: Wenn Sie die GitHub-App auf Azure DevOps konfigurieren, gewähren Sie nur Zugriff auf die Repositorys, die Sie mit Pipelines erstellen möchten.
Verwenden von YAML-Pipelines anstelle von klassischen Pipelines
Um die Sicherheit zu erhöhen und das Risiko versehentlicher Fehlkonfigurationen zu verringern, verwenden Sie YAML-Pipelines anstelle von klassischen Pipelines. Diese Vorsichtsmaßnahme verhindert ein Sicherheitsproblem, das sich aus YAML- und klassischen Pipelines ergibt, die dieselben Ressourcen wie Dienstverbindungen nutzen. Wenn Ihre Organisation klassische Pipelines verwendet, migrieren Sie die Pipelines zu YAML.
- YAML bietet die Vorteile der Infrastruktur als Code: Behandeln Sie YAML-Pipelines wie jeden anderen Code, da Schritte und Abhängigkeiten im Code definiert sind. Außerdem gibt es klare Einblicke in Pipelinekonfigurationen und ein reduziertes Risiko von versehentlichen Fehlkonfigurationen.
- YAML-Pipelines können mit erweiterten Sicherheitsmaßnahmen kombiniert werden: Verwenden Sie durch Codeüberprüfungen und Pullanforderungen Verzweigungsrichtlinien , um einen Überprüfungsprozess für Pullanforderungen einzurichten, um fehlerhafte Zusammenführungen zu verhindern.
-
Ressourcenzugriffsverwaltung: Ressourcenbesitzer steuern, ob eine YAML-Pipeline auf bestimmte Ressourcen zugreifen kann. Dieses Sicherheitsfeature verhindert Angriffe wie das Stehlen eines anderen Repositorys. Verwenden Sie Genehmigungen und Überprüfungen , um die Zugriffssteuerung für jede Pipelineausführung bereitzustellen.
- Geschützte Verzweigungsprüfung: Wenn Sie über manuelle Codeüberprüfungsprozesse für bestimmte Verzweigungen verfügen, können Sie diesen Schutz auf Pipelines erweitern. Eine geschützte Verzweigungsprüfung für eine Ressource verhindert, dass Pipelines automatisch auf nicht autorisierten Verzweigungen ausgeführt werden.
- Manuelle Genehmigungsprüfung: Verwenden Sie eine manuelle Genehmigungsprüfung, um pipelineanforderungen daran zu hindern, eine geschützte Ressource zu verwenden, bis sie von bestimmten Benutzern oder Gruppen manuell genehmigt wurde.
- Überprüfung der Geschäftszeiten: Verwenden Sie diese Überprüfung, um sicherzustellen, dass eine Pipelinebereitstellung innerhalb eines bestimmten Tages- und Zeitfensters beginnt.
- Deaktivieren Sie das Erstellen klassischer Pipelines: Deaktivieren Sie unabhängig die Erstellung von klassischen Buildpipelines und klassischen Releasepipelines. Wenn beide deaktiviert sind, können keine klassische Buildpipeline, klassische Releasepipeline, Aufgabengruppen oder Bereitstellungsgruppen über die Benutzeroberfläche oder die REST-API erstellt werden. Weitere Informationen finden Sie unter Deaktivieren der Erstellung von klassischen Pipelines.
Sichere Agents
Um Container zu sichern, markieren Sie Volumes als schreibgeschützt, legen Sie Ressourcenbeschränkungen fest, verwenden Sie vertrauenswürdige Images, scannen Sie nach Schwachstellen und erzwingen Sie Sicherheitsrichtlinien.
- Verwenden Sie von Microsoft gehostete anstelle von selbst gehosteten Agents: Von Microsoft gehostete Agents bieten Isolation und einen sauberen virtuellen Computer für jede Ausführung einer Pipeline. Verwenden Sie von Microsoft gehostete Agents anstelle von selbst gehosteten Agents. Weitere Informationen finden Sie unter von Microsoft gehosteten Agents.
- Separate Agents für jedes Projekt: Um laterale Bewegungen zu minimieren und Kreuzkontaminationen zwischen Projekten zu verhindern, verwalten Sie separate Agentpools, die jeweils für ein bestimmtes Projekt vorgesehen sind.
- Verwenden Sie Konten mit niedrigen Rechten, um Agents auszuführen: Um die Systemsicherheit zu verbessern, verwenden Sie das Konto mit den niedrigsten Rechten für die Ausführung von selbst-gehosteten Agents. Erwägen Sie beispielsweise die Verwendung Ihres Computerkontos oder einer verwalteten Dienstidentität. Führen Sie keinen Agent unter einer Identität mit direktem Zugriff auf Azure DevOps-Ressourcen aus.
-
Isolieren Sie Produktionsartefakte und vertrauliche Agentpools: Verwenden Sie verschiedene Agentpools, um Sicherheitsprobleme zu verhindern.
- Verwenden Sie einen separaten Agentpool für Produktionsartefakte: Isolieren Sie Produktionsartefakte mithilfe eines unterschiedlichen Agentpools, um versehentliche Bereitstellungen von Nichtproduktionszweigen zu verhindern.
- Segmentieren Sie vertrauliche Pools: Erstellen Sie separate Pools für vertrauliche und nicht vertrauliche Workloads. Zulassen von Anmeldeinformationen in Builddefinitionen, die dem entsprechenden Pool zugeordnet sind.
- Konfigurieren Sie restriktive Firewalls für selbst gehostete Agents: Richten Sie Firewalls so restriktiv wie möglich ein, und ermöglichen Sie gleichzeitig, dass Agents funktionieren, Sicherheit und Benutzerfreundlichkeit ausgleichen können.
- Aktualisieren Sie regelmäßig selbst gehostete Agentpools: Halten Sie Ihre selbst gehosteten Agents mit regelmäßigen Updates auf dem neuesten Stand, um sicherzustellen, dass anfälliger Code nicht ausgeführt wird, wodurch das Risiko der Ausbeutung verringert wird.
Sichere Verwendung von Variablen und Parametern
Verwenden Sie Variablen und Parameter in Ihren Pipelines sicher, indem Sie bewährte Methoden zum Festlegen von Geheimnissen anwenden. Bewährte Methoden umfassen das Einschränken der geheimen Verwendung, die Verwendung von Warteschlangenzeitvariablen und das Aktivieren der Shellaufgabenargumentüberprüfung, um Ihre Pipeline vor Bedrohungen und Sicherheitsrisiken zu schützen.
- Zugriff auf geheime Informationen einschränken: Entfernen Sie alle vertraulichen Informationen oder Schlüssel, die in Pipelines angezeigt werden. Wechseln Sie zu geheimlosen Authentifizierungsmethoden wie dem Workload-Identitätsverbund, oder legen Sie Geheimnisse in der Benutzeroberfläche, einer Variablengruppe oder einer Variablengruppe, die aus Azure Key Vault stammt, fest.
- Aktivieren sie die Shellparameterüberprüfung: Wenn die Einstellung " Shellaufgabenargumente aktivieren" aktiviert ist, gibt es eine hinzugefügte Überprüfung auf Zeichen wie Semikolons, Anführungszeichen und Klammern. Aktivieren Sie die Parameterüberprüfung von Shellaufgabenargumenten auf Organisation oder Projektebene unter "Einstellungen>für Pipelineseinstellungen>".
- Beschränken Sie Variablen, die zur Warteschlangenzeit festgelegt werden können: Verhindern Sie, dass Benutzer neue Variablen zur Warteschlangenzeit definieren, indem Sie die Einstellungsgrenzvariablen aktivieren, die für die Warteschlangenzeit in den Organisationseinstellungen>pipelines-Einstellungen> festgelegt werden können.
-
Verwenden Sie Parameter anstelle von Variablen: Im Gegensatz zu Variablen kann eine ausgeführte Pipeline keine Pipelineparameter ändern. Parameter haben Datentypen wie
number
undstring
und können auf bestimmte Wertuntermengen beschränkt werden. Diese Einschränkung ist nützlich, wenn ein vom Benutzer konfigurierbarer Aspekt der Pipeline nur Werte aus einer vordefinierten Liste akzeptieren sollte, um sicherzustellen, dass die Pipeline keine beliebigen Daten akzeptiert. - Verweisen Sie auf geheime Schlüssel aus Vorlagen: Anstatt Inlineskripts mit geheimen Parametern direkt in Ihre Pipeline-YAML einzuverwenden, verwenden Sie Vorlagen, um vertrauliche Informationen von der Hauptpipeline abzustrahieren. Um diesen Ansatz zu implementieren, erstellen Sie eine separate YAML-Datei für Ihr Skript, und speichern Sie dieses Skript dann in einem separaten, sicheren Repository. Anschließend können Sie auf die Vorlage verweisen und eine geheime Variable in Ihrem YAML als Parameter übergeben. Die sichere Variable sollte aus Azure Key Vault, einer Variablengruppe oder der Pipeline-UI stammen. Weitere Informationen finden Sie unter "Verwenden von Vorlagen".
-
Beschränken Sie Geheimnisse mit Branch-Richtlinien und Variablengruppenberechtigungen: Sie können eine Kombination aus Variablengruppenberechtigungen, bedingtem Einfügen von Aufträgen und Branch-Richtlinien verwenden, um sicherzustellen, dass Geheimnisse an den
main
Branch gebunden sind. Weitere Informationen finden Sie unter Geheimnisse schützen. -
Verwenden Sie "setvariable" zum Einschränken von Einstellungsvariablen: Verwenden Sie das
settableVariables
Attribut, um zu konfigurieren, welche Variablen Pipelineautoren in einer Pipeline festlegen dürfen. Ohne diese Einstellung können Pipelineautoren unbegrenzte neue Variablen mit demsetvariable
Protokollierungsbefehl deklarieren. Wenn Sie eine leere Listewith settableVariables
angeben, ist alle Variableneinstellung unzulässig. Weitere Informationen finden Sie imsettableVariables
Attribut im YAML-Schema.
Die beste Methode, ein Geheimnis zu schützen, besteht darin, überhaupt kein Geheimnis zu haben. Vermeiden Sie geheime Schlüssel, wenn möglich, speichern Sie sie niemals in YAML-Dateien, und stellen Sie sicher, dass sie nicht protokolliert oder gedruckt werden, um die Sicherheit aufrechtzuerhalten.
- Vermeiden Sie geheime Schlüssel nach Möglichkeit: Überprüfen Sie, ob Ihre Pipeline eine andere Methode als die Verwendung eines geheimen Schlüssels verwenden kann, um eine Aufgabe auszuführen, z. B. eine Dienstverbindung mit dem Arbeitsauslastungsidentitätsverbund oder eine verwaltete Identität. Verwaltete Identitäten ermöglichen es Ihren Anwendungen und Diensten, sich mit Azure zu authentifizieren, ohne dass explizite Anmeldeinformationen erforderlich sind. Weitere Informationen finden Sie unter Verwenden von Dienstprinzipalen und verwalteten Identitäten. Fügen Sie keine geheimen Schlüssel in YAML ein: Speichern Sie vertrauliche Werte niemals als Nur-Text in einer Azure-Pipelines-.yml Datei.
- Protokollieren oder drucken Sie keine Geheimnisse: Vermeiden Sie die Wiedergabe von Geheimnissen in der Konsole, deren Verwendung in Befehlszeilenparametern oder das Protokollieren in Dateien. Azure Pipelines versucht, Geheimnisse nach Möglichkeit aus Protokollen zu entfernen, kann jedoch nicht alle Wege erfassen, wie Geheimnisse offengelegt werden können.
- Verwenden Sie strukturierte Daten wie JSON nicht als geheime Schlüssel: Erstellen Sie einzelne geheime Schlüssel für jeden vertraulichen Wert. Dieser Ansatz sorgt für eine bessere Redaction-Genauigkeit und minimiert das Risiko, vertrauliche Daten versehentlich verfügbar zu halten.
Überwachen und Drehen von Geheimnissen
Um Ihre Pipelines zu sichern, überprüfen Sie regelmäßig den Umgang mit Geheimnissen in Aufgaben und Protokollen, überprüfen und entfernen Sie unnötige Geheimnisse und rotieren Sie Geheimnisse, um Sicherheitsrisiken zu minimieren.
- Überwachen der geheimen Behandlung in Aufgaben und Protokollen: Überprüft Aufgaben, um sicherzustellen, dass geheime Schlüssel nicht an Hosts gesendet oder in Protokolle gedruckt werden. Stellen Sie sicher, dass keine geheimen Schlüssel in Protokolldateien vorhanden sind, einschließlich der Fehlerprotokolle.
- Überprüfen Sie registrierte Geheimnisse: Vergewissern Sie sich, dass Geheimnisse in Ihrer Pipeline noch erforderlich sind, und entfernen Sie alle, die nicht mehr benötigt werden, um Unordnung und potenzielle Sicherheitsrisiken zu reduzieren.
- Drehen Sie geheime Schlüssel: Drehen Sie geheime Schlüssel regelmäßig, um das Zeitfenster zu minimieren, in dem ein kompromittierter geheimer Schlüssel ausgenutzt werden kann.
Verhindern der Ausführung bösartiger Code
Um sicherzustellen, dass nur getesteter und sanitierter Code über Ihre Pipeline ausgeführt wird, überprüfen Sie ihre Pipelines regelmäßig auf häufige Probleme.
- Codescannen: Sonderzeichen in Argumenten escapen, um die Einfügung von Shellbefehlen zu vermeiden. Sie können GitHub Advanced Security für Azure DevOps verwenden, um die Codeüberprüfung zu automatisieren.
- Überprüfen Von Eingaben und Verwenden von Parametern: Überprüfen Sie Eingabeparameter und Argumente, um unbeabsichtigtes Verhalten zu verhindern. Verwenden Sie parametrisierte Abfragen in Skripts, um die SQL-Einfügung zu verhindern. Laufzeitparameter vermeiden Sicherheitsprobleme im Zusammenhang mit Variablen, z. B. Argument Injection.
-
Verwenden Sie PATH nicht in Skripts: Das Vertrauen auf die Einstellung des
PATH
Agents ist gefährlich, da sie durch ein vorheriges Skript oder Tool geändert werden kann. Verwenden Sie stattdessen immer einen vollständig qualifizierten Pfad. - Steuern der verfügbaren Aufgaben: Deaktivieren Sie die Möglichkeit, Aufgaben aus dem Marketplace zu installieren und auszuführen, wodurch Sie den Code, der in einer Pipeline ausgeführt wird, besser steuern können.
Sichere Container
Erfahren Sie, wie Sie Container durch Konfigurationsänderungen, Überprüfungen und Richtlinien sichern.
-
Markieren Sie Volumes als schreibgeschützt: Container umfassen vom System bereitgestellte Volume mounts für Aufgaben, Tools und externe Komponenten, die für die Arbeit mit dem Host-Agent erforderlich sind. Setzen Sie
externals
,tasks
undtools
auf "nur lesen" für zusätzliche Sicherheit. - Legen Sie containerspezifische Ressourcengrenzwerte fest: Legen Sie Grenzwerte für CPU und Arbeitsspeicher fest, um zu verhindern, dass Container übermäßige Ressourcen verbrauchen, was zu Denial-of-Service- oder Sicherheitsrisiken führen kann.
-
Verwenden Sie vertrauenswürdige Images: Verwenden Sie offizielle und überprüfte Images aus seriösen Quellen wie Azure Container Registry oder Docker Hub. Geben Sie immer eine bestimmte Version oder ein bestimmtes Tag an, um Konsistenz und Zuverlässigkeit aufrechtzuerhalten, anstatt auf das
latest
-Tag zu vertrauen. Aktualisieren Sie regelmäßig Basisimages, um die neuesten Sicherheitspatches und Fehlerkorrekturen einzuschließen. - Scannen Sie Container auf Sicherheitsrisiken und erzwingen Sie den Schutz vor Laufzeitrisiken: Verwenden Sie Tools wie Microsoft Defender für Cloud , um Sicherheitsrisiken zu überwachen und zu erkennen. Darüber hinaus bietet Azure Container Registry integrierte Sicherheitsrisikoüberprüfungen , um sicherzustellen, dass Containerimages vor der Bereitstellung sicher sind. Sie können auch Scantools von Drittanbietern über Azure DevOps-Erweiterungen für zusätzliche Sicherheitsüberprüfungen integrieren.
- Implementieren Sie Sicherheitsrichtlinien, um eine Berechtigungseskalation zu verhindern und sicherzustellen, dass Container mit der geringsten Menge an Berechtigungen ausgeführt werden: Beispielsweise azure Kubernetes Service (AKS),rollenbasierte Zugriffssteuerung und Pod Security Admission ermöglichen Es Ihnen, Richtlinien zu erzwingen, die Containerberechtigungen einschränken, die Nicht-Stammausführung gewährleisten und den Zugriff auf kritische Ressourcen beschränken.
- Nutzen von Netzwerkrichtlinien: Netzwerkrichtlinien können verwendet werden, um die Kommunikation zwischen Containern einzuschränken, um sicherzustellen, dass nur autorisierte Container auf vertrauliche Ressourcen in Ihrem Netzwerk zugreifen können. Darüber hinaus können Azure-Richtlinien für AKS angewendet werden, um bewährte Methoden für containersicherheit zu erzwingen, z. B. dass nur vertrauenswürdige Containerimages bereitgestellt werden.
Verwenden von Vorlagen zum Erzwingen bewährter Methoden
Beginnen Sie mit einer minimalen Vorlage, und erzwingen Sie schrittweise Erweiterungen. Dieser Ansatz stellt sicher, dass Sie bei der Implementierung von Sicherheitspraktiken einen zentralen Ausgangspunkt haben, der alle Pipelines abdeckt.
- Verwenden Sie erweiterte Vorlagen: Erweitert Vorlagen definieren die äußere Struktur und bieten spezifische Punkte für gezielte Anpassungen. Die Verwendung von erweiterten Vorlagen kann verhindern, dass bösartiger Code eine Pipeline infiltriert.
- Einschränken des Zugriffs mit Schritten: Beschränken Sie den Netzwerkzugriff, indem Sie Schritte ausführen, z. B. das Herunterladen von Paketen auf einem Container und nicht auf dem Host. Wenn Schritte in einem Container ausgeführt werden, verhindern Sie, dass ein falscher Akteur die Agentkonfiguration ändert oder schädlichen Code für die spätere Ausführung verlässt.