機能 2。生成 AI RAG 手法への安全なアクセス、使用、実装の提供 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

機能 2。生成 AI RAG 手法への安全なアクセス、使用、実装の提供

次の図は、取得拡張生成 (RAG) 機能用に生成 AI アカウントに推奨される AWS のサービスを示しています。このシナリオの範囲は、RAG 機能を保護することです。

RAG 機能の生成 AI アカウントに推奨される AWS のサービス

生成 AI アカウントには、ベクトルデータベースへの埋め込みの保存、ユーザーの会話の保存、プロンプトストアの維持に必要なサービスに加えて、セキュリティガードレールと一元化されたセキュリティガバナンスを実装するために必要な一連のセキュリティサービスが含まれます。VPC 環境がアクセスするように設定されている Amazon S3 のモデル呼び出しログ、プロンプトストア、ナレッジベースのデータソースバケット用に Amazon S3 ゲートウェイエンドポイントを作成する必要があります。また、VPC 環境がアクセスするように設定されている CloudWatch ログ用に CloudWatch Logs ゲートウェイエンドポイントを作成する必要があります。

根拠

Retrieval Augmented Generation (RAG) は、回答を生成する前に外部の信頼できるナレッジベースから情報を取得することで、システムが応答を強化するために使用される生成 AI 手法です。このプロセスは、 up-to-date およびコンテキスト固有のデータへのアクセスを許可することで、FMs の制限を克服するのに役立ちます。これにより、生成されたレスポンスの精度と関連性が向上します。このユースケースは、Generative AI Security Scoping Matrix のスコープ 3 を指します。スコープ 3 では、組織は Amazon Bedrock で提供されているような事前トレーニング済みの FM を使用して生成 AI アプリケーションを構築します。このスコープでは、アプリケーションとアプリケーションで使用される顧客データを制御しますが、FM プロバイダーは事前トレーニング済みのモデルとそのトレーニングデータを制御します。 

Amazon Bedrock ナレッジベースへのアクセス権をユーザーに付与する場合は、以下の主要なセキュリティ上の考慮事項に対処する必要があります。 

  • モデルの呼び出し、ナレッジベース、会話履歴、プロンプトストアへの安全なアクセス 

  • 会話、プロンプトストア、ナレッジベースの暗号化

  • 迅速なインジェクションや機密情報の開示などの潜在的なセキュリティリスクに関するアラート

次のセクションでは、これらのセキュリティ上の考慮事項と生成 AI 機能について説明します。 

設計上の考慮事項

機密データを使用して FM をカスタマイズしないことをお勧めします (このガイドの後半にある生成 AI モデルのカスタマイズに関するセクションを参照してください)。代わりに、RAG 手法を使用して機密情報を操作します。この方法にはいくつかの利点があります。 

  • より強力な制御と可視性。機密データをモデルから分離しておくことで、機密情報をより詳細に制御し、可視化できます。データは必要に応じて簡単に編集、更新、または削除できるため、データガバナンスが向上します。 

  • 機密情報の開示の軽減。RAG を使用すると、モデルの呼び出し中に機密データとのインタラクションをより制御できます。これにより、データがモデルのパラメータに直接組み込まれた場合に発生する可能性のある、機密情報の意図しない開示のリスクを軽減できます。 

  • 柔軟性と適応性。機密データをモデルから分離することで、柔軟性と適応性が向上します。データ要件や規制が変更されると、言語モデル全体を再トレーニングまたは再構築することなく、機密情報を更新または変更できます。

Amazon Bedrock ナレッジベース

Amazon Bedrock ナレッジベースを使用して、FMs を独自のデータソースに安全かつ効率的に接続することで RAG アプリケーションを構築できます。この機能は、Amazon OpenSearch Serverless をベクトルストアとして使用して、データから関連情報を効率的に取得します。その後、データは FM によってレスポンスの生成に使用されます。データは Amazon S3 からナレッジベースに同期され、効率的な取得のために埋め込みが生成されます

セキュリティに関する考慮事項

生成 AI RAG ワークロードは、RAG データソースのデータ流出や、脅威アクターによる迅速な挿入やマルウェアによる RAG データソースのポイズニングなど、固有のリスクに直面します。Amazon Bedrock ナレッジベースは、データ保護、アクセスコントロール、ネットワークセキュリティ、ログ記録とモニタリング、入出力の検証のための堅牢なセキュリティコントロールを提供し、これらのリスクを軽減します。 

修復

データ保護

