Amazon Bedrock ナレッジベースの Confluence に接続する - Amazon Bedrock

Amazon Bedrock ナレッジベースの Confluence に接続する

Atlassian Confluence は、プロジェクト計画、ソフトウェア開発、製品管理の共有、保存、作業を目的とした共同作業管理ツールです。Amazon Bedrock 用の AWS マネジメントコンソールまたは CreateDataSource API を使用して、Amazon Bedrock ナレッジベースの Confluence インスタンスに接続できます (「Amazon Bedrock supported SDKs and AWS CLI」を参照)。

注記

Confluence データソースコネクタはプレビューリリースの段階であり、変更される可能性があります。

Amazon Bedrock は、Confluence Cloud インスタンスへの接続をサポートしています。現在、このデータソースで使用できるのは Amazon OpenSearch Serverless ベクトルストアのみです。

クロールできるファイル数とファイルあたりの MB に制限があります。「Quotas for knowledge bases」を参照してください。

サポートされている機能

  • メインドキュメントフィールドの自動検出

  • 包含/除外コンテンツフィルター

  • 追加、更新、削除されたコンテンツの増分同期

  • OAuth 2.0 認証、Confluence API トークンを使用した認証

前提条件

Confluence で以下を確認してください。

  • Confluence インスタンスの URL をメモします。例えば、Confluence Cloud の場合は、https://example.atlassian.net です。Confluence Cloud の URL は、.atlassian.net で終わるベース URL である必要があります。

  • Amazon Bedrock が Confluence Cloud インスタンスに接続できるように、ユーザー名 (管理者アカウントの E メール) とパスワード (Confluence API トークン) を含む基本的な認証情報を設定します。Confluence API トークンの作成方法については、Atlassian ウェブサイトの「Manage API tokens for your Atlassian account」を参照してください。

  • (オプション) アプリケーションキー、アプリケーションシークレット、アクセストークン、および更新トークンの認証情報を使用して OAuth 2.0 アプリケーションを設定します。詳細については、Atlassian ウェブサイトの「OAuth 2.0 apps」を参照してください。

  • OAuth 2.0 アプリが Confluence に接続するには、特定の読み取りアクセス許可またはスコープを有効にする必要があります。

    Confluence API:

    • offline_access

    • readonly:content.attachment:confluence

    • read:confluence-content.all

    • read:confluence-content.summary

    • read:confluence-space.summary

AWS アカウントで、以下のことを確認してください。

  • 認証情報を AWS Secrets Managerシークレットに保存し、シークレットの Amazon リソースネーム (ARN) をメモします。このページの接続設定手順に従って、必要なキーと値のペアをシークレットに含めます。

  • ナレッジベースの AWS Identity and Access Management (IAM) ロール/アクセス許可ポリシーに、データソースに接続するために必要なアクセス許可を含めます。このデータソースがナレッジベースの IAM ロールに追加するために必要なアクセス許可については、「Permissions to access data sources」を参照してください。

注記

コンソールを使用する場合は、AWS Secrets Manager に移動してシークレットを追加するか、データソース設定手順の一部として既存のシークレットを使用できます。必要なすべてのアクセス許可を持つ IAM ロールは、ナレッジベースを作成するためのコンソール手順の一部として作成できます。データソースの設定およびその他の設定を行うと、必要なすべてのアクセス許可を持つ IAM ロールが特定のナレッジベースに適用されます。

認証情報とシークレットは、定期的に更新またはローテーションすることをお勧めします。セキュリティに必要なアクセスレベルのみを提供してください。データソース間で認証情報とシークレットを再利用することはお勧めしません。

接続設定

Confluence インスタンスに接続するには、Amazon Bedrock がデータにアクセスしてクロールできるように、必要な設定情報を提供する必要があります。また、前提条件 に従う必要があります。

このデータソースの設定例をこのセクションに示します。

ドキュメントフィールドの自動検出、包含/除外フィルター、増分同期、シークレット認証情報、およびこれらの仕組みの詳細については、以下を選択してください。

データソースコネクタは、ドキュメントまたはコンテンツのすべてのメインメタデータフィールドを自動的に検出してクロールします。例えば、データソースコネクタは、ドキュメントの本文に相当する部分、ドキュメントタイトル、ドキュメントの作成日または変更日、またはドキュメントに適用される可能性のあるその他のコアフィールドをクロールできます。

