Skip to main content

Grundlegendes zu den GitHub-Geheimnistypen

Erfahren Sie mehr über die Verwendungs-, Bereichs- und Zugriffsberechtigungen für GitHub geheime Schlüssel.

Wie GitHub Geheimnisse speichert

GitHub verwendet libsodium versiegelte Kästchen zum Verschlüsseln geheimer Schlüssel. Ein Geheimnis wird verschlüsselt, bevor es GitHub erreicht und bleibt verschlüsselt, bis es von Dependabot, GitHub Actions oder Codespaces verwendet wird.

Dependabot Geheimnisse

Dependabot-Geheimnisse werden verwendet, um Anmeldeinformationen und vertrauliche Informationen für die Verwendung in Dependabot zu speichern.

Dependabot Geheimnisse werden in der dependabot.yml-Datei eines Repositorys referenziert.

Usage

Dependabot-Geheimnisse werden in der Regel von Dependabot verwendet, um sich bei privaten Paketregistrierungen zu authentifizieren. Dadurch können Dependabot Pullanforderungen geöffnet werden, um anfällige oder veraltete Abhängigkeiten in privaten Repositorys zu aktualisieren. Für die Authentifizierung verwendet, werden diese Dependabot Geheimnisse in der dependabot.yml Datei eines Repositorys referenziert.

