Stellen Sie mithilfe von Terraform Agentensysteme auf Amazon Bedrock mit dem CrewAI-Framework bereit - AWS Prescriptive Guidance

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 mithilfe von Terraform Agentensysteme auf Amazon Bedrock mit dem CrewAI-Framework bereit

Vanitha Dontireddy, Amazon Web Services

Übersicht

Dieses Muster zeigt, wie skalierbare KI-Systeme mit mehreren Agenten mithilfe des in Amazon Bedrock und Terraform integrierten CrewAI-Frameworks implementiert werden können. Die Lösung ermöglicht es Unternehmen, anspruchsvolle KI-Agenten-Workflows über Infrastructure as Code (IaC) zu erstellen, bereitzustellen und zu verwalten. In diesem Muster werden die Multi-Agent-Orchestrierungsfunktionen von CrewAI mit den Fundamentmodellen von Amazon Bedrock und der Terraform-Infrastrukturautomatisierung kombiniert. Dadurch können Teams produktionsreife KI-Systeme entwickeln, die komplexe Aufgaben mit minimaler menschlicher Aufsicht bewältigen. Das Muster implementiert Sicherheit, Skalierbarkeit und bewährte betriebliche Verfahren auf Unternehmensebene.

Voraussetzungen und Einschränkungen

Voraussetzungen

Einschränkungen

  • Agenteninteraktionen werden durch Modellkontextfenster begrenzt.

  • Überlegungen zur Terraform-Statusverwaltung für umfangreiche Bereitstellungen gelten auch für dieses Muster.

  • Einige AWS-Services sind nicht in allen verfügbar. AWS-Regionen Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie unter AWS Dienste nach Regionen. Informationen zu bestimmten Endpunkten finden Sie unter Dienstendpunkte und Kontingente. Wählen Sie dort den Link für den Dienst aus.

Architektur

In diesem Muster treten die folgenden Interaktionen auf:

  • Amazon Bedrock bietet mit seiner Suite von Basismodellen (FMs) die Grundlage für Agentenintelligenz. Es ermöglicht den KI-Agenten Funktionen zur Verarbeitung natürlicher Sprache (NLP), Argumentation und Entscheidungsfindung bei gleichzeitiger Beibehaltung einer hohen Verfügbarkeit und Skalierbarkeit.

  • Das CrewAI-Framework dient als zentrale Orchestrierungsebene für die Erstellung und Verwaltung von KI-Agenten. Es verwaltet Kommunikationsprotokolle für Agenten, die Delegierung von Aufgaben und das Workflow-Management und ist gleichzeitig in Amazon Bedrock integriert.

  • Terraform verwaltet den gesamten Infrastrukturstapel mithilfe von Code, einschließlich Rechenressourcen, Netzwerken, Sicherheitsgruppen und AWS Identity and Access Management (IAM-) Rollen. Es gewährleistet konsistente, versionskontrollierte Bereitstellungen in allen Umgebungen. Die Terraform-Bereitstellung erstellt Folgendes:

    • AWS Lambda Funktion zum Ausführen der CrewAI-Anwendung

    • Amazon Simple Storage Service (Amazon S3) -Buckets für Code und Berichte

    • IAM-Rollen mit entsprechenden Berechtigungen

    • CloudWatch Amazon-Protokollierung

    • Geplante Ausführung durch Amazon EventBridge

Das folgende Diagramm veranschaulicht die Architektur für die Bereitstellung von CrewAI Multi-Agent-Systemen mithilfe von Amazon Bedrock und Terraform.

Workflow zur Bereitstellung von CrewAI Multi-Agenten-Systemen mit Terraform und Amazon Bedrock.