ユーザーが作成、所有、管理する AWS Key Management Service (AWS KMS) カスタマーマネージドキーを使用して、転送中および保管中のナレッジベースデータを暗号化します。ナレッジベースのデータ取り込みジョブを設定するときは、カスタマーマネージドキーを使用してジョブを暗号化します。Amazon Bedrock にナレッジベース用のベクトルストアを Amazon OpenSearch Service に作成させることを選択した場合、Amazon Bedrock は選択した AWS KMS キーを暗号化のために Amazon OpenSearch Service に渡すことができます。

AWS KMS キーを使用してナレッジベースのクエリからレスポンスを生成するセッションを暗号化できます。ナレッジベースのデータソースを S3 バケットに保存します。Amazon S3 のデータソースをカスタマーマネージドキーで暗号化する場合は、ナレッジベースのサービスロール にポリシーをアタッチします。ナレッジベースを含むベクトルストアが AWS Secrets Manager シークレットで設定されている場合は、カスタマーマネージドキーでシークレットを暗号化します。

詳細と使用するポリシーについては、Amazon Bedrock ドキュメントの「ナレッジベースリソースの暗号化」を参照してください。

ID およびアクセス管理

最小特権の原則に従って、Amazon Bedrock のナレッジベースのカスタムサービスロールを作成します。Amazon Bedrock がこのロールを引き受けることを許可する信頼関係を作成し、ナレッジベースを作成および管理します。次の ID ポリシーをカスタムナレッジベースサービスロールにアタッチします。 

ナレッジベースは、ナレッジベースのデータアクセスポリシーとプライベート Amazon OpenSearch Serverless ナレッジベースのネットワークアクセスポリシーを設定するためのセキュリティ設定をサポートします。詳細については、Amazon Bedrock ドキュメントの「ナレッジベースサービスロールを作成する」を参照してください。

入力と出力の検証

入力の検証は、Amazon Bedrock ナレッジベースにとって重要です。Amazon S3 のマルウェア保護を使用して、ファイルをデータソースにアップロードする前に悪意のあるコンテンツがないかスキャンします。詳細については、AWS ブログ記事「Integrating Malware Scanning into Your Data Ingestion Pipeline with Antivirus for Amazon S3」を参照してください。

ナレッジベースのデータソースへのユーザーアップロードで潜在的なプロンプトインジェクションを特定して除外します。さらに、データインジェストパイプラインの別の入力検証コントロールとして、個人を特定できる情報 (PII) を検出して編集します。Amazon Comprehend は、ナレッジベースのデータソースへのユーザーアップロードで PII データを検出して編集するのに役立ちます。詳細については、Amazon Comprehend ドキュメントの「PII エンティティの検出」を参照してください。

また、Amazon Macie を使用してナレッジベースのデータソース内の潜在的な機密データを検出してアラートを生成し、全体的なセキュリティとコンプライアンスを強化することをお勧めします。Amazon Bedrock のガードレールを実装して、コンテンツポリシーの適用、安全でない入出力のブロック、要件に基づいたモデルの動作の制御に役立てます。

推奨される AWS のサービス

Amazon OpenSearchサーバーレス

Amazon OpenSearch Serverless は、Amazon OpenSearch Service のオンデマンドの自動スケーリング設定です。 OpenSearch サーバーレスコレクションは、アプリケーションのニーズに基づいてコンピューティング性能をスケーリングする OpenSearch クラスターです。Amazon Bedrock ナレッジベースは、埋め込みに Amazon OpenSearch Serverless を使用し、Serverless ベクトルインデックス同期するデータソースに Amazon S3 を使用します。 OpenSearch  

OpenSearch Serverless ベクトルストアに強力な認証と認可を実装します。ユーザーとロールに必要なアクセス許可のみを付与する最小特権の原則を実装します。 

OpenSearch Serverless のデータアクセスコントロールを使用すると、アクセスメカニズムやネットワークソースに関係なく、ユーザーがコレクションやインデックスにアクセスできるようになります。コレクションとインデックスリソースに適用されるデータアクセスポリシーを使用してアクセス許可を管理します。このパターンを使用する場合は、アプリケーションがユーザーのアイデンティティをナレッジベースに伝達し、ナレッジベースがロールまたは属性ベースのアクセスコントロールを適用することを確認します。これは、最小特権の原則ナレッジベースサービスロールを設定し、ロールへのアクセスを厳密に制御することで実現されます。 

OpenSearch Serverless は、AWS KMS によるサーバー側の暗号化をサポートし、保管中のデータを保護します。カスタマーマネージドキーを使用して、そのデータを暗号化します。データソースの取り込み中に一時的なデータストレージ用の AWS KMS キーを作成できるようにするには、Amazon Bedrock サービスロールのナレッジベースにポリシーをアタッチします。 

