AI Defense 計装の追加
15 minutes注意: このセクションでは複数のファイルを変更する必要があります。 変更箇所がわからない場合やアプリケーションが動作しなくなった場合は、
~/workshop/agentic-ai/app-with-ai-defenseフォルダにある モデルソリューションを参照してください。
Splunk Observability Cloud は Cisco AI Defense と統合し、AI エージェントの実行時に検出されたセキュリティおよびプライバシーリスクの統合ビューを提供します。これにより、パフォーマンスとリスクを一箇所で監視できます。
これは Splunk AI Security Monitoring と呼ばれ、以下のことが可能になります:
- プロンプトインジェクションや PII 漏洩などの、検出またはブロックされたセキュリティおよびプライバシーリスクに関与しているエージェント、インタラクション、サービスを特定する
- リスクの傾向をレイテンシー、エラー、その他のパフォーマンスメトリクスとともに時系列で追跡する
- トレースコンテキスト内でリスクのあるインタラクションを、特定のプロンプトとレスポンスまで掘り下げて調査する
このセクションでは、Agentic AI アプリケーションに AI Defense 統合を追加し、 Splunk Observability Cloud で結果データを確認します。
仕組み
Splunk AI Security Monitoring は、計装ライブラリ
opentelemetry-instrumentation-aidefense
を提供し、Python ベースの AI エージェントのセキュリティおよびプライバシーリスクのトレーシングを自動化します。
このライブラリは、AI エージェントが LLM(OpenAI など)やオーケストレーションフレームワーク(LangChain など)に対して行う呼び出しにセキュリティテレメトリーをキャプチャして付加します。これにより、すべてのプロンプトとレスポンスをセキュリティガードレールに対して監査し、統一された OpenTelemetry トレース内に記録できます。これは、LLM またはワークフロースパンに
gen_ai.security.event_id attribute を追加することで実現されます。
SDK モード vs. Gateway モード
opentelemetry-instrumentation-aidefense ライブラリは、SDK モードまたは Gateway モードのいずれかで動作できます:
- SDK モードでは、開発者が
inspect_prompt()を使用して明示的なセキュリティチェックを追加します。このオプションは、セキュリティチェックの実装方法や問題への対処方法を完全に制御したい開発者に最適です。 - Gateway モードでは、LLM 呼び出しが Cisco AI Defense Gateway を経由してプロキシされるため、アプリケーションコードの変更は不要です。このモードは、OpenAI、Anthropic などの一般的な商用 LLM でサポートされています。
このワークショップでは、Azure OpenAI を使用した Gateway モードを利用します。
Cisco AI Defense 統合のセットアップ
最初のステップは、Cisco AI Defense との統合をセットアップすることです。
Data Management -> Deployed integrations に移動して AI Defense を検索すると、
この統合が既に設定されていることがわかります:
注意: この統合を表示するには
aiDefenseIntegrationフィーチャーフラグを有効にする必要があります
計装パッケージの追加
次に、いくつかの計装パッケージをインストールする必要があります。~/workshop/agentic-ai/base-app/requirements.txt を開いて編集し、以下のパッケージを追加します:
ヒント: 以下のコマンドを実行して、変更内容をモデルソリューションと比較できます:
diff ~/workshop/agentic-ai/base-app/requirements.txt ~/workshop/agentic-ai/app-with-ai-defense/requirements.txt
更新された Docker イメージのビルド
新しいタグで更新された Docker イメージをビルドします:
AI Defense Gateway 用の Secret の作成
AI Defense Gateway の URL を保存する Secret を作成します:
注意: Secret の作成時に使用する実際の AI Defense URL はワークショップの講師から提供されます
Kubernetes マニフェストの更新
~/workshop/agentic-ai/base-app/k8s.yaml ファイルを開いて編集し、
AZURE_OPENAI_ENDPOINT 環境変数の定義を以下のように置き換えます。
これにより、Azure OpenAI 宛てのリクエストが AI Defense Gateway を経由して送信されるようになります:
同じファイルで、計装を含むイメージを使用するようにイメージを更新します:
ヒント: 以下のコマンドを実行して、変更内容をモデルソリューションと比較できます:
diff ~/workshop/agentic-ai/base-app/k8s.yaml ~/workshop/agentic-ai/app-with-ai-defense/k8s.yaml
更新されたアプリケーションのデプロイ
以下のようにマニフェストファイルを使用して、更新されたアプリケーションをデプロイできます:
Kubernetes でのアプリケーションテスト
新しいアプリケーション Pod が正常に起動し、古い Pod がなくなっていることを確認します:
次に、以下のコマンドを実行してアプリケーションをテストします:
現時点では、アプリケーションがまだ正常に動作していることを確認するだけで構いません。次のセクションでは、 セキュリティリスクを追加し、それがどのように検出されるかを確認します。
