Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Stellen Sie eine ChatOps Lösung zur Verwaltung von SAST-Scanergebnissen bereit, indem Sie Amazon Q Developer in Chat-Anwendungen verwenden, benutzerdefinierte Aktionen und AWS CloudFormation
Erstellt von Anand Bukkapatnam Tirumala (AWS)
Übersicht
Dieses Muster stellt eine umfassende Lösung dar, die Amazon Q Developer in Chat-Anwendungen verwendet, um die Verwaltung von SAST-Scanfehlern (Static Application Security Testing) zu optimieren, die gemeldet wurden. SonarQube Dieser innovative Ansatz integriert benutzerdefinierte Aktionen und Benachrichtigungen in eine Konversationsoberfläche und ermöglicht so effiziente Zusammenarbeit und Entscheidungsprozesse innerhalb der Entwicklungsteams.
In der heutigen schnelllebigen Softwareentwicklungsumgebung ist die effiziente Verwaltung der SAST-Scanergebnisse entscheidend für die Aufrechterhaltung der Codequalität und -sicherheit. Viele Unternehmen stehen jedoch vor den folgenden großen Herausforderungen:
Verspätete Erkennung kritischer Sicherheitslücken aufgrund ineffizienter Meldesysteme
Langsame Entscheidungsprozesse aufgrund unzusammenhängender Genehmigungsabläufe
Mangel an sofortigen, umsetzbaren Reaktionen auf SAST-Scanfehler
Fragmentierte Kommunikation und Zusammenarbeit im Zusammenhang mit Sicherheitsergebnissen
Zeitaufwändige und fehleranfällige manuelle Einrichtung der Infrastruktur für Sicherheitstools
Diese Probleme führen häufig zu erhöhten Sicherheitsrisiken, verzögerten Releases und verminderter Teamproduktivität. Um diesen Herausforderungen effektiv zu begegnen, ist eine Lösung erforderlich, die das SAST-Ergebnismanagement rationalisiert, die Teamzusammenarbeit verbessert und die Bereitstellung der Infrastruktur automatisiert.
Zu den wichtigsten Funktionen der Lösung gehören:
Maßgeschneiderte Benachrichtigungen — Warnmeldungen und Benachrichtigungen in Echtzeit werden direkt an die Chat-Kanäle des Teams gesendet, sodass Sicherheitslücken oder Fehler beim SAST-Scan umgehend erkannt und entsprechende Maßnahmen ergriffen werden können.
Genehmigungen per Konversation — Beteiligte können Genehmigungsworkflows für SAST-Scanergebnisse nahtlos über die Chat-Oberfläche initiieren und abschließen, wodurch die Entscheidungsprozesse beschleunigt werden.
Benutzerdefinierte Aktionen — Teams können auf der Grundlage von SAST-Scanergebnissen benutzerdefinierte Aktionen definieren und ausführen, z. B. das automatische Auslösen von E-Mail-Nachrichten bei Quality-Gate-Ausfällen, wodurch die Reaktionsfähigkeit bei Sicherheitsproblemen verbessert wird.
Zentralisierte Zusammenarbeit — Alle Diskussionen, Entscheidungen und Aktionen im Zusammenhang mit SAST-Scans werden in einer einheitlichen Chat-Umgebung abgehalten, wodurch die Zusammenarbeit und der Wissensaustausch zwischen den Teammitgliedern verbessert werden.
Infrastructure as Code (IaC) — Die gesamte Lösung ist mit AWS CloudFormation Vorlagen ausgestattet, die eine schnellere und zuverlässigere Bereitstellung der Infrastruktur ermöglichen und gleichzeitig Fehler bei der manuellen Einrichtung reduzieren.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktiver. AWS-Konto
Eine AWS Identity and Access Management (IAM-) Rolle mit Berechtigungen zum Erstellen und Verwalten von Ressourcen, die mit den unter Tools AWS-Services aufgelisteten Ressourcen verknüpft sind.
Ein Slack-Workspace.
Amazon Q Developer in Chat-Anwendungen wurde dem erforderlichen Slack-Workspace als Plugin hinzugefügt. Weitere Informationen findest du unter Apps zu deinem Slack-Workspace hinzufügen in der Slack-Dokumentation
. Notiere dir die Workspace-ID von Slack, wie sie auf der AWS Management Console nach erfolgreicher Registrierung angegeben ist. Ein konfigurierter Client für Amazon Q Developer in Chat-Anwendungen, bei dem die Workspace-ID sofort zur Eingabe in der AWS CloudFormation Konsole verfügbar ist. Anweisungen finden Sie unter Konfiguration eines Slack-Clients im Administratorhandbuch für Amazon Q Developer in Chat-Anwendungen.
Ein Quell-E-Mail-Konto, das in Amazon Simple Email Service (Amazon SES) erstellt und verifiziert wurde, um Genehmigungs-E-Mail-Nachrichten zu versenden. Anweisungen zur Einrichtung finden Sie unter E-Mail-Identitäten erstellen und verifizieren im Amazon Simple Email Service Developer Guide.
Eine Ziel-E-Mail-Adresse für den Empfang von Genehmigungsbenachrichtigungen. Diese Adresse kann ein gemeinsam genutzter Posteingang oder eine bestimmte Team-Verteilerliste sein.
Eine betriebsbereite SonarQube Instanz, auf die von Ihrem aus zugegriffen werden kann AWS-Konto. Weitere Informationen finden Sie in den SonarQube Installationsanweisungen
. Ein SonarQube Benutzertoken
mit Berechtigungen zum Auslösen und Erstellen von Projekten über die Pipeline.
Einschränkungen
Die Erstellung von benutzerdefinierten Aktionsschaltflächen ist in dieser Lösung ein manueller Prozess.
Einige AWS-Services sind nicht in allen verfügbar AWS-Regionen. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie AWS-Services unter Nach Regionen
. Informationen zu bestimmten Endpunkten finden Sie unter Dienstendpunkte und Kontingente. Wählen Sie dort den Link für den Dienst aus.
Architektur
Das folgende Diagramm zeigt den Workflow und die Architekturkomponenten für dieses Muster.