Das Diagramm zeigt den folgenden Workflow:

  1. Der Benutzer klont das Repository.

  2. Der Benutzer führt den Befehl austerraform apply, um die AWS Ressourcen bereitzustellen.

  3. Die Amazon Bedrock-Modellkonfiguration umfasst die Angabe des Foundation Model (FM), das für die Konfiguration der CrewAI-Agenten verwendet werden soll.

  4. Es wird eine EventBridge Regel eingerichtet, um die Lambda-Funktion gemäß dem definierten Zeitplan auszulösen.

  5. Wenn sie ausgelöst wird (entweder nach einem Zeitplan oder manuell), initialisiert die Lambda-Funktion und übernimmt die IAM-Rolle mit Zugriffsberechtigungen und Amazon Bedrock. AWS-Services

  6. Das CrewAI-Framework lädt Agentenkonfigurationen aus YAML-Dateien und erstellt spezialisierte KI-Agenten (das Auditteam für die Infrastruktursicherheit).AWS Die Lambda-Funktion führt diese Agenten sequentiell aus, um AWS Ressourcen zu scannen, Sicherheitslücken zu analysieren und umfassende Auditberichte zu erstellen.

  7. CloudWatch Logs erfasst detaillierte Ausführungsinformationen aus der Lambda-Funktion mit einer Aufbewahrungsfrist von 365 Tagen und AWS Key Management Service (AWS KMS) Verschlüsselung für Compliance-Anforderungen. Die Protokolle bieten Einblick in die Agentenaktivitäten, die Fehlerverfolgung und Leistungskennzahlen und ermöglichen so eine effektive Überwachung und Fehlerbehebung des Sicherheitsauditprozesses.

  8. Der Sicherheitsauditbericht wird automatisch generiert und im dafür vorgesehenen Amazon S3 S3-Bucket gespeichert. Die automatisierte Einrichtung trägt dazu bei, eine konsistente Sicherheitsüberwachung bei minimalem Betriebsaufwand aufrechtzuerhalten.

Nach der ersten Bereitstellung bietet der Workflow fortlaufende Sicherheitsüberprüfungen und Berichte für Ihre AWS Infrastruktur ohne manuelles Eingreifen.

Überblick über KI-Agenten

Dieses Muster erzeugt mehrere KI-Agenten mit jeweils eigenen Rollen, Zielen und Tools:

  • Der Security Analyst Agent sammelt und analysiert AWS Ressourceninformationen.

  • Der Penetrationstester-Agent identifiziert Schwachstellen in AWS Ressourcen.

  • Der Compliance-Experte überprüft Konfigurationen anhand von Konformitätsstandards.

  • Der Report Writer Agent fasst die Ergebnisse zu umfassenden Berichten zusammen.

Diese Agenten arbeiten bei einer Reihe von Aufgaben zusammen und nutzen dabei ihre kollektiven Fähigkeiten, um Sicherheitsaudits durchzuführen und umfassende Berichte zu erstellen. (In der config/agents.yaml Datei werden die Fähigkeiten und Konfigurationen der einzelnen Agenten dieser Crew beschrieben.)

Die Verarbeitung der Sicherheitsanalyse umfasst die folgenden Aktionen:

  1. Der Security Analyst Agent untersucht die gesammelten Daten über AWS Ressourcen wie die folgenden:

    • Amazon Elastic Compute Cloud (Amazon EC2) -Instanzen und Sicherheitsgruppen

    • Amazon S3 S3-Buckets und Konfigurationen

    • IAM-Rollen, -Richtlinien und -Berechtigungen

    • Virtual Private Cloud (VPC) -Konfigurationen und Netzwerkeinstellungen

    • Amazon RDS-Datenbanken und Sicherheitseinstellungen

    • Lambda-Funktionen und Konfigurationen

    • Andere AWS-Services im Prüfungsumfang

  2. Der Penetrationstester-Agent identifiziert potenzielle Sicherheitslücken.

  3. Die Agenten arbeiten im Rahmen des CrewAI-Frameworks zusammen, um ihre Ergebnisse auszutauschen.

