Amazon Web Services ブログ
AWS Quick のチャットエージェントを企業アプリケーションに埋め込む
本記事は 2026 年 3 月 4 日 に公開された「Embed AWS Quick chat agents in enterprise applications」を翻訳したものです。
対話型 AI を導入する組織は、2 つの大きな課題に直面する場合があります。1 つ目は、ユーザーが別のツールではなく、普段利用している CRM やサポートコンソール、分析ポータルの中で答えを得たいという点です。2 つ目は、セキュアなチャットをアプリケーションに埋め込むには、認証、トークン検証、ドメインのセキュリティ、グローバル配信のインフラストラクチャを作り込む必要があり、開発に数週間かかることもあるという点です。
AWS Quick の埋め込みチャットは、1 つ目の課題の解決に役立ちます。対話型 AI をアプリケーションに直接組み込めるので、ユーザーはツールを切り替えずに、構造化データへの問い合わせ、ドキュメントの検索、アクションの実行ができます。
本記事では、2 つ目の課題を解決する方法として、Quick の Embedding SDK を利用してチャットエージェントを企業ポータルに埋め込む、ワンクリックでデプロイできるソリューションを紹介します。
ソリューションの概要
このソリューションは、埋め込みチャット用のセキュアなウェブポータルをデプロイします。グローバルなコンテンツ配信には Amazon CloudFront、OAuth 2.0 認証には Amazon Cognito、REST API エンドポイントには Amazon API Gateway、サーバーレスな API 処理には AWS Lambda、Quick との ID 連携には OpenID Connect (OIDC) フェデレーションを利用します。
セキュリティは多層防御で実装しています。CloudFront での DDoS 対策、オリジンアクセスコントロールによってフロントエンドのアセットへの直接アクセスを防ぐプライベートな Amazon Simple Storage Service (Amazon S3) バケット、API Gateway での AWS WAF によるレート制限、そして Amazon Cognito の公開鍵を利用した JSON Web Token (JWT) の署名検証です。署名を検証したうえで、最小権限の AWS Identity and Access Management (IAM) 権限で、ユーザーごとの有効期限付き埋め込み URL を生成します。
ソリューションのアーキテクチャを次の図に示します。

処理の流れは次のとおりです。
- ユーザーがウェブポータルの URL にアクセスすると、リクエストは CloudFront にルーティングされます。
- CloudFront はオリジンアクセスコントロールを利用して、プライベートな S3 バケットから HTML、CSS、JavaScript のファイルを取得します。
- ウェブアプリケーションは有効な認証トークンがあるかを確認し、未認証のユーザーを OAuth 2.0 ログイン用の Amazon Cognito のホストされた UI にリダイレクトします。
- ユーザーが Amazon Cognito のログインページで認証情報を入力すると、Amazon Cognito が認証情報を検証し、1 回限り有効な認可コードを付けて CloudFront の URL にリダイレクトします。
- アプリケーションは認可コードを取り出し、API Gateway の API を HTTPS で呼び出します。この呼び出しは AWS WAF のレート制限を通過します。
- API Gateway は認可コードを渡して Lambda 関数を呼び出します。
- Lambda 関数は Amazon Cognito の OAuth トークンエンドポイントをサーバー間の HTTPS で呼び出し、認可コードを JWT (ID トークン、アクセストークン、リフレッシュトークン) と交換します。
- Lambda 関数は、Amazon Cognito の公開鍵である JSON Web Key Set (JWKS) を利用して ID トークンの暗号署名を検証します。Lambda 関数は、JWKS をスレッドセーフな方法でキャッシュします。
デコードした JWT の例を次に示します。
- Lambda 関数は、検証済みの ID トークンを利用して AWS Security Token Service (AWS STS) の AssumeRoleWithWebIdentity API を呼び出し、IAM ウェブ ID ロールを引き受けて一時的な AWS 認証情報を受け取ります。
- Lambda 関数は一時的な認証情報で Quick の ListUsers API を呼び出してユーザーの存在を確認し、続いて GenerateEmbedUrlForRegisteredUser API を呼び出して、ドメイン制限付きのセキュアな埋め込み URL を生成します。
- Lambda 関数は、クロスオリジンリソース共有 (CORS) ヘッダー付きの JSON レスポンスで埋め込み URL を返します。レスポンスは API Gateway を経由して CloudFront に届きます。埋め込み URL の例を次に示します。
- CloudFront 上のアプリケーションは、Quick の Embedding SDK で埋め込みコンテキストを作成し、セキュアなクロスオリジン通信を利用して HTML の iframe 内にチャットインターフェイスを表示します。
ソリューションは、大まかに次の手順でデプロイできます。
- AWS Cloud Development Kit (AWS CDK) でサーバーレスインフラストラクチャをデプロイする。
- Amazon Cognito と Quick にユーザーをプロビジョニングする。
- Quick のアセット (チャットエージェントと、関連する接続やナレッジベース) を共有する。
- ウェブポータルにアクセスして Quick のチャットエージェントを利用する。
前提条件
本記事のソリューションをデプロイするには、次のものが必要です。
- AWS アカウント
- 認証方法がパスワードベースまたはシングルサインオンの Quick のサブスクリプション
- AWS CDK CLI
- AWS SDK for Python (Boto3)
- ソリューションのデプロイに必要な権限を持つ AWS CLI プロファイル。Quick の名前空間の一覧取得、IAM ロールの作成、および CloudFront ディストリビューション、S3 バケット、API Gateway REST API、AWS WAF ウェブアクセスコントロールリスト、Lambda 関数、Amazon Cognito ユーザープールといった AWS リソースの作成の権限が必要です。
- Node.js 20 以降
- jq 1.7 以降
- 起動済みの Docker Desktop
AWS CDK でサーバーレスインフラストラクチャをデプロイする
次の手順で、AWS CDK を利用してサーバーレスインフラストラクチャをデプロイします。
- GitHub リポジトリをクローンします。
- インフラストラクチャをデプロイします。
AWS リージョンコード、AWS CloudFormation のスタック ID とポータルのタイトル、AWS CLI プロファイルの入力を求められます。


