翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Terraform を使用して CrewAI フレームワークで Amazon Bedrock にエージェンティックシステムを展開する
Amazon Web Services、Vanitha Dontireddy
概要
このパターンは、Amazon Bedrock
前提条件と制限
前提条件
Amazon Bedrock 基盤モデルにアクセスするための適切なアクセス許可 AWS アカウント を持つアクティブな
Terraform バージョン 1.5 以降がインストール済み
Python バージョン 3.9 以降がインストールされている
CrewAI フレームワークがインストール済み
制限事項
エージェントとのやり取りは、モデルコンテキストウィンドウによって制限されます。
大規模なデプロイでは、Terraform ステート管理に関する考慮事項がこのパターンに適用されます。
一部の AWS のサービス は では使用できません AWS リージョン。利用可能なリージョンについては、「AWS サービス (リージョン別)
」を参照してください。特定のエンドポイントについては、「サービスエンドポイントとクォータ」を参照して、サービスのリンクを選択してください。
アーキテクチャ
このパターンでは、次の相互作用が発生します。
Amazon Bedrock は、一連の基盤モデル (FM) を通じてエージェントインテリジェンスの基盤を提供します。これにより、高可用性とスケーラビリティを維持しながら、AI エージェントの自然言語処理 (NLP)、論理的思考、意思決定能力を実現します。
CrewAI フレームワークは、AI エージェントを作成および管理するためのコアオーケストレーションレイヤーとして機能します。Amazon Bedrock と統合しながら、エージェントの通信プロトコル、タスクの委譲、ワークフロー管理を処理します。
Terraform は、コンピューティングリソース、ネットワーク、セキュリティグループ、 AWS Identity and Access Management (IAM) ロールなどのコードを通じてインフラストラクチャスタック全体を管理します。これにより、環境間で一貫性のある、バージョン管理されたデプロイが保証されます。Terraform デプロイでは、次の機能が作成されます。
AWS Lambda CrewAI アプリケーションを実行する 関数
コードとレポート用の Amazon Simple Storage Service (Amazon S3) バケット
適切なアクセス許可を持つ IAM ロール
Amazon CloudWatch ログ
Amazon EventBridge によってスケジュールされた実行
次の図は、Amazon Bedrock と Terraform を使用して CrewAI マルチエージェントシステムを展開するためのアーキテクチャを示しています。

