Einschränkungen, wenn Dependabot Ereignisse auslöst
Von Dependabot können GitHub Actions-Workflows in den zugehörigen Pull Requests und Kommentaren ausgelöst werden. Bestimmte Ereignisse werden jedoch anders behandelt.
Für Workflows, die über Dependabot (github.actor == 'dependabot[bot]') mittels der Ereignisse pull_request, pull_request_review, pull_request_review_comment, push, create, deployment und deployment_status ausgelöst werden, gelten die folgenden Einschränkungen:
-
`GITHUB_TOKEN` verfügt standardmäßig über Leseberechtigungen. - Geheimnisse werden aus Dependabot-Geheimnissen aufgefüllt. GitHub Actions-Geheimnisse sind nicht verfügbar.
Für Workflows, die von Dependabot (github.actor == 'dependabot[bot]') mithilfe des Ereignisses pull_request_target initiiert werden, ist das github.event.pull_request.user.login == 'dependabot[bot]' schreibgeschützt, und Geheimnisse sind nicht verfügbar, wenn der Basisverweis der Pullanforderung über Dependabot (GITHUB_TOKEN) erstellt wurde.
Diese Einschränkungen gelten auch, wenn der Workflow von einem anderen Akteur erneut ausgeführt wird.
Weitere Informationen finden Sie unter Aufrechterhalten der Sicherheit von GitHub Actions und GitHub-Workflows: Verhindern von pwn-Anforderungen zu finden.
Anforderungen für die Verwendung von Dependabot mit selbst gehosteten Runnern
Um Dependabot updates mithilfe von selbstgehosteten Runners zu generieren, müssen Sie Ihr System, Ihr Netzwerk und Ihre Zertifikate korrekt konfigurieren.
Systemanforderungen
Jede virtuelle Maschine (VM), die du für Dependabot-Runner verwendest, muss die Anforderungen für selbst gehostete Runner erfüllen. Sie muss außerdem die folgenden Anforderungen erfüllen.
-
Linux-Betriebssystem
-
x64-Architektur
-
Docker ist mit Zugriff für die Runner-Benutzer installiert:
- Du solltest Docker im Rootless-Modus installieren und die Runner für den Zugriff auf Docker ohne
root-Berechtigungen konfigurieren. - Installiere alternativ Docker, und gib den Runner-Benutzern Berechtigungen zum Ausführen von Docker.
- Du solltest Docker im Rootless-Modus installieren und die Runner für den Zugriff auf Docker ohne
Die CPU- und Speicheranforderungen hängen von der Anzahl der gleichzeitigen Runner ab, die du auf einer bestimmten VM bereitstellst. Als Anhaltspunkt: Wir haben erfolgreich 20 Runner auf einem einzelnen Computer mit 2 CPUs und 8 GB eingerichtet. Letztendlich hängen deine CPU- und Speicheranforderungen jedoch stark von den zu aktualisierenden Repositories ab. Einige Ökosysteme erfordern mehr Ressourcen als andere.
Wenn du mehr als 14 gleichzeitige Runner auf einer VM angibst, musst du auch die Docker-/etc/docker/daemon.json-Konfiguration aktualisieren, um die Standardanzahl von Netzwerken zu erhöhen, die Docker erstellen kann.
{
"default-address-pools": [
{"base":"10.10.0.0/16","size":24}
]
}
Netzwerkanforderungen
Die Dependabot-Runner benötigen Zugriff auf das öffentliche Internet, GitHub.com, und auf alle internen Registrierungen, die in Dependabot updates verwendet werden. Um das Risiko für dein internes Netzwerk zu minimieren, solltest du den Zugriff auf den virtuellen Computer (VM) auf dein internes Netzwerk beschränken. Dadurch wird das Potenzial für Schäden an internen Systemen reduziert, wenn ein Runner eine Hijack-Abhängigkeit herunterladen sollte.
Zertifikatkonfiguration
Wenn Dependabot mit Registrierungen interagieren muss, die selbstsignierte Zertifikate verwenden, müssen diese Zertifikate auch auf den selbst gehosteten Runnern installiert werden, die Dependabot-Jobs ausführen. Dadurch wird die Sicherheit der Verbindung erhöht. Du musst auch Node.js für die Verwendung des Zertifikats konfigurieren, da die meisten Aktionen in JavaScript geschrieben sind und mit Hilfe von Node.js ausgeführt werden, das nicht den Zertifikatspeicher des Betriebssystems verwendet.