Verwaltung von geheimen Informationen in GitHub

Abgeschlossen

Geheime Schlüssel sind Variablen, die Sie in einer Organisation, einem Repository oder einer Repositoryumgebung erstellen. Die geheimen Schlüssel sind für die Verwendung in GitHub-Aktionen-Workflows verfügbar. GitHub-Aktionen können nur ein Geheimnis lesen, wenn Sie den geheimen Schlüssel explizit in einen Workflow einschließen.

Für geheime Schlüssel, die auf Organisationsebene gespeichert sind, können Sie Zugriffsrichtlinien verwenden, um zu steuern, welche Repositorys Organisationsgeheimnisse verwenden können. Mit geheimen Schlüsseln auf Organisationsebene können Sie geheime Schlüssel zwischen mehreren Repositorys teilen. Dies reduziert die Notwendigkeit, doppelte geheime Schlüssel zu erstellen. Durch das Aktualisieren eines Organisationsgeheimnisses an einem Ort wird sichergestellt, dass die Änderung in allen Repository-Workflows wirksam wird, die dieses Geheimnis verwenden.

Für geheime Schlüssel, die auf Umgebungsebene gespeichert sind, können Sie die erforderlichen Prüfer aktivieren, um den Zugriff auf die geheimen Schlüssel zu steuern. Ein Workflowauftrag kann nicht auf Umgebungsgeheimnisse zugreifen, es sei denn, sie werden von den erforderlichen genehmigenden Personen genehmigt.

Anmerkung

Sie können Ihre Workflows so konfigurieren, dass sie sich direkt bei Azure authentifizieren, um auf Ressourcen zuzugreifen.

Benennen Ihrer Geheimnisse

Die folgenden Regeln gelten für geheime Namen:

  • Namen dürfen nur alphanumerische Zeichen ([a-z], [A-Z], [0-9]) oder Unterstriche (_) enthalten. Leerzeichen sind nicht zulässig.
  • Namen dürfen nicht mit dem Präfix GITHUB_ beginnen.
  • Namen dürfen nicht mit einer Zahl beginnen.
  • Bei den Namen wird die Groß-/Kleinschreibung nicht berücksichtigt.
  • Namen müssen auf der Ebene, auf der sie erstellt wurden, eindeutig sein.

Um sicherzustellen, dass GitHub Ihren geheimen Schlüssel in Protokollen redagiert, vermeiden Sie die Verwendung strukturierter Daten als Werte geheimer Schlüssel. Vermeiden Sie beispielsweise das Erstellen geheimer Schlüssel, die JSON- oder codierte Git-Blobs enthalten.

Zugriff auf Ihre Geheimnisse

Legen Sie den geheimen Schlüssel als Eingabe- oder Umgebungsvariable in der Workflowdatei fest, um ihn für eine Aktion verfügbar zu machen. Sie können Geheimnisse in einer Workflow-Datei verwenden und lesen, wenn Sie Bearbeitungszugriff auf die Datei haben. Weitere Informationen finden Sie unter Access-Berechtigungen auf GitHub.

Organisationsgeheimnisse und Repositorygeheimnisse werden gelesen, wenn ein Workflow in die Warteschlange gestellt wird, und Umgebungsgeheimnisse werden gelesen, wenn ein Auftrag gestartet wird, der auf die Umgebung verweist. Sie können geheime Schlüssel auch mithilfe der REST-API verwalten.

Einschränkung von Berechtigungen für Anmeldedaten

Es wird empfohlen, die mindest möglichen Berechtigungen zu erteilen. Verwenden Sie z. B. anstelle von persönlichen Anmeldeinformationen bereitstellungsschlüssel oder ein Dienstkonto. Erwägen Sie, schreibgeschützte Berechtigungen zu gewähren, wenn nur dies benötigt wird, und beschränken Sie den Zugriff so weit wie möglich.

Wählen Sie beim Generieren eines persönlichen Zugriffstokens (klassisch) die wenigen erforderlichen Bereiche aus. Wenn Sie ein differenziertes persönliches Zugriffstoken generieren, wählen Sie die mindestberechtigungen und den erforderlichen Repositoryzugriff aus.

Geheimnisse erstellen

Um geheime Schlüssel oder Variablen auf GitHub für ein persönliches Konto-Repository zu erstellen, müssen Sie der Repositorybesitzer sein. Um geheime Schlüssel oder Variablen auf GitHub für ein Organisations-Repository zu erstellen, müssen Sie über admin Zugriff verfügen. Um geheime Schlüssel oder Variablen für ein persönliches Konto-Repository oder ein Organisations-Repository über die REST-API zu erstellen, müssen Sie über den Zugriff auf Mitarbeiter verfügen.

Geheimnisse können erstellt werden von:

  • Wählen Sie "Einstellungen" in der oberen Navigationsleiste Ihres Repositorys aus.
  • Wählen Sie im Abschnitt "Sicherheit " im linken Navigationsbereich die Dropdownliste "Geheimnisse und Variablen " aus.
  • Wählen Sie "Aktionen" aus, um auf die Seite " Geheime Aktionen" und "Variablen " zuzugreifen.

Verwenden von geheimen Schlüsseln in einem Workflow

Um eine Aktion mit einem geheimen Schlüssel als Eingabe- oder Umgebungsvariable bereitzustellen, können Sie den secrets Kontext verwenden, um auf geheime Schlüssel zuzugreifen, die in Ihrem Repository erstellt wurden. Der folgende Code zeigt ein Beispiel für den Zugriff auf geheime Schlüssel in einem Workflow.

steps:
  - name: Hello world action
    with: # Set the secret as an input
      super_secret: ${{ secrets.SuperSecret }}
    env: # Or as an environment variable
      super_secret: ${{ secrets.SuperSecret }}

Geheime Schlüssel können in if: Bedingungen nicht direkt referenziert werden. Erwägen Sie das Festlegen geheimer Schlüssel als Umgebungsvariablen auf Auftragsebene, und verweisen Sie dann auf die Umgebungsvariablen, um die Schritte im Auftrag bedingt auszuführen.

Wenn der Wert eines geheimen Schlüssels nicht festgelegt ist, ist der Rückgabewert eines Ausdrucks, der auf den geheimen Schlüssel verweist (z. B. ${{ secrets.SuperSecret }} im Beispiel), eine leere Zeichenfolge.