Das Diagramm zeigt den automatisierten Arbeitsablauf zur Sicherung der Codequalität:
Codevorbereitung und Upload:
Der Entwickler komprimiert die Codebasis in eine ZIP-Datei.
Der Entwickler lädt die ZIP-Datei manuell in einen dafür vorgesehenen Amazon Simple Storage Service (Amazon S3) -Bucket hoch.
Auslösung und AWS Step Functions Orchestrierung von Amazon S3 S3-Ereignissen:
Das Amazon S3 S3-Upload-Ereignis löst einen Step Functions Functions-Workflow aus.
Step Functions orchestriert einen SAST-Scan mit. SonarQube
Der Workflow überwacht den AWS CodeBuild Auftragsstatus, um die nächsten Aktionen festzulegen. Wenn der CodeBuild Vorgang erfolgreich ist (Quality Gate bestanden), wird der Workflow beendet. CodeBuild Schlägt dies fehl, wird eine AWS Lambda Funktion zur Diagnose aufgerufen. Weitere Einzelheiten finden Sie weiter unten in diesem Abschnitt unter AWS Step Functions Logik.
AWS CodeBuild Ausführung:
Der CodeBuild Job führt einen SonarQube Scan der hochgeladenen Codebasis aus.
Scan-Artefakte werden zur Prüfung und Analyse in einem separaten Amazon S3 S3-Bucket gespeichert.
Fehleranalyse (Lambda-Funktion):
CodeBuild Bei einem Fehler wird die
CheckBuildStatus
Lambda-Funktion ausgelöst.Bei CodeBuild Erfolg wird der Prozess beendet und es sind keine weiteren Maßnahmen erforderlich.
Die Lambda-Funktion analysiert die Fehlerursache (Quality-Gate-Ausfall oder andere Probleme)
Die
CheckBuildStatus
Funktion erstellt eine benutzerdefinierte Nutzlast mit detaillierten Fehlerinformationen.Die
CheckBuildStatus
Funktion veröffentlicht die benutzerdefinierte Nutzlast in einem Amazon Simple Notification Service (Amazon SNS) -Thema.
Benachrichtigungssystem:
Amazon SNS leitet die Nutzdaten in Chat-Anwendungen für die Slack-Integration an Amazon Q Developer weiter.
Slack-Integration:
Amazon Q Developer in Chat-Anwendungen veröffentlicht eine Benachrichtigung im dafür vorgesehenen Slack-Kanal.
Genehmigungsprozess:
Genehmigende Personen überprüfen die Fehlerdetails in der Slack-Benachrichtigung.
Genehmiger können die Genehmigung über die Schaltfläche Genehmigen in Slack einleiten.
Genehmigungshandler:
Eine Approval Lambda-Funktion verarbeitet die Genehmigungsaktion von Slack.
Die Genehmigungsfunktion veröffentlicht die benutzerdefinierte Nachricht an Amazon SES.
Generierte Nachricht:
Die Genehmigungsfunktion generiert eine benutzerdefinierte Nachricht für die Benachrichtigung des Entwicklers.
Benachrichtigung für Entwickler:
Amazon SES sendet eine E-Mail-Nachricht mit den nächsten Schritten oder erforderlichen Aktionen an den Entwickler.
Dieser Workflow kombiniert manuelles Hochladen von Code mit automatisierten Qualitätsprüfungen, bietet sofortiges Feedback über Slack und ermöglicht bei Bedarf menschliches Eingreifen, wodurch ein robuster und flexibler Codeüberprüfungsprozess gewährleistet wird.
AWS Step Functions Logik
Wie im vorherigen Architekturdiagramm gezeigt, geht der Workflow zur CheckBuildStatus
Lambda-Funktion über, wenn der Quality Gate-Passon SonarQube fehlschlägt. Die CheckBuildStatus
Funktion löst eine Benachrichtigung im Slack-Channel aus. Jede Benachrichtigung enthält Informationen mit Vorschlägen für die nächsten Schritte. Im Folgenden sind die Arten von Benachrichtigungen aufgeführt:
Die Anwendung ist beim Code-Sicherheitsscan fehlgeschlagen — Der Benutzer erhält diese Benachrichtigung, wenn der hochgeladene Code den SonarQube Sicherheitsscan nicht bestanden hat. Der Benutzer kann APPROVE wählen, um den Build zu akzeptieren. In der Benachrichtigung wird der Benutzer jedoch darauf hingewiesen, sich vor potenziell schlechter Codequalität und Sicherheitsrisiken zu hüten. Die Benachrichtigung enthält die folgenden Einzelheiten:
Nächste Schritte: Fehler: Quality Gate-Status: FEHLGESCHLAGEN — Details finden Sie unter der angegebenen URL.
Untersuchen Sie die Sicherheitslücken, wie sie im Dokument unter der angegebenen URL erwähnt werden.
CodeBuild Einzelheiten sind an der Stelle unter der angegebenen URL verfügbar.
Die Pipeline für Anwendungsscans ist aus einem anderen Grund ausgefallen — Der Benutzer erhält diese Benachrichtigung, wenn die Pipeline aus einem anderen Grund als dem fehlgeschlagenen Code-Sicherheitsscan ausgefallen ist. Die Benachrichtigung enthält die folgenden Details:
Die nächsten Schritte finden Sie unter dem angegebenen Link zur weiteren Fehlerbehebung.
Um Screenshots der Benachrichtigungen zu sehen, wie sie in einem Slack-Channel erscheinen, gehe zum Assets-Ordner
Das folgende Diagramm zeigt ein Beispiel für den Schrittstatus von Step Functions, nachdem der Quality-Gate-Pass fehlgeschlagen ist.

