Slide 1

Slide 1 text

Amazon Bedrock AgentCoreを活用した AIエージェント運用共通基盤の構築プラクティス

Slide 2

Slide 2 text

飯田 壮一(39) о所属:株式会社HBA о役職:テクニカルエキスパート о業務:AWS基盤運用、AIエージェント関連、SRE関連 о家族:妻、息子(5)、娘(2) о好きなサービス:Amazon Bedrock AgentCore 2 # whoami

Slide 3

Slide 3 text

Agenda • AIエージェント運用共通基盤の概要 • 構築プラクティス 1. エージェント公開の承認プロセスと自動デプロイ 2. エージェント利用のセキュリティ/ガバナンス • まとめ 3

Slide 4

Slide 4 text

AIエージェント運用共通基盤の概要

Slide 5

Slide 5 text

5 Amplify AWS ユーザ How to Build AI Agents on AWS. CloudFront S3 API Gateway Lambda Cognito(認証) フロントエンド バックエンド(CDK統合) AgentCore Runtime Amazon Bedrock (基盤モデル) エンジニア AgentCore CLI Amplify Gen2 CLI • Amazon Bedrock AgentCore(以下、AgentCore)でのAIエージェント構築例 ②エージェントの デプロイ ③フロントエンドと の統合 AgentCore Identity Memory Gateway ④本番レベルへの 高度化 ①フレームワークの 選定とエージェント 実装

Slide 6

Slide 6 text

6 なぜ共通基盤が必要か AWS Amplify エンジニアA デプロイ Amplify エンジニアB デプロイ Amplify エンジニアC デプロイ ユーザ 懸念 • エージェント開発の属人化、サイロ化 • インフラ環境の重複 • ユーザインタフェースがバラバラ • セキュリティ・ガバナンス管理の難しさ • 車輪の再発明

Slide 7

Slide 7 text

7 AIエージェント共通運用基盤 # 手順 1 フレームワーク選定とエージェント実装 2 AIエージェントのデプロイ 3 フロントエンドとの統合 4 本番レベルへの高度化 実装ガイド・サンプルコードの提供 共通基盤として標準化 誰でも簡単にエージェントを構築・公開し、安全に利用できることを目指す ① ②

Slide 8

Slide 8 text

構築プラクティス 1. エージェント公開の承認プロセスと自動デプロイ

Slide 9

Slide 9 text

9 1. エージェント公開の承認プロセスと自動デプロイ • エージェント公開機能の実装 エージェントを開発するためのGitリポジトリを自動作成する 作成したエージェントをすぐに検証できるテスト環境と本番環境の分離 Gitリポジトリにコードを反映したらエージェントのデプロイが自動実行される 承認済みのエージェントのみ本番環境にデプロイする エージェントを公開する範囲を指定できる エージェントのランタイム環境の設定を標準化する

Slide 10

Slide 10 text

10 • マニフェストによるエージェントカタログの管理 1. エージェント公開の承認プロセスと自動デプロイ DynamoDB カタログ (エージェント) カタログ登録 エージェントコード (requirements.txtを含む) マニフェストファイル (メタデータ+公開範囲) エンジニアが準備する ファイルはこれだけ Lambda (エージェント管理) 公開範囲を指定する ・全公開 ・部署限定公開 個別リポジトリ 認証情報でフィルタ

Slide 11

Slide 11 text

11 • 環境毎の共通設定テンプレートを標準化(.bedrock_agentcore.yaml) 1. エージェント公開の承認プロセスと自動デプロイ AgentCore Runtimeはカスタマイズ可能なオプションも多いので、本番導入に向けては各オプションの設定の違いを理 解した上で標準化する。ライフサイクル設定など、デフォルトの対話式プロンプトでは設定できないパラメータもある。 # agentcore configure --help

Slide 12

Slide 12 text

12 • 環境毎の共通設定テンプレートを標準化(.bedrock_agentcore.yaml) 1. エージェント公開の承認プロセスと自動デプロイ CodeBuild AgentCore Runtime テスト環境 AgentCore CLI CodeBuild AgentCore Runtime 本番環境 AgentCore CLI 環境別ライフサイクル設定 環境別デプロイタイプ 例えば、環境別にデプロイタイプとライフサイクル設定を変更するなどの工夫をする。

Slide 13

Slide 13 text

13 1. エージェント公開の承認プロセスと自動デプロイ • デプロイタイプ(deployment_type) テスト環境:direct_code_deploy (デプロイが高速で、頻繁な変更に対応) 本番環境:container

Slide 14

Slide 14 text

14 1. エージェント公開の承認プロセスと自動デプロイ • ライフサイクル設定 Amazon Bedrock AgentCore ライフサイクル設定の設定 - Amazon Bedrock AgentCore ライフサイクル設定 デフォルト テスト環境 本番環境 idleRuntimeSessionTim eout 900s 900s 1800s maxLifetime 28800s 7200s 14400s 本番環境はUX重視で調整 テスト環境はコスト削減で調整 ユースケース別の推奨設定

Slide 15

Slide 15 text

