Verwalten der GitHub Advanced Security-Features und -Warnungen
Nachdem die Sicherheit für Ihr Projekt eingerichtet ist, müssen Sie nur noch die GitHub Advanced Security-Features und -Warnungen für Ihr Projekt überwachen und verwalten.
In dieser Lektion erfahren Sie, wie Sie die Sicherheitsrisiken in Ihrem Projekt mithilfe der Sicherheitsübersicht überwachen. In dieser Lektion wird auch erläutert, wie Sie die GitHub Advanced Security-Endpunkte zum Verwalten der GitHub Advanced Security-Features und -Warnungen verwenden.
Verwenden der Sicherheitsübersicht
Die Sicherheitsübersicht ist auf der Registerkarte "Sicherheit " von Organisationen und Repositorys verfügbar. Sie können es verwenden, um einen allgemeinen Überblick über den Sicherheitsstatus Ihrer Organisation zu erhalten oder problematische Repositorys zu identifizieren, die einen Eingriff erfordern.
- Auf Organisationsebene zeigt die Sicherheitsübersicht aggregierte und repositoryspezifische Sicherheitsinformationen für Repositorys an, die Ihre Organisation besitzt. Sie können informationen auch pro Sicherheitsfeature filtern.
- Auf Teamebene zeigt die Sicherheitsübersicht repositoryspezifische Sicherheitsinformationen für Repositorys an, für die das Team über Administratorrechte verfügt.
- Auf Repositoryebene zeigt die Sicherheitsübersicht, welche Sicherheitsfeatures für das Repository aktiviert sind, und bietet die Möglichkeit, alle verfügbaren Sicherheitsfeatures zu konfigurieren, die derzeit nicht verwendet werden.
Dank seiner hohen Interaktivität und zahlreicher Filter ist die Sicherheitsübersicht sowohl für umfassende als auch spezifische Analysen des Sicherheitsstatus Ihrer Organisation nützlich. Sie können es beispielsweise verwenden, um die Einführung von Features durch Ihre Organisation oder ein bestimmtes Team zu überwachen, während Sie GitHub Advanced Security für Ihr Unternehmen bereitstellen, oder sie verwenden, um alle Warnungen eines bestimmten Typs und Schweregrads für alle Repositorys in Ihrer Organisation zu überprüfen.
Verwenden der GitHub Advanced Security-Endpunkte
In der folgenden Tabelle wird erläutert, welche Endpunkte für jedes Advanced Security-Feature mit Links zu ihrer Dokumentation verfügbar sind.
| Merkmal | Endpunkte | Dokumentation |
|---|---|---|
| Code-Überprüfung | Abrufen und Aktualisieren von Codeüberprüfungswarnungen aus einem Repository. Erstellen Sie automatisierte Berichte für Codescanbenachrichtigungen in einer Organisation. Analyseergebnisse hochladen, die mithilfe von Offline-Code-Scan-Tools generiert wurden. |
Codescan-API |
| Geheimnisüberprüfung | Aktivieren oder Deaktivieren von Geheimnisscans für ein Repository. Abrufen und Aktualisieren geheimer Scanwarnungen aus einem privaten Repository. |
Repos-API Geheime Scan-API |
| Abhängigkeitsüberprüfung | Aktivieren und deaktivieren Sie Abhängigkeitswarnungen und das Abhängigkeitsdiagramm für ein Repository. Aktivieren und Deaktivieren von Sicherheitsupdates für ein Repository. Anzeigen von Abhängigkeitsinformationen. |
Repos-API GraphQL-API |
Wenn Sie GitHub-Aktionen verwenden möchten, um Ihre Sicherheitsworkflows zu automatisieren, ist es wichtig, die Berechtigungen für die GITHUB_TOKEN verwendung für authentifizierte API-Aufrufe ordnungsgemäß festzulegen. Das GITHUB_TOKEN verfügt je nach Geltungsbereich über Standardberechtigungen:
| Umfang | Standardzugriff (zulässig) | Standardzugriff (eingeschränkt) | Maximaler Zugriff von geforkten Repositories |
|---|---|---|---|
| Aktionen | Lesen/Schreiben | nichts | Lesen |
| Prüfungen | Lesen/Schreiben | nichts | Lesen |
| Inhalt | Lesen/Schreiben | Lesen | Lesen |
| Bereitstellungen | Lesen/Schreiben | nichts | Lesen |
| id-token | Lesen/Schreiben | nichts | Lesen |
| Probleme | Lesen/Schreiben | nichts | Lesen |
| Metadaten | Lesen | Lesen | Lesen |
| pakete | Lesen/Schreiben | nichts | Lesen |
| pull-requests | Lesen/Schreiben | nichts | Lesen |
| Repository-Projekte | Lesen/Schreiben | nichts | Lesen |
| Sicherheitsereignisse | Lesen/Schreiben | nichts | Lesen |
| Status | Lesen/Schreiben | nichts | Lesen |
Du kannst die Berechtigungen für das GITHUB_TOKEN in einzelnen Workflowdateien ändern. Wenn die Standardberechtigungen für die GITHUB_TOKEN einschränkungsbeschränkt sind, müssen Sie möglicherweise die Berechtigungen erhöhen, damit einige Aktionen und Befehle erfolgreich ausgeführt werden können. Wenn die Standardberechtigungen freizügig sind, kannst du die Workflowdatei bearbeiten, um einige Berechtigungen aus dem GITHUB_TOKEN zu entfernen. Als bewährte Sicherheitsmethode solltest du dem GITHUB_TOKEN nur den geringsten erforderlichen Zugriff gewähren.
Sie können auch den permissions Schlüssel in Ihren Workflowdateien verwenden, um Berechtigungen für den GITHUB_TOKEN gesamten Workflow oder für einzelne Aufträge zu ändern. Mit diesem Schlüssel können Sie die erforderlichen Mindestberechtigungen für einen Workflow oder Auftrag konfigurieren. Wenn der permissions Schlüssel verwendet wird, werden alle nicht angegebenen Berechtigungen auf keinen Zugriff festgelegt, mit Ausnahme des Metadatenbereichs, der immer Lesezugriff erhält.
name: Create issue on commit
on: [ push ]
jobs:
create_commit:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Create issue using REST API
run: |
curl --request POST \
--url http(s)://[hostname]/api/v3/repos/${{ github.repository }}/issues \
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
--header 'content-type: application/json' \
--data '{
"title": "Automated issue for commit: ${{ github.sha }}",
"body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**. \n\n The commit hash was: _${{ github.sha }}_."
}' \
--fail
Im Beispiel oben wird Schreibzugriff für einen Bereich für einen einzelnen Auftrag gewährt.
Darüber hinaus können Sie den permissions-Schlüssel verwenden, um Leseberechtigungen für geforkte Repositories hinzuzufügen und zu entfernen, aber in der Regel können Sie keinen Schreibzugriff gewähren. Eine Ausnahme dieses Verhaltens besteht dann, wenn Sie in den Einstellungen für GitHub Actions die Option Send write tokens to workflows from pull requests (Schreibtoken an Workflows aus Pull Requests senden) ausgewählt haben.