Tools
AWS-Services
Mit Amazon Q Developer in Chat-Anwendungen können Sie die Chat-Kanäle Amazon Chime, Microsoft Teams und Slack verwenden, um betriebliche Ereignisse in Ihren AWS Anwendungen zu überwachen und darauf zu reagieren. Hinweis zum Ende des Supports: Am 20. Februar 2026 AWS wird der Support für den Amazon Chime Chime-Service eingestellt. Nach dem 20. Februar 2026 können Sie nicht mehr auf die Amazon Chime-Konsole oder die Amazon Chime Chime-Anwendungsressourcen zugreifen. Weitere Informationen finden Sie im Blogbeitrag.
Dies hat keine Auswirkungen auf die Verfügbarkeit des Amazon Chime SDK-Dienstes . AWS CloudFormationhilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und AWS-Regionen zu verwalten.
AWS CodeBuildist ein vollständig verwalteter Build-Service, der Ihnen hilft, Quellcode zu kompilieren, Komponententests durchzuführen und Artefakte zu erstellen, die sofort einsatzbereit sind.
AWS Identity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
AWS Key Management Service (AWS KMS) hilft Ihnen dabei, kryptografische Schlüssel zu erstellen und zu kontrollieren, um Ihre Daten zu schützen.
AWS Lambda ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
Mit AWS Secrets Manager können Sie fest codierte Anmeldeinformationen im Code (einschließlich Passwörter) durch einen API-Aufruf an Secrets Manager ersetzen und das Geheimnis programmgesteuert abrufen.
Amazon Simple Email Service (Amazon SES) unterstützt Sie beim Senden und Empfangen von E-Mail-Nachrichten mithilfe Ihrer eigenen E-Mail-Adressen und Domains.
Amazon Simple Notification Service (Amazon SNS) unterstützt Sie bei der Koordination und Verwaltung des Nachrichtenaustauschs zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen.
Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
AWS Step Functionsist ein serverloser Orchestrierungsservice, mit dem Sie AWS Lambda Funktionen und andere Funktionen kombinieren können, um geschäftskritische Anwendungen AWS-Services zu erstellen.
Andere Tools
Slack
, ein Salesforce-Angebot, ist eine KI-gestützte Konversationsplattform, die Chat- und Videozusammenarbeit ermöglicht, Prozesse ohne Code automatisiert und den Informationsaustausch unterstützt. SonarQube
ist ein lokales Analysetool, das entwickelt wurde, um Codierungsprobleme in über 30 Sprachen, Frameworks und IaC-Plattformen zu erkennen.
Code-Repository
Der Code für dieses Muster ist im GitHub Chatops-Slack-Repository
Bewährte Methoden
CloudFormation Stack-Management — Wenn Sie bei der CloudFormation Stack-Ausführung auf Fehler stoßen, empfehlen wir Ihnen, den ausgefallenen Stack zu löschen. Erstellen Sie ihn anschließend mit den richtigen Parameterwerten neu. Dieser Ansatz unterstützt eine saubere Bereitstellung und hilft, potenzielle Konflikte oder teilweise Implementierungen zu vermeiden.
E-Mail-Konfiguration für gemeinsam genutzten Posteingang — Verwenden Sie bei der Konfiguration des
SharedInboxEmail
Parameters eine gemeinsame Verteilerliste, auf die alle relevanten Entwickler zugreifen können. Dieser Ansatz fördert die Transparenz und trägt dazu bei, dass wichtige Benachrichtigungen die zuständigen Teammitglieder erreichen.Workflow für Produktionsgenehmigungen — Beschränken Sie für Produktionsumgebungen den Zugriff auf den Slack-Channel, der für Build-Genehmigungen verwendet wird. Nur designierte Genehmiger sollten Mitglieder dieses Channels sein. Diese Vorgehensweise gewährleistet eine klare Verantwortungskette und erhöht die Sicherheit, indem begrenzt wird, wer kritische Änderungen genehmigen kann.
IAM-Berechtigungen — Folgen Sie dem Prinzip der geringsten Rechte und gewähren Sie nur die für die Ausführung einer Aufgabe erforderlichen Mindestberechtigungen. Weitere Informationen finden Sie in der IAM-Dokumentation unter Gewährung der geringsten Rechte und bewährte Methoden zur Sicherheit.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Klonen Sie das Repository | Verwenden Sie den folgenden Befehl, um das Chatops-Slack-Repository
| AWS DevOps, Build-Leiter, DevOps Ingenieur, Cloud-Administrator |
Erstellen Sie die ZIP-Dateien, die Lambda-Code enthalten. | Erstellen Sie die .zip-Dateien für den AWS Lambda Funktionscode für die
| AWS DevOps, Build-Leiter, DevOps Ingenieur, Cloud-Administrator |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Führen Sie die | Die
| AWS-Administrator, AWS DevOps, Build-Leiter, DevOps Ingenieur |
Laden Sie die ZIP-Dateien in den Amazon S3 S3-Bucket hoch. | Laden Sie die | AWS DevOps, Build-Leiter, DevOps Ingenieur, AWS-Systemadministrator |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Führen Sie die | Die
| AWS DevOps, AWS-Systemadministrator, DevOps Ingenieur, Build-Leiter |
Testen Sie das Benachrichtigungs-Setup. | Gehen Sie wie folgt vor, um das Benachrichtigungs-Setup zu testen:
Nachdem die Testnachricht erfolgreich zugestellt wurde, solltest du im Slack-Kanal eine Benachrichtigung sehen. Weitere Informationen findest du unter Testbenachrichtigungen von AWS-Services zu Slack im Administratorhandbuch für Amazon Q Developer in Chat-Anwendungen. | AWS DevOps, AWS-Systemadministrator, DevOps Ingenieur, Build-Leiter |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Konfigurieren Sie eine benutzerdefinierte Lambda-Aktion. | Gehen Sie wie folgt vor, um die benutzerdefinierte AWS Lambda Aktion einzurichten:
| AWS-Administrator, AWS DevOps, Build-Leiter, DevOps Ingenieur, Slack-Administrator |
Bestätigen Sie den Genehmigungsablauf. | Um zu überprüfen, ob der Genehmigungsablauf wie erwartet funktioniert, wähle in Slack die Schaltfläche Genehmigen. Slackbot sollte im Nachrichten-Thread eine Benachrichtigung mit der Bestätigungszeichenfolge Approval Email successfully sent successfully sendeten. | AWS-Administrator, AWS DevOps, DevOps Ingenieur, Slack-Administrator |
Fehlerbehebung
Problem | Lösung |
---|---|
Fehlkonfigurationen bei Slack | Informationen zur Behebung von Problemen im Zusammenhang mit Fehlkonfigurationen von Slack finden Sie unter Troubleshooting Amazon Q Developer im Administratorhandbuch für Amazon Q Developer in Chat-Anwendungen. |
Der Scan ist aus einem anderen Grund fehlgeschlagen | Dieser Fehler bedeutet, dass die Aufgabe zur Codeerstellung fehlgeschlagen ist. Um das Problem zu beheben, rufen Sie den Link in der Nachricht auf. Der Fehler bei der Codeerstellungsaufgabe kann folgende Ursachen haben:
|
Zugehörige Ressourcen
AWS Dokumentation
Sonstige Ressourcen
Füge Apps zu deinem Slack-Workspace hinzu (Slack-Dokumentation
) Generierung und Verwendung von Tokens (Dokumentation
) SonarQube Einführung in die Serverinstallation
(SonarQube Dokumentation)
Zusätzliche Informationen
Diese Lösung konzentriert sich auf benutzerdefinierte Aktionen von Amazon Q Developer in Chat-Anwendungen für das Release-Management. Sie können die Lösung jedoch wiederverwenden, indem Sie den Lambda-Code für Ihren speziellen Anwendungsfall ändern und darauf aufbauen.
Parameter von CloudFormation Stack-Dateien
Die folgende Tabelle zeigt die Parameter und ihre Beschreibungen für die CloudFormation Stack-Dateipre-requisite.yml
.
Key (Schlüssel) | Beschreibung |
---|---|
| Der Name des CloudFormation Stacks. |
| Der Name des Amazon S3 S3-Buckets, in den Sie den Lambda-Code hochladen. Der Name muss global eindeutig sein. |
| Das SonarQube Benutzertoken, wie unter Voraussetzungen beschrieben. |
Die folgende Tabelle zeigt die Parameter und ihre Beschreibungen für die CloudFormation Stack-Dateiapp-security.yml
.
Key (Schlüssel) | Beschreibung |
---|---|
| Der AWS KMS key Amazon-Ressourcenname (ARN), der in IAM-Rollen und Lambda-Funktionen verwendet wird, die in diesem Stack erstellt wurden. |
| Die AWS KMS key ID, die im Amazon SNS SNS-Thema verwendet wird, das in diesem Stack erstellt wurde. |
| Der Name der Client-Umgebung für die Bereitstellung der Application-Scan-Pipeline. Wählen Sie den Umgebungsnamen aus der Dropdownliste der zulässigen Werte aus. |
| Der Name des Amazon S3 S3-Buckets, der die |
| Der Name der registrierten E-Mail-Identität in Amazon SES, wie unter Voraussetzungen beschrieben. Diese Identität ist die Quell-E-Mail-Adresse. |
| Die Ziel-E-Mail-Adresse, an die die Scan-Benachrichtigungen gesendet werden. |
| Die Kanal-ID des Slack-Channels, an den die Benachrichtigungen gesendet werden sollen. Um die Kanal-ID zu finden, klicke in der Slack-App in den Kanaldetails mit der rechten Maustaste auf den Kanalnamen. Die Kanal-ID befindet sich unten. |
| Die Workspace-ID von Slack, wie unter Voraussetzungen beschrieben. Um die Workspace-ID von Slack zu finden, melden Sie sich bei der an AWS Management Console, öffnen Sie die Amazon Q Developer in Chat-Anwendungskonsole und wählen Sie Konfigurierte Clients, Slack, WorkspaceID aus. |
| Der Name des Stacks. CloudFormation |
| Das Verzeichnis, das die |
| Der Name der |
| Der Name der ZIP-Datei, die die |