[レポート]「Amazon Q Business Chat APIを安全に呼び出す方法を学ぶ」というセッションに参加しました #AIM405 #AWSreInvent
こんにちは、AWS事業本部の荒平(@0Air)です。
AWS re:Invent 2024では、ラスベガスへ現地参加しています!
本エントリでは、参加したCode Talkセッション「Learn to securely invoke Amazon Q Business Chat API」について紹介します。
Code Talkタイプのセッションは、画面にエディタが投影され、スピーカーの方がコードを読みながら参加者と対話を進めます。
3行まとめ
本記事の内容を要約しました。
- Amazon Q Businessをご利用中、かつセキュリティに課題のある方が対象
- セキュリティ向上のためには認証を利用するため、IAM周りの知識が少し必要
- AWSのセキュリティサービスを利用することで簡単に実装ができる
セッション概要
Join this code talk to learn how to use Amazon Q Business identity-aware ChatSync API. First, hear an overview of identity-aware APIs, and then learn how to configure an identity provider as a trusted token issuer. Next, discover how your application can obtain an STS token to assume a role that calls the ChatSync API. Finally, see how a client-side application uses the ChatSync API to answer questions from your documents indexed in Q Business.
Zuhayr Raghib
(訳文)
このコードトークに参加して、Amazon Q Businessのアイデンティティ認識型ChatSync APIの使用方法を学びましょう。まず、アイデンティティ認識型APIの概要を説明し、信頼されたトークン発行者としてのアイデンティティプロバイダーの設定方法を説明します。次に、アプリケーションがSTSトークンを取得してChatSync APIを呼び出す役割を担う方法を説明します。最後に、クライアントサイドのアプリケーションがChatSync APIを使用して、Q Businessでインデックス化されたドキュメントからの質問に回答する方法を説明します。
スピーカー
- Zuhayr Raghib, Gen AI SSA, AWS
- Rajesh Ravi, Sr. Generative AI Solutions Architect, AWS
レベル
- 400 – Expert
セッション内容
Amazon Q BusinessのChat APIをセキュアに叩こう
スピーカーのRajeshさんはこの分野のスペシャリストの方でした。
Amazon Qは発展途上のサービスのイメージでしたが、実はもう米国ではユーザーの利用が進んできているようです。
会場は30人ほどの参加でしたが、他の日本人はいなかったので、言語対応のところがやはりネックなのかな?と思いました。
AWSが取り組む生成AIツールの概要
まずは現時点で発表されているGenerative AIのツール・サービスの紹介です。
インフラ基盤として、先日発表されたAmazon EC2 UltraClustersについても触れられていました。
顧客がRAGを利用するための基盤として、40以上の組み込みコネクタが用意されており、スライドはその一部です。
これらをKnowledge Baseとして利用します。
Amazon Q Businessのセキュリティ
扱うデータが機微になるほど、セキュリティは重要視されています。
一つの例として、Amazon Q Businessでは、ユーザーからのクエリに対し、IdPで認証を行い、コンテンツを取得、そしてユーザーに対して割り当てられた権限でフィルタした結果を返しています。
セキュアな接続を行うには、Identity providerを経由して、AWS Identity Center, IAM OIDC provider, IAM SAML providerのいずれかによって信頼される必要があります。
そして、そのトークン(sts)を利用することでプライベートに接続が可能です。
フェデレーション方法の比較
利用用途によって、利用するプロバイダーを使い分ける必要があります。
例えば、組織内に属する全てのアカウントがサービスを利用する場合は、AWS Organizations Instanceを使用します。
コードトーク(デモ)
サンプルアプリケーションのフローです。
Amazon Cognitoでユーザー認証を行い、認証コードを受け取ります。
アプリケーションはOIDC tokenを受け取り、IAM Identity Centerと交換し、STSコンテキストを取得します。
最後にアプリケーションがSTSコンテキストを使用してIAMロールを引き受け、一時的な認証情報でAmazon Q Business chat APIを呼び出します。
こうすることでユーザーは安全にAmazon Qへ接続できます。
(座席の都合上、フォントサイズが小さく見えなかったため、現地で汲み取れない部分がありましたがそちらはご了承ください)
画面左がアプリケーション(Flask)ログ、右側がアプリケーションのソースコードです。
デモアプリの画面です。
Eメールとパスワードを入力し、サインインします。
サインインに成功すると、OIDC identity tokenが返り、IdPからのトークンを待ちます。
(デモのため、ステップごとに待機を置いているようですが、実際はノンステップで次の動作が行われます)
Identity CenterからIAMトークンが返りました。続いてSTSを取得します。
STSを取得し、Amazon Q Business Chat APIが叩ける状態であることが確認できました。
Identity Center側で信頼されたトークンとして登録されています。
なお、Amazon Q Business側はデータソースの設定がされており、無事情報が取り出せました。
(写真は取りこぼしました...)
まとめ
Amazon Q Businessは40以上の組み込みコネクタがあり、体験に優れています。
また、AWSのエコシステムが利用でき、IAM Identity Center、CloudTrail、PrivateLinkなどと組み合わせることで柔軟でセキュアなソリューションが開発できます。
感想
私自身、Amazon Q Businessに触れたことがなかったので興味深く聴講していました。
Amazon Qのデータソースとしてかなり多くのサービスが統合できるようになっており、諸般の事情により一般のLLMでRAGを構築(利用)できない場合でも、セキュアなAmazon Q Businessを利用できるシーンはあるかもしれません。
Amazon Qが日本語対応すれば更に利用は加速しそうです!
このエントリが誰かの助けになれば幸いです。
それでは、AWS事業本部 コンサルティング部の荒平(@0Air)がお送りしました!