Was sind GitHub-Geheimnisse und wie verwenden Sie sie?

Eine der Herausforderungen bei jedem DevOps-Workflow ist die Verwaltung von Geheimnissen, Passwörtern und Tokens, die aus Sicherheitsgründen geheim gehalten werden müssen. Dies gilt insbesondere für Open-Source-Repositorys, bei denen der Code normalerweise öffentlich ist. GitHub Secrets helfen bei der Bewältigung dieses Problems bei der Arbeit mit GitHub Actions-Skripts.

Was sind GitHub Secrets?

GitHub Secrets ist im Wesentlichen ein Tresor in dem Sie private Schlüssel speichern können, auf die GitHub Actions-Skripte namentlich zugreifen können, ähnlich wie Umgebungsvariablen. Dies löst das Problem, dass es in der Codebasis im Klartext bleibt, was selbst für private Repositories ein massives Sicherheitsproblem darstellt und für öffentliche Repositories unmöglich ist, ohne sofort gehackt zu werden.

Dies ist in vielen Fällen nützlich, in denen der Code zwar öffentlich ist, sich das Aktionsskript jedoch bei einem Drittanbieterdienst authentifizieren muss. Wenn Sie beispielsweise Binärdateien in Amazon S3-Buckets hosten, müssen Sie dem Skript das Zugriffstoken zum Schreiben in den AWS-Speicher geben. Natürlich möchten Sie niemandem, der das Repository betrachtet, die Berechtigung erteilen, den Bucket-Inhalt zu überschreiben. Die Verwendung eines Geheimnisses schränkt den Zugriff ein und schützt den Schlüssel außerdem vor versehentlichem Verlust.

  • Repository-Geheimnisse gelten für ein einzelnes Repository. Sie müssen sie über das Repository-Einstellungsfeld festlegen, auf das dann wie auf Umgebungsvariablen in GitHub Actions-Builds zugegriffen werden kann.
  • GitHub Organizations-Geheimnisse gelten für alle Repositorys innerhalb dieser Organisation, was eine einfache Möglichkeit darstellt um Schlüssel zentral zu verwalten. Sie werden in den Organisationseinstellungen festgelegt.
  • Umgebungsgeheimnisse gelten für bestimmte GitHub-Umgebungen innerhalb des Repos, z. B. Entwicklung und Produktion. Dies bietet eine einfache Möglichkeit, Repository-/Organisationsgeheimnisse für verschiedene Builds zu überschreiben, z. B. für die Bereitstellung in einer Testumgebung im Vergleich zu einer Produktionsumgebung.

Derzeit gibt es keine Möglichkeit, dies festzulegen benutzerspezifische Geheimnisse. Wenn Sie diese Funktionalität wünschen, sollten Sie eine persönliche Organisation in Betracht ziehen.

Sie können bis zu 1.000 Organisationsgeheimnisse, 100 Repository-Geheimnisse und 100 Umgebungsgeheimnisse speichern. Die Größe von Secrets ist ebenfalls auf 64 KB begrenzt, es gibt jedoch Problemumgehungen für diese Einschränkung. Sie können Binärdaten auch als Base64-codierte Zeichenfolgen speichern.

Es ist immer noch möglich, sie aus dem Aktionsskript zu verlieren, wenn Sie sie beispielsweise mit einem Befehl wie „echo“ auf der Konsole ausgeben. Sie sollten sicherstellen, dass keines der Skripte, in die Sie die Geheimnisse einspeisen, diese an den Benutzer zurückliest oder in Protokolldateien ausgibt. Glücklicherweise blockiert GitHub die Weitergabe des Geheimnisses an bestimmte Protokollierungsbefehle, einschließlich echo.

GitHub-Geheimnisse verwenden

Um ein Repository-weites Geheimnis festzulegen, müssen Sie zum Einstellungsfenster für das Repository gehen und auf Geheimnisse > klicken. Aktionen. Sie können auch Geheimnisse für GitHub-Codespaces und Dependabot festlegen, falls Sie diese verwenden.

Sie können einen Variablennamen festlegen und den geheimen Inhalt einfügen. Sobald Sie dieses Fenster verlassen, wird der Schlüssel jedoch nicht mehr angezeigt. Sie können ihn jedoch bearbeiten und einen neuen Schlüssel einfügen. Dies ist im Allgemeinen die Art und Weise, wie die meisten Geheimspeicher funktionieren sollten, und stellt eine gute Sicherheitsfunktion dar, aber erwarten Sie nicht, dass Sie diesen Schlüssel wieder sehen können.

Die Namenskonvention für geheime Namen ist Großschreibung mit Unterstrichen, auch bekannt als „Screaming Snake Case“, Dies wird jedoch durch nichts erzwungen.

Dann können Sie in Ihrem Aktionsskript darauf verweisen, indem Sie es als YAML-Variable maskieren, etwa so:

${{ Secrets.SECRET_NAME }}

< p>Beachten Sie, dass “Geheimnisse.” context muss vor dem Secret-Namen eingefügt werden. Sie müssen auch nichts Besonderes tun, um auf Organisationsgeheimnisse im Vergleich zu Geheimnissen mit einem einzigen Repository zu verweisen.

Dieser Wert kann an Befehle übergeben werden, Sie können ihn aber auch zum Festlegen von Umgebungsvariablen für a verwenden Verfahren. Auf diese Weise akzeptieren die meisten Tools normalerweise ohnehin Geheimnisse, da es sich um das sicherste und flexibelste System handelt.

< p>Wenn in Ihrem Konto kein Geheimnis vorhanden ist, verwendet GitHub eine leere Zeichenfolge als Wert.

Organisationsgeheimnisse

Das Festlegen organisationsweiter Geheimnisse erfolgt auf die gleiche Weise, es gibt jedoch einige zusätzliche Kontrollen für Zugriff und Verteilung.

Beim Erstellen eines Organisationsgeheimnisses können Sie festlegen, dass es nur für öffentliche oder private Repositorys gilt. Private Geheimnisse für die Organisation sind jedoch eine kostenpflichtige Option. Sie können auch einzelne Repositories auswählen.

Um ein Organisationsgeheimnis zu erstellen oder zu bearbeiten, müssen Sie über “admin” verfügen. Zugang zur Organisation selbst. Dies kann allen Mitgliedern durch Bearbeiten der Basisberechtigungen gewährt werden, wird jedoch im Allgemeinen nicht für große Organisationen empfohlen.

WEITER LESEN

  • › So erstellen Sie intelligente Alben in Apple Fotos auf dem Mac
  • › Die Wiederherstellungsfunktion von Windows 11 wird bald mit mehr Apps funktionieren
  • › Ein Rückblick auf VR-Produkte, die dem Hype nie gerecht wurden
  • › Ihre IP wurde vorübergehend blockiert: 7 Möglichkeiten, das Problem zu beheben
  • › Sparen Sie jetzt 10 % auf die riesige Premium-Schriftbibliothek von Monotype
  • › Das 64-GB-Fire-HD-10-Tablet von Amazon gibt es heute um mehr als die Hälfte günstiger

Posted

in

by

Tags: