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

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

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

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

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

Generative 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 は選択したAWSKMSキーを暗号化のために 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ブログ記事Amazon S3 のアンチウイルスを使用したデータ取り込みパイプラインへのマルウェアスキャンの統合」を参照してください。

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

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

推奨AWSサービス

Amazon OpenSearchServerless

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

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

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

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

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

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

Amazon S3

ナレッジベースのデータソースを S3 バケットに保存します。カスタムAWSKMSキー (推奨) を使用して 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 は と統合AWSKMSして、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 は と統合されておりAWS CloudTrail、Amazon Comprehend のAPI呼び出しをイベントとしてキャプチャします。サードパーティーの監査者は、複数のコンプライアンスプログラムの一環として Amazon Comprehend のセキュリティとコンプライアンスを評価できます。 AWS

Amazon Macie

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

AWS KMS 

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

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