Amazon Cognito と AWS Quick にユーザーをプロビジョニングする
次の手順で、Amazon Cognito と Quick にユーザーをプロビジョニングします。
- Amazon Cognito ユーザープールに Amazon Cognito ユーザーを作成します。

- Quick にフェデレーションユーザーを作成します。

AWS Quick のチャットエージェントを共有する
次の手順で、Quick のチャットエージェントを共有します。
- Author Pro ロールを持つ認証情報で Quick のコンソールにサインインします。
- ナビゲーションペインで チャットエージェント を選択します。
- 共有したいエージェント (例: AnyCompany Ecom order assistant) を選択し、共有 を選択します。

- 先ほど作成したユーザー名 (例: user123@example.com) を検索します。
- 共有 を選択します。


エージェントをすべての機能で利用できるようにするには、エージェントの共有後に、エージェントに紐付いた各リソースも個別に共有する必要があります。
ウェブポータルにアクセスして AWS Quick のチャットエージェントを利用する
次の手順で、ウェブポータルにアクセスしてチャットエージェントの利用を開始します。
- Amazon Cognito から送信される検証メールで、一時パスワードを確認します。
- ウェブブラウザで CloudFront の URL にアクセスし、ユーザー ID と一時パスワードでログインします。
- 初回ログイン時に、パスワードの変更を求められます。
ログインに成功すると、チャットインターフェイスに My Assistant が表示されます。
- 接続先のリージョンを選択し、Quick のカスタムチャットエージェントに接続します。

- 自分に共有されたチャットエージェントを表示するには、Filter の下にある Shared with me を選択します。

- 利用するエージェントを選択して、チャットを開始します。

次のスクリーンショットは、カスタマーサービス担当者がチャットで操作する例です。担当者は、電話で本人確認を済ませたお客様の依頼を受けて、サンプルのオンライン注文を追跡し、返品を処理しています。




クリーンアップ
次のコマンドで、デプロイした AWS リソースを削除します。
まとめ
このソリューションは、対話型 AI を大規模に埋め込む際の主な課題に対応します。具体的には、世界各地から同時にアクセスする数千人のユーザーの認証をセキュアに処理し、充実した監査証跡を備えたエンタープライズレベルのセキュリティを保ち、インフラストラクチャのプロビジョニングを自動化してデプロイを簡単にします。ポータルのブランディングのカスタマイズ、セキュリティポリシーの調整、既存の ID プロバイダーとの統合もできます。従量課金のまま、数千人の同時ユーザーまで自動でスケールします。
このソリューションを試すには、GitHub リポジトリをクローンし、ワンクリックでインフラストラクチャ一式をデプロイして、Quick のチャットエージェントを埋め込んでください。
著者について
翻訳は Solutions Architect の 守田 凜々佳 が担当しました。