Die Berichtsgenerierung umfasst die folgenden Aktionen:

  1. Der Report Writer-Agent stellt die Ergebnisse aller anderen Agenten zusammen.

  2. Sicherheitsprobleme sind nach Service, Schweregrad und Auswirkungen auf die Einhaltung der Vorschriften geordnet.

  3. Für jedes identifizierte Problem werden Empfehlungen zur Behebung erstellt.

  4. Ein umfassender Sicherheitsauditbericht wird im Markdown-Format erstellt und in den dafür vorgesehenen Amazon S3 S3-Bucket hochgeladen. Historische Berichte werden zur Nachverfolgung der Einhaltung von Vorschriften und zur Verbesserung der Sicherheitslage aufbewahrt.

Zu den Protokollierungs- und Überwachungsaktivitäten gehören:

  • CloudWatch In den Protokollen werden Ausführungsdetails und etwaige Fehler erfasst.

  • Lambda-Ausführungsmetriken werden zur Überwachung aufgezeichnet.

Anmerkung

Der Code für aws-security-auditor-crew stammt aus dem Repository GitHub 3P-Agentic_Frameworks, das in der Samples-Sammlung verfügbar ist. AWS

Verfügbarkeit und Umfang

Sie können die verfügbaren Agenten auf mehr als die vier Kernagenten erweitern. Um mit zusätzlichen spezialisierten Agenten zu skalieren, sollten Sie die folgenden neuen Agententypen in Betracht ziehen:

  • Ein auf Threat Intelligence spezialisierter Agent kann Folgendes tun:

    • Überwacht externe Bedrohungsfeeds und korreliert mit internen Ergebnissen

    • Bietet Hintergrundinformationen zu neu auftretenden Bedrohungen, die für Ihre Infrastruktur relevant sind

    • Priorisiert Sicherheitslücken, die auf aktiver Ausnutzung in freier Wildbahn basieren

  • Mitarbeiter des Compliance-Frameworks können sich auf bestimmte regulatorische Bereiche wie die folgenden konzentrieren:

    • Beauftragter für die Einhaltung des PCI DSS (Payment Card Industry Data Security Standard)

    • Compliance-Beauftragter des Health Insurance Portability and Accountability Act von 1996 (HIPAA)

    • Beauftragter für die Einhaltung von System and Organization Controls 2 (SOC 2)

    • Beauftragter für die Einhaltung der Allgemeinen Datenschutzverordnung (DSGVO)

Durch die sorgfältige Erweiterung der verfügbaren Agenten kann diese Lösung tiefere, spezialisiertere Einblicke in die Sicherheit bieten und gleichzeitig die Skalierbarkeit in großen AWS Umgebungen aufrechterhalten. Weitere Informationen zu einem Implementierungsansatz, zur Entwicklung von Tools und Überlegungen zur Skalierung finden Sie unter Zusätzliche Informationen.

Tools

AWS-Services

  • Amazon Bedrock ist ein vollständig verwalteter KI-Service, der leistungsstarke Fundamentmodelle (FMs) über eine einheitliche API zur Nutzung verfügbar macht.

  • Amazon CloudWatch Logs hilft Ihnen dabei, die Protokolle all Ihrer Systeme und Anwendungen zu zentralisieren, AWS-Services sodass Sie sie überwachen und sicher archivieren können.

  • Amazon EventBridge ist ein serverloser Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Echtzeitdaten aus einer Vielzahl von Quellen verbinden können. Zum Beispiel AWS Lambda Funktionen, HTTP-Aufruf-Endpunkte, die API-Ziele verwenden, oder Event-Busse in anderen. AWS-Konten In diesem Muster wird es für die Planung und Orchestrierung von Agenten-Workflows verwendet.

  • 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 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.

  • AWS SDK für Python (Boto3)ist ein Softwareentwicklungskit, mit dem Sie Ihre Python-Anwendung, -Bibliothek oder Ihr Skript integrieren können AWS-Services.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt. In diesem Muster bietet es Objektspeicher für Agentenartefakte und Statusverwaltung.