Dependabot Geheimnisse können auch solche enthalten, die für von Dependabot initiierte Workflows erforderlich sind. Beispielsweise kann Dependabot GitHub Actions-Workflows auslösen, wenn es Pull-Anfragen zur Aktualisierung von Abhängigkeiten erstellt oder Kommentare zu Pull-Anfragen hinterlässt. In diesem Fall kann in Workflow-Dateien (.github/workflows/*.yml) auf Dependabot-Geheimnisse verwiesen werden, sofern der Workflow durch ein Dependabot-Ereignis ausgelöst wird.

Geltungsbereich

Sie können Geheimnisse Dependabot unter: definieren

  • Repositoryebene
  • Organisationsebene

Dependabot Geheime Schlüssel können über Repositorys hinweg freigegeben werden, wenn sie auf Organisationsebene festgelegt sind. Du musst angeben, welche Repositorys in der Organisation auf das Geheimnis zugreifen können.

Zugriffsberechtigungen

Auf die Dependabot-Geheimnisse wird von Dependabot zugegriffen, wenn eine Authentifizierung bei privaten Registrierungen erfolgt, um Abhängigkeiten zu aktualisieren.

Auf die Dependabot-Geheimnisse wird von GitHub Actions-Workflows zugegriffen, wenn das Triggerereignis für den Workflow durch Dependabotinitiiert wird. Dies liegt daran, dass bei der Auslösung eines Workflows durch Dependabot nur Dependabot-Geheimnisse verfügbar sind – auf Aktionsgeheimnisse kann nicht zugegriffen werden. Daher müssen alle für diese Workflows erforderlichen Geheimnisse als Dependabot Geheimnisse anstelle von Actions-Geheimnissen gespeichert werden. Es gibt zusätzliche Sicherheitseinschränkungen für das pull_request_target-Ereignis. Weitere Informationen findest du unter Einschränkungen.

Benutzerzugriffsberechtigungen

Geheimnisse auf Repositoryebene:

  • Benutzer mit Administratorzugriff auf das Repository können Dependabot Secrets erstellen und verwalten.
  • Benutzer mit Mitarbeiterzugriff auf das Repository können das Geheimnis für Dependabot verwenden.

Geheimnisse auf Organisationsebene:

  • Organisationsbesitzer können Dependabot Geheimnisse erstellen und verwalten.
  • Benutzer mit Mitarbeiterzugriff auf die Repositorys, die Zugriff auf jedes Geheimnis haben, können das Geheimnis für Dependabot verwenden.

Einschränkungen und Beschränkungen

Bei Workflows, die von Dependabotdiesem initiiert werden, wird das pull_request_target Ereignis anders behandelt als andere Ereignisse. Für dieses Ereignis gilt: Wenn die Basisreferenz der Pull-Anforderung von Dependabot (github.event.pull_request.user.login == 'dependabot[bot]') erstellt wurde:

  • Der Workflow empfängt ein schreibgeschütztes GITHUB_TOKEN-Element.
  • Geheimnisse sind für den Workflow nicht verfügbar.

Diese zusätzliche Einschränkung hilft dabei, potenzielle Sicherheitsrisiken zu verhindern, die aus Pull-Anfragen entstehen könnten, die von Dependabot erstellt werden.

Dependabot-Geheimnisse werden nicht an Forks übergeben.

Aktionsgeheimnisse

Actions-Geheimnisse werden verwendet, um vertrauliche Informationen wie API-Schlüssel, Authentifizierungstoken und weitere Anmeldeinformationen in Workflows zu speichern.

Usage

In Workflowdateien (.github/workflows/*.yml) wird auf Actions-Geheimnisse verwiesen.

Geltungsbereich

Du kannst Actions-Geheimnisse auf den folgenden Ebenen definieren:

  • Repositoryebene
  • Umgebungsebene
  • Organisationsebene

Geheimnisse auf Umgebungsebene sind für eine bestimmte Umgebung wie die Produktions- oder Stagingumgebung spezifisch. Actions-Geheimnisse können zwischen Repositorys geteilt werden, wenn diese auf Organisationsebene festgelegt wurden. Du kannst Zugriffsrichtlinien verwenden, um zu steuern, welche Repositorys Zugriff auf das Geheimnis haben.

Zugriffsberechtigungen

Geheime Aktionen sind nur innerhalb von GitHub Actions-Workflows verfügbar. Obwohl Dependabot auf Aktionen ausgeführt wird, hat es keinen Zugriff auf Aktions-Geheimnisse.

Für Workflows, die von Dependabot initiiert werden, sind Aktions-Geheimnisse nicht verfügbar. Diese Workflowschlüssel müssen als Dependabot geheime Schlüssel gespeichert werden, um auf den Workflow zugreifen zu können.

Der Speicherort, an dem das Actions-Geheimnis gespeichert wird, bestimmt den Zugriff:

  • Repositorygeheimnis: Alle Workflows im Repository können auf das Geheimnis zugreifen.
  • Umgebungsgeheimnis: Das Geheimnis ist auf Aufträge beschränkt, die auf diese bestimmte Umgebung verweisen.
  • Organisationsgeheimnis: Alle Workflows in den Repositorys, denen der Zugriff durch die Organisation gewährt wurde, können auf die Organisationsgeheimnisse zugreifen.

Benutzerzugriffsberechtigungen

Geheimnisse auf Repositoryebene und Umgebungsgeheimnisse:

  • Benutzende mit Administratorzugriff für das Repository können Actions-Geheimnisse erstellen und verwalten.
  • Benutzende mit Projektmitarbeiterzugriff für das Repository können das Geheimnis verwenden.

Geheimnisse auf Organisationsebene:

  • Organisationsbesitzende können Actions-Geheimnisse erstellen und verwalten.
  • Benutzende mit Projektmitarbeiterzugriff für die Repositorys mit Zugriff auf die einzelnen Geheimnisse können das Geheimnis verwenden.

Einschränkungen und Beschränkungen

  • Aktions-Geheimnisse stehen für Workflows, die von Dependabot initiiert werden, nicht zur Verfügung.
  • Actions-Geheimnisse werden nicht an Workflows übergeben, die durch einen Pull Request von einem Fork ausgelöst werden.
  •           GitHub Actions schwärzt automatisch den Inhalt aller GitHub-Geheimnisse, die in Workflow-Protokollen ausgegeben werden.
    
  • Du kannst bis zu 1.000 Organisationsgeheimnisse, 100 Repositorygeheimnisse und 100 Umgebungsgeheimnisse speichern. Geheimnisse sind auf 48 KB beschränkt. Weitere Informationen findest du unter Einschränkungen für Geheimnisse.

Codespaces Geheimnisse

Codespaces geheime Schlüssel speichern Anmeldeinformationen und vertrauliche Informationen, z. B. API-Token und SSH-Schlüssel, für die Verwendung innerhalb GitHub Codespaces, sodass Sie sichere Entwicklungsumgebungen konfigurieren können.

Usage

Codespaces-Geheimnisse werden in der Konfiguration des Codespaces-Entwicklungscontainers (devcontainer.json) angegeben.

Geltungsbereich

Sie können Geheimnisse Codespaces unter: definieren

  • Benutzerkontoebene
  • Repositoryebene
  • Organisationsebene

Du kannst für Geheimnis auf Benutzerkontoebene auswählen, welche Repositorys Zugriff auf das Geheimnis haben.

Codespaces Geheime Schlüssel können über Repositorys hinweg freigegeben werden, wenn sie auf Organisationsebene festgelegt sind. Du kannst Zugriffsrichtlinien verwenden, um zu steuern, welche Repositorys Zugriff auf das Geheimnis haben.

Zugriffsberechtigungen

Codespaces Geheime Schlüssel sind nur zugänglich in Codespaces.

GitHub Actions kann nicht auf Codespaces-Geheimnisse zugreifen.

Benutzerzugriffsberechtigungen

Geheimnisse auf Benutzerkontoebene:

  • Codespaces Geheime Schlüssel sind für alle Codespaces verfügbar, die Sie mit Repositorys mit Zugriff auf diesen geheimen Schlüssel erstellen.

Geheimnisse auf Repositoryebene:

  • Benutzer mit Administratorzugriff auf das Repository können Codespaces Secrets erstellen und verwalten.
  • Benutzende mit Projektmitarbeiterzugriff für das Repository können das Geheimnis verwenden.

Geheimnisse auf Organisationsebene:

  • Organisationsbesitzer können Codespaces Geheimnisse erstellen und verwalten.
  • Benutzende mit Projektmitarbeiterzugriff für die Repositorys mit Zugriff auf die einzelnen Geheimnisse können das Geheimnis verwenden.

Einschränkungen und Beschränkungen

  • Sie können bis zu 100 Geheimnisse speichern für GitHub Codespaces.
  • Geheimnisse sind auf 48 KB beschränkt.
  •           Codespaces-Geheimnisse werden nicht an Forks übergeben.
    

Weiterführende Lektüre