重要

コンテンツに機密情報が含まれている場合、Amazon Bedrock は機密情報を使用して応答できます。

メタデータフィールドにフィルタリング演算子を適用して、レスポンスの関連性をさらに高めることができます。例えば、ドキュメントの「epoch_modification_time」は、ドキュメントの最終更新日を 1970 年 1 月 1 日からの経過秒数で表します。「epoch_modification_time」にフィルターを適用して、その値が特定の数より大きい最新のデータだけを取得できます。メタデータフィールドに適用できるフィルタリング演算子の詳細については、「メタデータとフィルタリング」を参照してください。

特定のコンテンツのクロールを含めることも除外することもできます。例えば、除外のためのプレフィックス/正規表現パターンを指定して、ファイル名に「プライベート」が含まれているファイルのクロールをスキップできます。特定のコンテンツエンティティまたはコンテンツタイプを含めるように、包含のためのプレフィックス/正規表現パターンを指定することもできます。包含フィルターと除外フィルターを指定し、両方がドキュメントに一致する場合、除外フィルターが優先され、ドキュメントはクロールされません。

ファイル名に「private」を含む PDF ファイルを除外またはフィルタリングする正規表現パターンの例: ".*private.*\\.pdf"

包含/除外フィルターは、次のコンテンツタイプに適用できます。

  • Space: 一意のスペースキー

  • Page: メインページのタイトル

  • Blog: メインブログのタイトル

  • Comment: 特定のページまたはブログに属するコメント。Re: Page/Blog Title を指定

  • Attachment: 拡張子付きの添付ファイル名

データソースコネクタは、データソースがナレッジベースと同期するたびに、新規、変更、削除されたコンテンツをクロールします。Amazon Bedrock は、データソースの仕組みを使用して、コンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツをクロールできます。データソースをナレッジベースと初めて同期すると、デフォルトですべてのコンテンツがクロールされます。

データソースをナレッジベースと同期するには、StartIngestionJob API を使用するか、コンソールでナレッジベースを選択し、データソースの概要セクションで [同期] を選択します。

重要

データソースから同期するすべてのデータは、データを取得する bedrock:Retrieve アクセス許可を持つすべてのユーザーが利用できるようになります。これには、データソースのアクセス許可が制御されているデータを含めることもできます。詳細については、「Knowledge base permissions」を参照してください。

(基本認証を使用する場合) AWS Secrets Manager の認証情報には、次のキーと値のペアを含める必要があります。

  • username: Atlassian アカウントの管理者ユーザーの E メールアドレス

  • password: Confluence API トークン

(OAuth 2.0 認証を使用する場合) AWS Secrets Manager の認証情報には、次のキーと値のペアを含める必要があります。

  • confluenceAppKey: アプリキー

  • confluenceAppSecret: アプリシークレット

  • confluenceAccessToken: アプリアクセストークン

  • confluenceRefreshToken: アプリ更新トークン

注記

Confluence OAuth2.0 のアクセストークンの有効期限は、デフォルトでは 60 分です。データソースの同期 (同期ジョブ) 中にアクセストークンの有効期限が切れた場合、Amazon Bedrock は、指定された更新トークンを使用してアクセストークンを再生成します。その際は、アクセストークンと更新トークンの両方が更新されます。現在の同期ジョブから次の同期ジョブまでトークンを最新の状態で維持するために、Amazon Bedrock にはナレッジベースの IAM ロールの一部であるシークレット認証情報の書き込み/保存のアクセス許可が必要です。

注記

AWS Secrets Manager のシークレットは、ナレッジベースと同じリージョンを使用する必要があります。

Console