Andere Tools

  • CrewAI ist ein Open-Source-Framework auf Python-Basis für den Aufbau von KI-Systemen mit mehreren Agenten.

  • Terraform ist ein IaC-Tool (Infrastructure as Code), mit dem Sie Cloud- und lokale Ressourcen HashiCorp erstellen und verwalten können.

Code-Repository

Der Code für dieses Muster ist im GitHub deploy-crewai-agents-terraformRepository verfügbar.

Bewährte Methoden

  • Implementieren Sie die richtige Statusverwaltung für Terraform, indem Sie ein Amazon S3 S3-Backend mit Amazon DynamoDB-Sperre verwenden. Weitere Informationen finden Sie unter Bewährte Methoden für das Backend unter Bewährte Methoden für die Verwendung des Terraform-Anbieters. AWS

  • Verwenden Sie Workspaces, um Entwicklungs-, Staging- und Produktionsumgebungen voneinander zu trennen.

  • 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.

  • Aktivieren Sie die detaillierte Protokollierung und Überwachung mithilfe von CloudWatch Logs.

  • Implementieren Sie Wiederholungsmechanismen und Fehlerbehandlung für Agentenoperationen.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Klonen Sie das Repository

Führen Sie den folgenden Befehl aus, um das Repository dieses Musters auf Ihrem lokalen Computer zu klonen:

git clone "git@github.com:aws-samples/deploy-crewai-agents-terraform.git" cd deploy-crewai-agents-terraform
DevOps Ingenieur

Bearbeiten Sie die Umgebungsvariablen.

Gehen Sie wie folgt vor, um die Umgebungsvariablen zu bearbeiten:

  1. Erstellen Sie eine terraform.tfvars Datei aus dem Beispiel terraform.tfvars.example im Terraform-Verzeichnis.

  2. Bearbeiten Sie die Umgebungsvariablen, um Ihre eigenen Informationen zu verwenden.

DevOps Ingenieur

Erstellen Sie die Infrastruktur.

Führen Sie die folgenden Befehle aus, um die Infrastruktur zu erstellen:

cd terraform
terraform init
terraform plan

Überprüfen Sie den Ausführungsplan sorgfältig. Wenn die geplanten Änderungen akzeptabel sind, führen Sie den folgenden Befehl aus:

terraform apply --auto-approve
DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Greifen Sie auf die Agenten zu.

Die Agenten der AWS Infrastructure Security Audit and Reporting Crew werden als Lambda-Funktion eingesetzt. Gehen Sie wie folgt vor, um auf die Agenten zuzugreifen:

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Lambda Konsole unter https://console.aws.amazon.com/lambda/.

  2. Suchen Sie auf der Seite Funktionen die Funktion mit dem Namen{project_name}\ function (wie in Ihren Terraform-Variablen definiert) und wählen Sie sie aus.

  3. Auf der Seite der Funktion können Sie die folgenden Aktionen ausführen:

    • Konfigurationsdetails anzeigen.

    • Überwachen Sie die Ausführungsmetriken.

    • CloudWatch Protokolle anzeigen.

    • Testen Sie die Funktion manuell.

DevOps Ingenieur

(Optional) Konfigurieren Sie die manuelle Ausführung der Agenten.

Die Agenten sind so konfiguriert, dass sie automatisch nach einem täglichen Zeitplan (Mitternacht UTC) ausgeführt werden. Sie können sie jedoch manuell auslösen, indem Sie die folgenden Schritte ausführen:

  1. Wählen Sie in der Lambda-Konsole die benannte {project_name} Funktion aus.

  2. Wählen Sie auf der Seite der Funktion die Registerkarte Test aus.

  3. Erstellen Sie ein neues Testereignis mit einem leeren JSON-Objekt{}.

  4. Um das Ereignis auszuführen, wählen Sie Test.

Weitere Informationen finden Sie in der Lambda-Dokumentation unter Testen von Lambda-Funktionen in der Konsole.

DevOps Ingenieur

Greifen Sie zum Debuggen auf Agentenprotokolle zu.