この図表は、次のワークフローを示しています:
ユーザーはリポジトリを複製します。
ユーザーは コマンドを実行して AWS リソース
terraform applyをデプロイします。Amazon Bedrock モデル設定には、CrewAI エージェントの設定に使用する基盤モデル (FM) の指定が含まれます。
EventBridge ルールが確立され、定義されたスケジュールに従って Lambda 関数の実行が開始されます。
(スケジュールまたは手動で) トリガーされると、Lambda 関数は と Amazon Bedrock へのアクセス許可を持つ IAM ロールを初期化 AWS のサービス して引き受けます。
CrewAI フレームワークは、YAML ファイルからエージェント設定をロードし、特殊な AI エージェント (AWS インフラストラクチャセキュリティ監査クルー) を作成します。Lambda 関数は、これらのエージェントを順次実行して、 AWS リソースをスキャンし、セキュリティの脆弱性を分析し、包括的な監査レポートを生成します。
CloudWatch Logs は、365 日間の保持期間とコンプライアンス要件のための AWS Key Management Service (AWS KMS) 暗号化を使用して、Lambda 関数から詳細な実行情報をキャプチャします。ログは、エージェントのアクティビティ、エラー追跡、パフォーマンスメトリックを可視化し、セキュリティ監査プロセスの効果的なモニタリングとトラブルシューティングを可能にします。
セキュリティ監査レポートが自動的に生成され、指定された Amazon S3 バケットに保存されます。自動セットアップは、運用上のオーバーヘッドを最小限に抑えながら、セキュリティモニタリングの一貫性を維持するのに役立ちます。
最初のデプロイ後、ワークフローは、手動で介入することなく AWS 、インフラストラクチャの継続的なセキュリティ監査とレポートを提供します。
AI エージェントの概要
このパターンでは、それぞれに一意のロール、目標、ツールを持つ、複数の AI エージェントを作成します。
セキュリティアナリストエージェントは、 AWS リソース情報を収集して分析します。
ペネトレーションテスターエージェントは、 AWS リソースの脆弱性を特定します。
コンプライアンスエキスパートエージェントは、コンプライアンス標準に照らして設定をチェックします。
レポートライターエージェントは、検出結果を包括的なレポートに編集します。
これらのエージェントは、一連のタスクで共同作業を行い、集合的なスキルを活用してセキュリティ監査を実行し、包括的なレポートを生成します。(この config/agents.yaml ファイルは、このクルーでの各エージェントの機能と設定の概要を示しています。)
セキュリティ分析処理は、次のアクションで構成されます。
セキュリティアナリストエージェントは、次のような AWS リソースについて収集されたデータを調べます。
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスとセキュリティグループ
Amazon S3 バケットと設定
IAM ロール、ポリシー、およびアクセス権限
仮想プライベートクラウド (VPC) の設定とネットワーク設定
Amazon RDS データベースとセキュリティ設定
Lambda 関数と設定
監査範囲内 AWS のサービス のその他
侵入テスターエージェントは潜在的な脆弱性を特定します。
エージェントは CrewAI フレームワークを通じて共同作業を行い、検出結果を共有します。
レポート生成は、次のアクションで構成されます。
レポートライターエージェントは、他のすべてのエージェントの検出結果を編集します。
セキュリティの問題は、サービス、重要度、コンプライアンスへの影響の分類で整理されています。
特定された問題ごとに修復のための推奨事項が生成されます。
包括的なセキュリティ監査レポートはマークダウン記法で作成され、指定された Amazon S3 バケットにアップロードされます。履歴レポートは、コンプライアンス追跡とセキュリティ体制の改善のために保持されます。
ログ記録とモニタリングアクティビティには以下が含まれます。
CloudWatch ログは、実行の詳細とエラーをキャプチャします。
Lambda 実行メトリックはモニタリングのために記録されます。
注記
のコードaws-security-auditor-crewは、 AWS サンプルコレクションで利用可能な GitHub 3P-Agentic_frameworks
可用性とスケール
使用可能なエージェントは、4 つ以上のコアエージェントに拡張できます。追加の専門エージェントに合わせてスケールするには、次の新しいエージェントタイプを検討します。
脅威インテリジェンススペシャリストエージェントは、以下を実行できます。
外部の脅威フィードをモニタリングし、内部検出結果と関連付けます
インフラストラクチャに関連する新たな脅威に関する背景を提供します。
実環境での悪用に基づいて脆弱性の優先順位付けをする
コンプライアンスフレームワークエージェントは、次のような特定の規制分野に集中できます。
Payment Card Industry Data Security Standard (PCI DSS) コンプライアンスエージェント
1996 年の医療保険の携行性と責任に関する法律 (HIPAA) コンプライアンスエージェント
System and Organization Controls 2 (SOC 2) コンプライアンスエージェント
EU 一般データ保護規則 (GDPR) コンプライアンスエージェント
利用可能なエージェントを慎重に拡張することで、このソリューションは大規模な AWS 環境全体でスケーラビリティを維持しながら、より深く、より専門的なセキュリティインサイトを提供できます。実装方法、ツール開発、スケールに関する考慮事項の詳細については、「追加情報」を参照してください。
ツール
AWS のサービス
Amazon Bedrock は、高パフォーマンスな基盤モデル (FM) を、統合 API を通じて利用できるようにする完全管理型 AI サービスです。
Amazon CloudWatch Logs を使用すると、すべてのシステム、アプリケーション、および からのログを一元化 AWS のサービス できるため、ログをモニタリングして安全にアーカイブできます。
Amazon EventBridge は、アプリケーションをさまざまなソースのリアルタイムデータに接続できるようにするサーバーレスイベントバスサービスです。例えば、 AWS Lambda 関数、API 送信先を使用する HTTP 呼び出しエンドポイント、その他のイベントバスなどです AWS アカウント。このパターンでは、エージェントワークフローのスケジューリングとオーケストレーションに使用されます。
AWS Identity and Access Management (IAM) は、誰が認証され、誰に使用を許可するかを制御することで、 AWS リソースへのアクセスを安全に管理できます。
AWS Lambda は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
AWS SDK for Python (Boto3)
は、Python アプリケーション、ライブラリ、またはスクリプトを と統合するのに役立つソフトウェア開発キットです AWS のサービス。 Amazon Simple Storage Service (Amazon S3) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。このパターンでは、エージェントアーティファクトとステート管理用のオブジェクトストレージを提供します。
その他のツール
コードリポジトリ
このパターンのコードは、GitHub 「deploy-crewai-agents-terraform
ベストプラクティス
Amazon S3 バックエンドを Amazon DynamoDB ロックと共に使用して、Terraform の適切な状態管理を実装します。詳細については、「Terraform AWS プロバイダーを使用するためのベストプラクティス」の「バックエンドのベストプラクティス」を参照してください。
ワークスペースを使用して、開発環境、ステージング環境、本番環境を分離します。
最小特権の原則に従い、タスクの実行に必要最小限のアクセス許可を付与します。詳細については、IAM ドキュメントの「最小限の特権を認める。」と「IAM でのセキュリティのベストプラクティス」を参照してください。
CloudWatch ログを使用して詳細なログ記録とモニタリングを有効にします。
エージェントオペレーションの再試行メカニズムとエラー処理を実装します。
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
リポジトリのクローン作成 | ローカルマシンでこのパターンのリポジトリの複製を作成するには、次のコマンドを実行します。
| DevOps エンジニア |
環境変数を編集します。 | 環境変数を編集するには、以下の手順を実行します。
| DevOps エンジニア |
インフラストラクチャを作成する。 | インフラストラクチャを作成するには、次のコマンドを実行します。
実行計画を注意深く確認します。計画された変更が許容できる場合は、次のコマンドを実行します。
| DevOps エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
エージェントにアクセスする。 | AWS インフラストラクチャセキュリティ監査およびレポートクルーのエージェントは、Lambda 関数としてデプロイされます。エージェントにアクセスするには、次の手順を使用します。
| DevOps エンジニア |
(オプション) エージェントの手動実行を設定する。 | エージェントは、毎日のスケジュール (UTC 午前 0 時) で自動的に実行されるように設定されています。ただし、次の手順を使用して手動で実行を開始できます。
詳細については、「Lambda ドキュメント」の「コンソールでの Lambda 関数のテスト」を参照してください。 | DevOps エンジニア |
デバッグ用のエージェントログにアクセスする。 | CrewAI エージェントは、セキュリティ監査を実行し、Amazon S3 にレポートを保存するために必要なアクセス許可を持つ Lambda 環境で実行されています。出力は、 AWS インフラストラクチャの包括的なセキュリティ分析を提供するマークダウンレポートです。 エージェントの動作の詳細なデバッグを支援するには、以下の手順を実行します。
| DevOps エンジニア |
エージェント実行の結果を表示する。 | エージェント実行の結果を表示するには、次の手順を実行します。
レポートは、次のようなタイムスタンプベースのファイル名で保存されます。 | DevOps エンジニア |
エージェントの実行をモニタリングする。 | CloudWatch Logs を使用してエージェントの実行をモニタリングするには、次の手順を実行します。
| DevOps エンジニア |
エージェントの動作をカスタマイズする。 | エージェントもしくはそのタスクを変更するには、次の手順を実行します。
| DevOps エンジニア |
| タスク | 説明 | 必要なスキル |
|---|---|---|
作成したリソースを削除します。 | このパターンによって作成されたすべてのインフラストラクチャを削除するには、次のコマンドを実行します。
警告次のコマンドは、このパターンによって作成されたすべてのリソースを完全に削除します。リソースを削除する前にコマンドから確認を求められます。 破棄計画は注意して確認してください。計画された削除が許容される場合は、次のコマンドを実行します。
| DevOps エンジニア |
トラブルシューティング
| 問題 | ソリューション |
|---|---|
エージェントの動作 | この問題の詳細については、Amazon Bedrock ドキュメントの「Test and troubleshoot agent behavior」を参照してください。 |
Lambda ネットワークの問題 | これらの問題の詳細については、「Lambda ドキュメント」の「Lambda でのネットワーク問題のトラブルシューティング」を参照してください。 |
IAM アクセス許可 | これらの問題の詳細については、IAM ドキュメントの「IAM のトラブルシューティング」を参照してください。 |
関連リソース
AWS ブログ
AWS ドキュメント
その他のリソース
追加情報
このセクションでは、先の自動化とスケールの議論に関連して、実装アプローチ、ツール開発、スケールに関する考慮事項について説明します。
実装アプローチ
エージェントを追加する際、次のアプローチを検討してください。
エージェントの設定
config/agents.yamlファイルに新しいエージェント定義を追加します。エージェントごとに特殊なバックストーリー、目標、ツールを定義します。
エージェントの専門分野に基づいてメモリと分析機能を設定します。
タスクのオーケストレーション
config/tasks.yamlファイルを更新して、新しいエージェント固有のタスクを含めます。タスク間に依存関係を作成して、適切な情報フローを確保します。
必要に応じて並列タスク実行を実装します。
技術的な実装
次に示すのは、提案された脅威インテリジェンススペシャリストエージェントの agents.yaml ファイルへの追加です。
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"
ツール開発
CrewAI フレームワークを使用すると、セキュリティ監査のクルーの有効性を高めるために、次のアクションを取ることができます。
新しいエージェントのカスタムツールを作成します。
脅威インテリジェンスのために外部 API と統合します。
さまざまな 専用のアナライザーを開発します AWS のサービス。
スケーリングに関する考慮事項
AWS インフラストラクチャセキュリティ監査およびレポートシステムを拡張して大規模な環境やより包括的な監査を処理する場合は、次のスケーリング要因に対処します。
計算リソース
Lambda メモリ割り当てを増やして、追加のエージェントを処理します。
エージェントワークロードを複数の Lambda 関数に分割することを検討します。
コスト管理
エージェント数の増加に応じて Amazon Bedrock API の使用状況をモニタリングします。
監査範囲に基づいて選択的なエージェントの有効化を実装します。
コラボレーション効率
エージェント間の情報共有を最適化します。
複雑な環境のために階層型エージェント構成を実装します。
知識ベースの機能強化
エージェントにドメインの専門知識ベースを提供します。
新しいセキュリティのベストプラクティスを使用して、エージェントの知識を定期的に更新します。