15 1. エージェント公開の承認プロセスと自動デプロイ • アーキテクチャ全体像 エンジニアA エンジニアB EventBridge CodeBuild Lambda DynamoDB カタログ (エージェント) CodeCommit リポジトリA リポジトリB AgentCore Runtime 管理者 EventBridge CodeBuild Lambda AgentCore Runtime 本番環境 テスト環境 プッシュ(dev) プルリク作成(dev→main) マージ(main)がトリガー プルリクレビュー/承認 ①テスト環境へデプロイ ②本番環境へデプロイ エージェント単位で個別 リポジトリ自動作成 AgentCore CLI AgentCore CLI プッシュ(dev)がトリガー カタログ登録・ステータス更新 イベント駆動 CI/CD 環境毎の共通設定テンプレートを標準化 (.bedrock_agentcore.yaml) リポジトリC エンジニアC プルリク作成(dev→main) AgentCore Runtime 全エージェントで CI/CDインフラを共有 承認されたエージェント のみ公開 S3 (テンプレート) S3 (テンプレート) エージェントコード マニフェストファイル メタデータ+公開範囲 の指定

Slide 16

Slide 16 text

構築プラクティス 2. エージェント利用のセキュリティ/ガバナンス

Slide 17

Slide 17 text

17 • エージェント利用のセキュリティ/ガバナンス実装 外部のユーザやシステムから不正利用させない エージェントは許可されたツールだけが利用できる エージェントが利用できるツールをユーザ権限ベースでフィルタリングする 2. エージェント利用のセキュリティ/ガバナンス

Slide 18

Slide 18 text

18 • 外部のユーザやシステムから不正利用させない(エージェント) 2. エージェント利用のセキュリティ/ガバナンス Lambda (エージェント実行) IAMユーザ アクセス可 Lambda実行 ロールで呼び出し AgentCore Runtimeは許可タイプとしてIAM許可 or JWTトークン許可を選択できます。 IAM許可(たとえば、Lambda実行ロール)で実行している場合、Runtimeにリソースベースポリ シーを付与すると不正なアクセスを防ぐことができます。(AgentCore Gatewayも同様です) AgentCore Runtime Agent1 Agent2 Agent3 Lambda (エージェント実行) IAMユーザ アクセス不可 Lambda実行 ロールで呼び出し AgentCore Runtime Agent1 Agent2 Agent3 リソースベース ポリシー Lambda(エージェント実行) の実行ロールのみ許可 権限持っているとアク セスできてしまう 権限持っていてもアク セスできない

Slide 19

Slide 19 text

19 2. エージェント利用のセキュリティ/ガバナンス • 外部のユーザやシステムから不正利用させない(ツール) • エージェントは許可されたツールだけが利用できる • エージェントのIAMロールに直接ツールへの権限を与えない。 • Lambda(ツール)にリソースベースポリシーを付与する • VPC内にRuntimeをデプロイしてネットワークレベルで制御する AgentCore Runtime Agent1 Agent2 Agent3 ツール Lambda (ツール) MCP AgentCore Gateway 最小権限でアクセス不可 ネットワークレベルで アクセス不可 Lambda (エージェント実行) リソースベース ポリシー AgentCore Gatewayの 実行ロールのみ許可 VPC IAMユーザ アクセス不可 必ずAgentCore Gatewayを経由する

Slide 20

Slide 20 text

20 2. エージェント利用のセキュリティ/ガバナンス • エージェントが利用できるツールをユーザ権限ベースでフィルタリングする AgentCore Gateway Lambda (ツール) セマンティック検索 有効化 JWTトークンから ユーザ権限ベースの フィルタリング DynamoDB カタログ (ツール) Lambda Gateway response interceptor 承認済みツールの権限取得 ツール群 • AgentCore Gatewayのセマンティック検索を有効化する • AgentCore Gatewayの許可タイプをJWTトークンに設定して、Gateway Intercepter(Lambda)でユーザ権限 ベースのツールフィルタリングを行う。(Cognitoのカスタム属性) =エージェントに不要なツールを見せない、誤ったツールを選択しない AgentCore Runtime JWT AgentCore Runtime Agent Cognito(認証) AgentCore Identity Cognito Custom Claims設定 ・custom:department ・custom:role

Slide 21

Slide 21 text

まとめ

Slide 22

Slide 22 text

まとめ ⚫ AIエージェント運用共通基盤が目指すこと ➢ 誰でも簡単にエージェントを構築・公開できる ➢ エージェントを安全に利用できる ⚫ 構築プラクティス 1. エージェント公開の承認プロセスと自動デプロイ ➢ Git更新操作のイベント駆動でAgentCore Runtimeへのデプロイを自動化できる ➢ AgentCore Runtimeの設定テンプレートを標準化するために各種オプションについて理解する ➢ 環境別にデプロイタイプとライフサイクル設定を変更するなどの工夫をする 2. エージェント利用のセキュリティ/ガバナンス ➢ AgentCore Runtime/Gatewayにリソースベースポリシーを付与して不正アクセスを防げる ➢ ツール利用はAgentCore Gatewayを経由するように制御することで安全利用 ➢ AgentCore Gateway Interceptorでユーザ権限ベースのツールフィルタリングができる 22

Slide 23

Slide 23 text

Thank you!! ご質問・フィードバックお待ちしております