Die CrewAI-Agenten werden in einer Lambda-Umgebung ausgeführt und verfügen über die erforderlichen Berechtigungen, um Sicherheitsüberprüfungen durchzuführen und Berichte in Amazon S3 zu speichern. Das Ergebnis ist ein Markdown-Bericht, der eine umfassende Sicherheitsanalyse Ihrer Infrastruktur bietet. AWS

Gehen Sie wie folgt vor, um das detaillierte Debuggen des Agentenverhaltens zu unterstützen:

  1. Navigieren Sie im AWS Management Console zu CloudWatch Logs.

  2. Suchen Sie die Protokollgruppe für Ihre Lambda-Funktion.

  3. Suchen Sie nach Protokolleinträgen mit Agentennamen (z. B. nach Infrastructure Mapping Specialist und Exploratory Security Analyst).

  4. Sehen Sie sich die Protokolle an, um Einblicke in die Aktionen der einzelnen Agenten zu erhalten.

DevOps Ingenieur

Ergebnisse der Agentenausführung anzeigen.

Gehen Sie wie folgt vor, um die Ergebnisse einer Agentenausführung anzuzeigen:

  1. Navigieren Sie im AWS Management Console zu Amazon S3.

  2. Öffnen Sie den Amazon S3 S3-Bucket mit dem Namen {project_name}-reports-{random_suffix} (wie in Ihren Terraform-Variablen definiert).

Berichte werden mit auf Zeitstempeln basierenden Dateinamen wie folgt gespeichert: security-audit-report-YYYY-MM-DD-HH-MM-SS.md)

DevOps Ingenieur

Überwachen Sie die Ausführung des Agenten.

Gehen Sie wie folgt vor, um die Ausführung der Agenten anhand von CloudWatch Protokollen zu überwachen:

  1. Navigieren Sie im AWS Management Console zu CloudWatch.

  2. Gehen Sie zu Protokollgruppen.

  3. Wählen Sie die angegebene Protokollgruppe aus/aws/lambda/{project_name}-function.

  4. Wählen Sie unter Protokolldatenströme den neuesten Protokolldatenstrom aus, um detaillierte Ausführungsinformationen zu erhalten.

DevOps Ingenieur

Passen Sie das Verhalten der Agenten an.

Gehen Sie wie folgt vor, um die Agenten oder ihre Aufgaben zu ändern:

  1. Aktualisieren Sie die Konfigurationsdateien in Ihrem lokalen Repository:

    • Die folgende Datei definiert die Rollen, Fähigkeiten und Einstellungen der einzelnen Agenten: src/aws_infrastructure_security_audit_and_reporting/config/agents.yaml

    • Die folgende Datei definiert die Aufgaben und Workflows für die Agenten:

    src/aws_infrastructure_security_audit_and_reporting/config/tasks.yaml

  2. Verwenden Sie die folgenden Befehle, um die Lambda-Funktion neu zu verpacken und zu aktualisieren:

cd terraform
terraform apply
DevOps Ingenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Löschen Sie die erstellten Ressourcen.

Führen Sie den folgenden Befehl aus, um die gesamte nach diesem Muster erstellte Infrastruktur zu löschen:

terraform plan -destroy
Warnung

Mit dem folgenden Befehl werden alle Ressourcen, die nach diesem Muster erstellt wurden, dauerhaft gelöscht. Der Befehl fordert Sie zur Bestätigung auf, bevor Ressourcen entfernt werden.

Prüfen Sie den Vernichtungsplan sorgfältig. Wenn die geplanten Löschungen akzeptabel sind, führen Sie den folgenden Befehl aus:

terraform destroy
DevOps Ingenieur

Fehlerbehebung

ProblemLösung

Verhalten der Agenten

Informationen zu diesem Problem finden Sie unter Testen und Beheben von Problemen mit dem Verhalten von Agenten in der Amazon Bedrock-Dokumentation.

Probleme mit dem Lambda-Netzwerk

