Amazon Web Services ブログ
Amazon Q Business と AWS IAM Identity Center を利用して、プライベートでセキュアなエンタープライズ生成 AI アプリケーションを開発する
本記事は、2024年4月30日に投稿されたBuild private and secure enterprise generative AI apps with Amazon Q Business and AWS IAM Identity Center を翻訳したものです。
2024 年 4 月 30 日現在、Amazon Q Business が一般提供開始 になりました。Amazon Q Business は、生成 AI を活用し、従業員の質問に答えたりタスクを完了させることで生産性の向上をサポートする対話型アシスタントです。従業員は Amazon Q Business で構築された Web アプリケーションを通じて、安全かつプライベートに企業のコンテンツにアクセスできます。こうしたアプリケーションが成功するためには 2 つの重要な要素があり、アクセス権のあるドキュメントから生成されたレスポンスのみをうけとることができること、そしてユーザ毎の会話履歴はプライベートでセキュアでかつ本人のみ閲覧可能であることで
す。
Amazon Q Business は、ユーザーがアプリケーションにアクセスするたびにユーザーの識別情報を検証することでこの機能を実装しており、アプリケーションはエンドユーザーの識別情報を元にしてアクセスできるドキュメントや実行するタスクを制限します。この機能は、AWS IAM Identity Center と Amazon Q Business を組み合わせることで実現されます。IAM Identity Center はユーザー識別情報を管理しており、ユーザーが Amazon Q Business アプリケーションにアクセスする際にアイデンティティソースとして利用が可能なため、ユーザー情報の検証に利用することが可能です。また、IAM Identity Center は Okta や Microsoft Entra ID などのエンタープライズ ID プロバイダー (IdP) をアイデンティティソースとして使用することも可能です。Amazon Q Business は、ドキュメントに設定されたアクセス制御リストと IAM Identity Center で管理されるユーザー情報を照合します。アプリケーション側では、 Amazon Q Business API が呼び出されユーザーのクエリに応答するたびに、これらのアクセス制御リストが適用されます。
この投稿では、Amazon Q Business を使用するにあたり、企業の ID プロバイダーによって作成されたユーザー ID を、 IAM Identity Center が識別情報の橋渡しとしてどのように機能するか、またユーザーの識別情報を使用して質問に対し、Amazon Q Business がどのように安全かつ機密性を保って応答するかを説明します。さらに、Amazon Q Business 用いた生成 AI アシスタントの例を用いて、従業員が各々アクセス可能なコンテンツのみを使用して応答するために必要な設定方法、そしてその生成 AI アシスタントを従業員が安全に利用する方法を説明します。
ソリューションの概要
次の図は、企業の IdP、IAM Identity Center インスタンス、Amazon Q Business アプリケーションが連携して、認証されたユーザーがウェブブラウザーから Amazon Q Business の Web エクスペリエンスを使用し、Amazon Q Business アプリケーションを安全かつプライベートな方法で利用できるようにするアーキテクチャを示しています。
Okta のような外部 IdP を使用する場合、ユーザーとグループは IdP でプロビジョンされた後に、 SCIM プロトコルを使用して IAM Identity Center インスタンスと自動的に同期されます。ユーザーが Amazon Q Business の Web エクスペリエンスを開始すると、シングルサインオンを使用して IdP で認証され、IdP から取得されたトークンが Amazon Q Business によって IAM Identity Center でユーザーを検証するために使用されます。検証後、ユーザーとのチャットセッションが開始されます。
この投稿で紹介するユースケースでは、IdP として Okta を利用した IAM Identity Center アカウントインスタンスを使用しています。次に、Atlassian Confluence からコンテンツを取り込みます。Amazon Q Business にビルドインされた Confluence コネクタ は、Confluence で設定されたローカルユーザーとローカルグループ、スペースやドキュメントの ACL を Amazon Q Business のインデックスに取り込みます。データソースから取り込まれたユーザーは、IAM Identity Center インスタンスで設定されたユーザーと照合され、適切な ACL を適用のために Amazon Q Business User Store にはエイリアスが作成されます。
前提条件
この投稿でサンプルユースケースとして紹介するソリューションを実装するには、IAM Identity Center インスタンスと Okta ID プロバイダーをアイデンティティソースとして利用する必要があります。これらのリソースの詳細については、このセクションで説明します。
IAM Identity Center インスタンス
Amazon Q Business アプリケーションを使用するには、IAM Identity Center インスタンスを関連付ける必要があります。IAM Identity Center インスタンスには、組織インスタンスとアカウントインスタンスの 2 種類がありますが、Amazon Q Business アプリケーションはどちらのインスタンスタイプでも動作し、IdP によって作成されたユーザー識別情報と、そのユーザーが所属するグループを保存します。
本番環境での利用には、IAM Identity Center の組織インスタンスがお勧めです。組織インスタンスの利点は、AWS Organizations の任意の AWS アカウントで Amazon Q Business アプリケーションが利用でき、複数の Amazon Q Business アプリケーションが複数の AWS アカウントに分散している場合でも、組織インスタンスを使えば会社内のユーザーに対して 1 度の支払いですむことです。多くの エンタープライズ企業が AWS Organizations を使用しており、IAM Identity Center の組織インスタンスを関連付けています。
PoC やユースケース検証が目的であり、AWS アカウントが AWS Organization の一部でない、かつ新しい AWS Organization を作成したくないような場合は、IAM Identity Center アカウントインスタンスを使用して Amazon Q Business アプリケーションを利用することができます。この場合、作成されたIAM Identity Center アカウントインスタンスを利用できるのは、そのインスタンス存在する AWS アカウントで作成された Amazon Q Business アプリケーションに限られます。
Amazon Q Business は、ユーザーごとの課金体系を採用しています。ユーザーは、異なるアカウントやさまざまな Amazon Q Business アプリケーションでも一意に識別できる場合、1 ユーザ分の課金のみとなります。たとえば、単一の AWS アカウントに複数の Amazon Q Business アプリケーションがある場合、そのアカウントに紐付けられた IAM Identity Center インスタンスによって一意に識別されるユーザーは、これらのアプリケーションの利用に対して 1 ユーザ分の課金となります。貴社が 2 つのアカウントを保有しており、組織単位の IAM Identity Center インスタンスがある場合、その組織レベルのインスタンスで一意に識別されたユーザーは、両アカウントのアプリケーションにアクセスしても 1 回分の課金となります。ただし、アカウント単位の IAM Identity Center インスタンスが 2 つある場合、ある 1 つのアカウントのユーザーを、アカウント間で同一のユーザーと見なすことができないため、同一ユーザーに対し 2 ユーザ分の課金が行われてしまいます。よって、コスト最適化に向けた本番環境では、組織単位の IAM Identity Center インスタンスを利用することをお勧めします。
なお、両ケースにおいて、Amazon Q Business アプリケーションは IAM Identity Center インスタンスと同じ AWS リージョンに存在する必要があり、本投稿時点では、バージニア北部、オレゴンリージョンで利用可能です。
ID ソース
すでに Okta や Entra ID などの ID プロバイダ (IdP) を使用している場合、Amazon Q Business アプリケーションでも従来どおり IdP を使用できます。このケースでは、IAM Identity Center インスタンスは IdP を ID ソースとして使用するよう構成され、IdP のユーザーとユーザーグループは SCIM を使って IAM Identity Center インスタンスに自動的に同期 します。すでに多くの AWS エンタープライズ企業が、IAM Identity Center 組織インスタンスを利用しています。サポートされている IdP の詳細は、入門チュートリアルを参照ください。なお、IAM Identity Center の組織インスタンスとアカウントインスタンスの設定プロセスは同様です。
AWS IAM Identity Center インスタンスの Okta による ID ソース設定
以下のスクリーンショットは、Okta を IdP として設定した IAM Identity Center アプリケーションと、このアプリケーションに割り当てられた Okta でのユーザーとグループを示しています。
以下のスクリーンショットでは、Okta をアイデンティティソースとして設定した後の IAM Identity Center インスタンスのユーザーストアを示しています。ここで、ユーザーとグループ情報が Okta から IAM Identity Center に自動的に同期されており、これには System for Cross-domain Identity Management (SCIM) v2.0 プロトコルが使用されています。
Amazon Q Business アプリケーションで IAM Identity Center を有効にする
IAM Identity Center を有効にし、Amazon Business アプリケーションを作成するために、以下のステップを実行してください。
- Amazon Q Business のコンソールで、Create application を選択します。
- Application name にアプリケーションの名称を入力してください。
- アプリケーションの AWS Identity and Access Management (IAM) ロールを変更したり、暗号化設定をカスタマイズする必要がない限り、既定値のままにしておきます。
- Create を選択します。
- Slect retriever ページでは、既存の Amazon Kendra インデックスをデータの取得元(リトリーバー)として設定したい場合、または 2 万件を超えるドキュメントの保存に対応する必要がある場合を除いて、既定値のままで構いません。
- Next を選択します。
Amazon Q Business のリトリーバーの詳細については、Amazon Q Business アプリケーションの検索エンジンの作成と選択を参照してください。
- Connect data sources ページの Data sources では Confluence を選択します。
次の手順では、Confluence をデータソースとして設定する方法 を説明します。ただし、他のデータソースでは手順が異なる可能性があります。
- Data source name に、データソース名を入力してください。
- Source で、Confluence Cloud を選択してください。
- Confluence URL に、Confluence の URL を入力してください。
- Authentication で、Basic authentication を選択してください。
- AWS Secrets Manager secret で、AWS Secrets Manager secret を選択してください。
- Virtual Private Cloud で、No VPC を選択してください。
- IAM role で、Create a new service role を選択してください。
- Role name で、既存のロール名を設定するか、新しいロールとして名称を設定してください。
- Sync scope で、同期するコンテンツを選択してください。
- Sync mode で、Full sync を選択してください。
- Frequency で、Run on demand を選択してください。
- Field mappings は既定値のままにしてください。
- Add data source を選択してください。
- Next を選択してください。
- Add groups and users ページで、Add groups and users を選択してください。
- ポップアップウィンドウで、Get started を選択してください。
- 表示名やグループを元にユーザを検索し、アプリケーションに追加したいユーザやグループを選択します。
- 必要に応じて、ユーザーを追加してください。
- Assign を選択してください。
- 以下の画面が表示されます。
- ユーザー毎に、Choose subscription のプルダウンをクリックし、チェックマークを選択してサブスクリプションを設定してください。
- 全てのユーザーのサブスクリプションを選択した後、画面が以下のようになっていることを確認してください。サービスロールを変更したくない場合は、そのまま Create application を選択してください。
アプリケーションが作成されると、次のスクリーンショットのようにアプリケーション設定ページが表示されます。
従業員用 AI アシスタントの利用事例
安全でプライバシーが保護された従業員向け生成 AI アシスタントを Amazon Q Business アプリケーションを使って構築する方法を説明するために、ある企業における従業員用 AI アシスタントの使用例を見てみましょう。
新入社員のマテオ・ジャクソンとメアリー・メジャーが、別々のプロジェクトで勤務を開始し、従業員研修を終えました。社用のノートパソコンを支給され、企業の ID プロバイダーにアカウントを設定されています。新しいチームメンバーとしての活動や福利厚生に関する質問は、従業員用 AI アシスタントに尋ねるよう言われています。
この会社は、エンタープライズコンテンツを管理するために Confluence を利用しています。本投稿で実行するサンプル Amazon Q アプリケーションでは、Confluence 向けの組み込みコネクターを使用してデータソースが設定されており、企業の Confluence スペースをインデックス化しています。AnyOrgApp Project、ACME Project Space、AJ-DEMO-HR-SPACE の 3 つの Confluence スペースを使用し、それぞれのスペースへのアクセス許可は、次のとおりです。
- AJ-DEMO-HR-SPACE – マテオとメアリーを含むすべての従業員
- AnyOrgApp Project – マテオを含むプロジェクトに割り当てられた従業員
- ACME Project Space – メアリーを含むプロジェクトに割り当てられた従業員
マテオ と メアリー が従業員用 AI アシスタントを使う様子を見てみましょう。
両者とも従業員用 AI アシスタントのウェブエクスペリエンスの URL が提供されます。URL を使用し、ノートパソコンのブラウザから IdP にサインインします。マテオ と メアリー はどちらも、新しいチームメンバーの活動や同僚チームメンバーについて知りたいと考えています。そこで2人は従業員用 AI アシスタントに同じ質問をしますが、それぞれアクセスできるプロジェクトが異なるため、異なる回答が返されます。次のスクリーンショットで、左側のブラウザウィンドウが マテオ・ジャクソン用 、右側がメアリー・メジャー用です。マテオ は AnyOrgApp プロジェクトの情報を得ており、Mary は ACME プロジェクトの情報を得ています。
マテオは、チームメンバーに関する質問の下にある Sources を選んで、チームメンバー情報の詳細を確認します。メアリーは、新しいチームメンバーのオンボーディング活動に関する質問の下の Sources を選びました。次のスクリーンショットは、それぞれの選択後の画面を示しています。
次に、マテオとメアリーは、新しい仕事で付与される福利厚生の詳細と、それが自身や家族にどの範囲で適用されるか知りたがっています。
以下のスクリーンショットは、メアリーが 従業員用 AI アシスタントに福利厚生ついて質問しているのを示しています。
メアリーはソースとなったドキュメントを参照することもできます。
以下のスクリーンショットでは、マテオが従業員用 AI アシスタントに福利厚生について様々な質問をしています。
マテオ は次のようにソースとなったドキュメントを確認します。
メアリーとマテオは両者共に福利厚生について知りたいと思っていました。しかし、その後は聞き手に応じて質問が異なります。両者とも福利厚生に関連したドキュメントがアクセス可能であっても、従業員用 AI アシスタントとの会話は個々のプライベートなものです。会話履歴が他者に見られることがないことを保証することが、生産性を向上する従業員用生成 AI アシスタントの成功にとって極めて重要です。
クリーンアップ
IAM Identity Center と統合した新しい Amazon Q Business アプリケーションをお試しで作成し、以後使用する予定がない場合は、サブスクリプションを解除してアプリケーションに割り当てたユーザーを削除し、AWS アカウントにコストが発生しないようにしてください。
ユーザーのサブスクリプションを解除および削除するには、アプリケーションの詳細ページに移動し、Manage access and subscriptions を選択してください。
以下の図のように、すべてのユーザーを選択し、編集 ボタンを押下、Unsubscribe and remove を選択してください。
ユーザーを削除した後、アプリケーション詳細ページに戻り、Delete を選択してアプリケーションを削除してください。
まとめ
この投稿で示したようなエンタープライズ生成 AI アシスタントが成功するには、アクセス制御の下で各従業員のプライバシーと機密性を確保する必要があります。Amazon Q Business と IAM Identity Center は、各ユーザーを認証しそのユーザー識別情報を検証するソリューションで、アクセス制御に加えてプライバシーと機密性を守ることができます。
この目的を達成するため、IAM Identity Center は、Okta のようなIdP からユーザーとグループの情報を取得して同期する橋渡しの役割を果たします。また、Amazon Q Business は、IAM Identity Center から提供された ID を使用して、この場合の Amazon Q Business アプリケーションのユーザーを一意に特定します。Confluence のようなデータソース内で設定されているドキュメント ACL とローカルユーザーは、IAM Identity Center から提供されたユーザーとグループの ID と照合されます。問い合わせ時に、Amazon Q Business は、ドキュメント ACL によりアクセスが許可されているドキュメントのみを使用してユーザーの質問に回答します。
さらに詳しい情報が必要な場合は、AWS ニュースブログの Amazon Q Business 一般提供開始に関する投稿をご覧いただき、Amazon Q Business ユーザーガイドをご参照ください。IAM Identity Center の詳細については、AWS IAM Identity Center ユーザーガイドをご参照ください。
著者紹介
Abhinav Jawadekar は AWS の Amazon Q Business サービスチームのプリンシパルソリューションアーキテクトです。Abhinav は AWS の顧客およびパートナー企業と協力し、AWS で生成 AI ソリューションを構築するのを支援しています。
Venky Nagapudi は Amazon Q Business、Amazon Comprehend および Amazon Translate のプロダクトマネジメントシニアマネージャーです。Amazon Q Business での彼の 重点分野は、ユーザー ID 管理、および文書からのオフラインインテリジェンスを使用して Amazon Q Business の精度と有用性を向上させることです。