プライベートアクセスは、サーバーレスマネージド VPC エンドポイントと Amazon Bedrock などのサポートされている AWS サービスのいずれか OpenSearchまたは両方に適用できます。AWS PrivateLink を使用して、VPC と OpenSearch Serverless エンドポイントサービス間のプライベート接続を作成します。ネットワークポリシールールを使用して Amazon Bedrock アクセスを指定します。

未加工データを収集し、ほぼリアルタイムの読み取り可能なメトリクスに処理する Amazon を使用して CloudWatch OpenSearch サーバーレスをモニタリングします。 OpenSearch サーバーレスは、イベントとして OpenSearch サーバーレスの API コールをキャプチャする AWS CloudTrailと統合されています。 OpenSearch サービスは Amazon EventBridge と統合され、ドメインに影響する特定のイベントを通知します。サードパーティーの監査者は、複数の AWS コンプライアンスプログラムの一環として OpenSearch サーバーレスのセキュリティとコンプライアンスを評価できます。

Amazon S3

ナレッジベースのデータソースを S3 バケットに保存します。カスタム AWS KMS キー (推奨) を使用して Amazon S3 でデータソースを暗号化した場合は、ナレッジベースのサービスロール ポリシーをアタッチします。  Amazon S3 のマルウェア保護を使用して、ファイルをデータソースにアップロードする前に悪意のあるコンテンツがないかスキャンします。また、モデル呼び出しログと一般的に使用されるプロンプトを Amazon S3 のプロンプトストアとしてホストすることをお勧めします。すべてのバケットは、カスタマーマネージドキーで暗号化する必要があります。ネットワークセキュリティを強化するために、VPC 環境がアクセスするように設定されている S3 バケットのゲートウェイエンドポイントを作成できます。アクセスはログに記録し、モニタリングする必要があります。Amazon S3 オブジェクトの履歴を保持する必要がある場合は、Enableversioning を使用します。Amazon S3 オブジェクトロック でオブジェクトレベルのイミュータビリティを適用します。リソースベースのポリシーを使用して、Amazon S3 ファイルへのアクセスをより厳密に制御できます。 

Amazon Comprehend

Amazon Comprehend は、自然言語処理 (NLP) を使用してドキュメントのコンテンツからインサイトを抽出します。Amazon Comprehend を使用して、英語またはスペイン語のテキストドキュメント内の PII エンティティを検出および編集できます。Amazon Comprehend をデータ取り込みパイプラインに統合して、RAG ナレッジベースでインデックスを作成する前にドキュメントから PII エンティティを自動的に検出および編集し、コンプライアンスを確保し、ユーザーのプライバシーを保護します。ドキュメントタイプに応じて、Amazon Textract を使用してテキストを抽出し、AWS Comprehend に送信して分析と編集を行うことができます。

Amazon S3 では、テキスト分析、トピックモデリング、またはカスタム Amazon Comprehend ジョブを作成するときに、入力ドキュメントを暗号化できます。Amazon Comprehend は AWS KMS と統合して、Start* ジョブと Create* ジョブのストレージボリューム内のデータを暗号化し、カスタマーマネージドキーを使用して Start* ジョブの出力結果を暗号化します。リソースポリシーで aws:SourceArn and aws:SourceAccount global 条件コンテキストキーを使用して、Amazon Comprehend がリソースに別のサービスに付与するアクセス許可を制限することをお勧めします。AWS PrivateLink を使用して、VPC と Amazon Comprehend エンドポイントサービス間にプライベート接続を作成します。 https://docs.aws.amazon.com/comprehend/latest/dg/cross-service-confused-deputy-prevention.html最小特権の原則を使用して Amazon Comprehend のアイデンティティベースのポリシーを実装します。Amazon Comprehend は、Amazon Comprehend の API コールをイベントとしてキャプチャする AWS CloudTrail と統合されています。 Amazon Comprehend サードパーティーの監査者は、複数の AWS コンプライアンスプログラムの一環として Amazon Comprehend のセキュリティとコンプライアンスを評価できます。 https://docs.aws.amazon.com/comprehend/latest/dg/comp-compliance.html

Amazon Macie

Macie は、データソース、モデル呼び出しログ、プロンプトストアとして S3 バケットに保存されているナレッジベース内の機密データを識別するのに役立ちます。Macie セキュリティのベストプラクティスについては、このガイダンスの前半の Macie セクションを参照してください。 

AWS KMS

カスタマーマネージドキーを使用して、ナレッジベースのデータインジェストジョブAmazon OpenSearch Service ベクトルデータベース、ナレッジベースのクエリからのレスポンスを生成するセッションAmazon S3 のモデル呼び出しログ、データソースをホストする S3 バケットを暗号化します。 

前のモデル推論セクションで説明した CloudTrail ように、Amazon CloudWatch と Amazon を使用します。