Informationen zu diesen Problemen finden Sie unter Problembehandlung bei Netzwerkproblemen in Lambda in der Lambda-Dokumentation.

IAM-Berechtigungen

Informationen zu diesen Problemen finden Sie unter Problembehandlung bei IAM in der IAM-Dokumentation.

Zugehörige Ressourcen

AWS Blogs

AWS Dokumentation

Sonstige Ressourcen

Zusätzliche Informationen

Dieser Abschnitt enthält Informationen zu einem Implementierungsansatz, zur Toolentwicklung und zu Überlegungen zur Skalierung im Zusammenhang mit der vorherigen Diskussion in Automatisierung und Skalierung.

Implementierungsansatz

Ziehen Sie beim Hinzufügen von Agenten den folgenden Ansatz in Betracht:

  1. Agentenkonfiguration:

    • Fügen Sie der Datei neue Agentendefinitionen config/agents.yaml hinzu.

    • Definieren Sie spezielle Hintergrundinformationen, Ziele und Tools für jeden Agenten.

    • Konfigurieren Sie Speicher- und Analysefunktionen je nach Spezialisierung der Agenten.

  2. Orchestrierung von Aufgaben:

    • Aktualisieren Sie die config/tasks.yaml Datei, sodass sie neue agentenspezifische Aufgaben enthält.

    • Erstellen Sie Abhängigkeiten zwischen Aufgaben, um einen ordnungsgemäßen Informationsfluss sicherzustellen.

    • Implementieren Sie gegebenenfalls die parallel Ausführung von Aufgaben.

Technische Umsetzung

Im Folgenden finden Sie eine Ergänzung zur agents.yaml Datei für einen vorgeschlagenen Threat Intelligence Specialist-Agenten:

Example new agent configuration in agents.yaml threat_intelligence_agent: name: "Threat Intelligence Specialist" role: "Cybersecurity Threat Intelligence Analyst" goal: "Correlate AWS security findings with external threat intelligence" backstory: "Expert in threat intelligence with experience in identifying emerging threats and attack patterns relevant to cloud infrastructure." verbose: true allow_delegation: true tools: - "ThreatIntelligenceTool" - "AWSResourceAnalyzer"

Entwicklung von Tools

Mit dem CrewAI-Framework können Sie die folgenden Maßnahmen ergreifen, um die Effektivität Ihres Sicherheitsprüfungsteams zu verbessern:

  • Erstellen Sie benutzerdefinierte Tools für neue Agenten.

  • Integrieren Sie externe Systeme APIs für Bedrohungsinformationen.

  • Entwickeln Sie spezialisierte Analysatoren für verschiedene AWS-Services.

Überlegungen zur Skalierung

Bei der Erweiterung Ihres Systems zur Prüfung und Berichterstattung zur AWS Infrastruktursicherheit auf größere Umgebungen oder umfassendere Audits sollten Sie die folgenden Skalierungsfaktoren berücksichtigen:

  • Rechenressourcen

    • Erhöhen Sie die Lambda-Speicherzuweisung, um zusätzliche Agenten zu verarbeiten.

    • Erwägen Sie, die Workloads der Agenten auf mehrere Lambda-Funktionen aufzuteilen.

  • Kostenmanagement

    • Überwachen Sie die Nutzung der Amazon Bedrock API, wenn die Anzahl der Agenten steigt.

    • Implementieren Sie eine selektive Agentenaktivierung auf der Grundlage des Prüfungsumfangs.

  • Effizienz der Zusammenarbeit

    • Optimieren Sie den Informationsaustausch zwischen Agenten.

    • Implementieren Sie hierarchische Agentenstrukturen für komplexe Umgebungen.

  • Erweiterung der Wissensbasis

    • Stellen Sie Agenten spezialisierte Wissensdatenbanken für ihre Domänen zur Verfügung.

    • Aktualisieren Sie das Wissen der Agenten regelmäßig mit neuen bewährten Sicherheitsmethoden.