以下は、Amazon Bedrock ナレッジベースの Confluence に接続するための設定の例です。コンソールのナレッジベース作成ステップの一部としてデータソースを設定します。

  1. Amazon Bedrock アクセス許可を持つ IAM ロールを使用して AWS Management Consoleにサインインし、Amazon Bedrock コンソール (https://console.aws.amazon.com/bedrock/) を開きます。

  2. 左側のナビゲーションペインで [ナレッジベース] を選択します。

  3. [ナレッジベース] セクションで、[ナレッジベースを作成] を選択します。

  4. ナレッジベースの詳細を入力します。

    1. ナレッジベース名と説明 (オプション) を入力します。

    2. ナレッジベースの作成に必要なアクセス許可の AWS Identity and Access Management ロールを指定します。

      注記

      必要なすべてのアクセス許可を持つ IAM ロールは、ナレッジベースを作成するためのコンソール手順の一部として作成できます。ナレッジベースを作成する手順を完了すると、必要なすべてのアクセス許可を持つ IAM ロールが特定のナレッジベースに適用されます。

    3. ナレッジベースに割り当てるタグを作成します。

    次のセクションに移動して、データソースを設定します。

  5. データソースとして Confluence を選択し、接続設定の詳細を指定します。

    1. データソース名と説明 (オプション) を入力します。

    2. Confluence インスタンスの URL を入力します。例えば、Confluence Cloud の場合は、https://example.atlassian.net です。Confluence Cloud の URL は、.atlassian.net で終わるベース URL である必要があります。

    詳細設定を確認します。デフォルトで選択された設定をオプションで変更できます。

  6. 詳細設定で一時的なデータ暗号化キーとデータ削除ポリシーを設定します。

    KMS key 設定では、カスタムキーを選択するか、デフォルトのデータ暗号化キーを使用できます。

    データを埋め込みに変換する際、デフォルトで、Amazon Bedrock は AWS が所有および管理するキーを使用して一時データを暗号化します。独自の KMS キーを使用できます。詳細については、「データインジェスト時の一時データストレージの暗号化」を参照してください。

    データ削除ポリシーの設定では、次のいずれかを選択できます。

    • 削除: ナレッジベースまたはデータソースリソースの削除時に、ベクトル埋め込みに変換されたデータソースからすべてのデータを削除します。ベクトルストア自体は削除されず、データのみが削除されます。このフラグは、AWS アカウントが削除された場合は無視されます。

    • 保持: ナレッジベースまたはデータソースリソースの削除時に、ベクトル埋め込みに変換されたデータソースからすべてのデータを保持します。ナレッジベースまたはデータソースリソースを削除しても、ベクトルストア自体は削除されません

    引き続きデータソースを設定します。

  7. Confluence インスタンスに接続するための認証情報を入力します。

    1. 基本的な認証の場合、AWS Secrets Manager に移動してシークレット認証情報を追加するか、作成したシークレットに既存の Amazon リソースネーム (ARN) を使用します。シークレットには、ユーザー名として Atlassian アカウントの管理者ユーザーの E メールアドレスと、パスワードの代わりに Confluence API トークンが含まれている必要があります。Confluence API トークンの作成方法については、Atlassian ウェブサイトの「Manage API tokens for your Atlassian account」を参照してください。

    2. OAuth 2.0 認証の場合、AWS Secrets Manager に移動してシークレット認証情報を追加するか、作成したシークレットに既存の Amazon リソースネーム (ARN) を使用します。シークレットには、Confluence アプリケーションキー、アプリケーションシークレット、アクセストークン、および更新トークンが含まれている必要があります。詳細については、Atlassian ウェブサイトの「OAuth 2.0 apps」を参照してください。

    引き続きデータソースを設定します。

  8. フィルター/正規表現パターンの使用を選択して、特定のコンテンツを含めるか除外します。指定しない場合、標準コンテンツはすべてクロールされます。

    引き続きデータソースを設定します。

  9. デフォルトまたはカスタマイズされたチャンキングおよび解析設定を選択します。

    1. カスタム設定を選択した場合は、次のいずれかのチャンキングオプションを選択します。

      • 固定サイズのチャンキング: コンテンツは、設定されたおおよそのトークンサイズのテキストのチャンクに分割されます。チャンク内のトークン数の上限と、連続するチャンク間の重複率を設定できます。

      • デフォルトのチャンキング: コンテンツは最大 300 トークンのテキストのチャンクに分割されます。1 つのドキュメントまたはコンテンツの一部に含まれるトークンが 300 個未満の場合、ドキュメントはそれ以上分割されません。

      • 階層的チャンキング: 親子チャンクのネストされた構造に整理されたコンテンツ。親チャンクトークンの最大サイズと子チャンクトークンの最大サイズを設定します。連続する親チャンク間および連続する子チャンク間で重複するトークンの絶対数も設定できます。

      • セマンティックチャンキング: 意味的に似たテキストチャンクまたは文のグループに整理されたコンテンツ。ターゲット/現在の文を囲む文の最大数をグループ化するように設定します (バッファサイズ)。また、テキストを意味のあるチャンクに分割するためのブレークポイントパーセンタイルしきい値も設定します。セマンティックチャンキングは基盤モデルを使用します。基盤モデルのコストの詳細については、「Amazon Bedrock の料金」を参照してください。

      • チャンキングなし: 各ドキュメントは 1 つのテキストチャンクとして扱われます。ドキュメントを別々のファイルに分割して前処理することをお勧めします。

      注記

      データソースの作成後は、チャンキング戦略を変更することはできません。

    2. Amazon Bedrock の基盤モデルをドキュメントに使用して、標準テキスト以上のものを解析できます。例えば、ドキュメント内の表形式データを、構造がそのままの状態で解析できます。基盤モデルのコストの詳細については、「Amazon Bedrock の料金」を参照してください。

    3. AWS Lambda 関数を使用してチャンキング戦略をカスタマイズし、ドキュメントメタデータ属性/フィールドの処理方法と取り込み方法を選択できます。Lambda 関数の入力と出力の Amazon S3 バケットの場所を指定します。

    次のセクションに移動して、ベクトルストアを設定します。

  10. データをベクトル埋め込みに変換するモデルを選択します。

    Amazon Bedrock で埋め込みを保存、更新、管理するためのベクトルストアを作成します。新しいベクトルストアを簡単に作成することも、作成済みのサポートされているベクトルストアから選択することもできます。現在、このデータソースで使用できるのは Amazon OpenSearch Serverless ベクトルストアのみです。新しいベクトルストアを作成すると、Amazon OpenSearch Serverless ベクトル検索コレクションと、必須フィールドを含むインデックスが設定されます。サポートされているベクトルストアから選択する場合は、ベクトルフィールド名とメタデータフィールド名をマッピングする必要があります。

    次のセクションに移動して、ナレッジベース設定を確認します。

  11. ナレッジベースの詳細を確認します。次に進みナレッジベースを作成する前に、任意のセクションを編集できます。

    注記

    ナレッジベースの作成にかかる時間は、特定の設定によって異なります。ナレッジベースの作成が完了すると、ナレッジベースのステータスは準備中または利用可能な状態に変更されます。

    ナレッジベースの準備ができて使用可能になったら、最初にデータソースの同期を行い、その後も必要に応じて同期を行いコンテンツを最新の状態に保ちます。コンソールでナレッジベースを選択し、データソースの概要セクションで [同期] を選択します。

API

以下は、Amazon Bedrock ナレッジベースの Confluence Cloud に接続するための設定の例です。データソースは、AWS CLI または Python などのサポートされている SDK で API を使用して設定します。CreateKnowledgeBase を呼び出した後、CreateDataSource を呼び出して、dataSourceConfiguration の接続情報を使用してデータソースを作成します。また、vectorIngestionConfiguration のチャンキング戦略/アプローチ、dataDeletionPolicy のデータ削除ポリシーも指定してください。

AWS Command Line Interface

aws bedrock create-data-source \ --name "Confluence Cloud/SaaS connector" \ --description "Confluence Cloud/SaaS data source connector for Amazon Bedrock to use content in Confluence" \ --knowledge-base-id "your-knowledge-base-id" \ --data-source-configuration file://confluence-bedrock-connector-configuration.json \ --data-deletion-policy "DELETE" \ --vector-ingestion-configuration '{"chunkingConfiguration":[{"chunkingStrategy":"FIXED_SIZE","fixedSizeChunkingConfiguration":[{"maxTokens":"100","overlapPercentage":"10"}]}]}' confluence-bedrock-connector-configuration.json { "confluenceConfiguration": { "sourceConfiguration": { "hostUrl": "https://example.atlassian.net", "hostType": "SAAS", "authType": "OAUTH2_CLIENT_CREDENTIALS", "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-Confluence" }, "crawlerConfiguration": { "filterConfiguration": { "type": "PATTERN", "patternObjectFilter": { "filters": [ { "objectType": "Attachment", "inclusionFilters": [ ".*\\.pdf" ], "exclusionFilters": [ ".*private.*\\.pdf" ] } ] } } } }, "type": "CONFLUENCE" }