功能 2。為生成式 AI RAG 技術提供安全存取、使用和實作 - AWS 規範指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

功能 2。為生成式 AI RAG 技術提供安全存取、使用和實作

下圖說明適用於擷取擴增產生 (RAG) 功能之生成 AI 帳戶的建議 AWS 服務。此案例的範圍是保護 RAG 功能。

RAG 功能的生成式 AI 帳戶建議使用的 AWS 服務

生成式 AI 帳戶包含將內嵌儲存在向量資料庫中、儲存使用者對話、維護提示存放區以及一組必要的安全服務以實作安全防護和集中式安全控管所需的服務。您應該在 Amazon S3 中為 VPC 環境設定為存取的模型調用日誌、提示存放區和知識庫資料來源儲存貯體建立 Amazon S3 閘道端點。您也應該為 VPC 環境設定為存取的 CloudWatch 日誌建立 CloudWatch Logs 閘道端點。 CloudWatch

理由

擷取增強生成 (RAG) 是一種生成式 AI 技術,用於系統在產生答案之前,透過從外部權威知識庫擷取資訊來增強其回應。此程序可讓 FM 存取up-to-date和特定內容的資料,藉此改善所產生回應的準確性和相關性,進而協助克服 FMs 的限制。此使用案例是指生成式 AI 安全範圍矩陣的範圍 3。在範圍 3 中,您的組織會使用預先訓練的 FM 來建置生成式 AI 應用程式,例如 Amazon Bedrock 中提供的 FM。在此範圍內,您可以控制應用程式和應用程式使用的任何客戶資料,而 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 文件》中的知識庫資源加密

身分與存取管理

遵循最低權限原則,為 Amazon Bedrock 的知識庫建立自訂服務角色。建立信任關係,允許 Amazon Bedrock 擔任此角色,並建立和管理知識庫。將下列身分政策連接至自訂知識庫服務角色: 

知識庫支援安全組態,為您的知識庫設定資料存取政策,並為私有 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 OpenSearch Serverless

Amazon OpenSearch Serverless 是 Amazon OpenSearch Service 的隨需自動擴展組態。OpenSearch Serverless 集合是 OpenSearch 叢集,會根據您應用程式的需求調整運算容量。Amazon Bedrock 知識庫使用 Amazon OpenSearch Serverless 進行內嵌,並將 Amazon S3 用於與 OpenSearch Serverless 向量索引同步資料來源。 

為您的 OpenSearch Serverless 向量存放區實作強大的身分驗證和授權。實作最低權限原則,只授予使用者和角色必要的許可。 

透過 OpenSearch Serverless 中的資料存取控制,您可以允許使用者存取集合和索引,無論其存取機制或網路來源為何。您可以透過適用於集合和索引資源的資料存取政策來管理存取許可。當您使用此模式時,請確認應用程式會將使用者身分傳播到知識庫,而知識庫會強制執行您的角色或屬性型存取控制。這是透過設定知識庫服務角色,以最低權限原則並嚴格控制對角色的存取來達成。 

OpenSearch Serverless 支援使用 AWS KMS 的伺服器端加密,以保護靜態資料。使用客戶受管金鑰來加密該資料。若要允許在擷取資料來源的過程中建立用於暫時性資料儲存的 AWS KMS 金鑰,請將政策連接至 Amazon Bedrock 服務角色的知識庫。 

私有存取可以套用到下列其中一項或兩項:OpenSearch Serverless 受管 VPC 端點和支援的 AWS 服務,例如 Amazon Bedrock。使用 AWS PrivateLink 在 VPC 和 OpenSearch Serverless 端點服務之間建立私有連線。使用網路政策規則來指定 Amazon Bedrock 存取。

使用 Amazon CloudWatch 監控 OpenSearch Serverless,它會收集原始資料並將其處理為可讀且近乎即時的指標。  OpenSearch Serverless 與 AWS CloudTrail 整合,可將 OpenSearch Serverless 的 API 呼叫擷取為事件。  OpenSearch Service 與 Amazon EventBridge 整合,以通知您影響網域的特定事件。第三方稽核人員可以在多個 AWS 合規計畫中評估 OpenSearch Serverless 的安全性和合規性。

Amazon Simple Storage Service (Amazon S3)

將知識庫的資料來源存放在 S3 儲存貯體中。如果您使用自訂 AWS KMS 金鑰 (建議) 加密 Amazon S3 中的資料來源,請將政策連接至您的知識庫服務角色。  使用 Amazon S3 中的惡意軟體保護,在將檔案上傳至資料來源之前掃描惡意內容。我們也建議您託管模型調用日誌和常用提示,做為 Amazon S3 中的提示存放區。所有儲存貯體都應使用客戶受管金鑰加密。如需其他網路安全強化,您可以為設定 VPC 環境存取的 S3 儲存貯體建立閘道端點https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html存取應記錄並監控。啟用版本控制如果您有業務需要保留 Amazon S3 物件的歷史記錄。使用 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 和 aws:SourceAccount 全域條件內容金鑰,以限制 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 整合,AWS CloudTrail 會將 Amazon Comprehend 的 API 呼叫擷取為事件。第三方稽核人員可以在多個 AWS 合規計畫中評估 Amazon Comprehend 的安全性和合規性。 https://docs.aws.amazon.com/comprehend/latest/dg/comp-compliance.html

Amazon Macie

Macie 可協助識別知識庫中存放為資料來源、模型調用日誌和 S3 儲存貯體中的提示存放區的敏感資料。如需 Macie 安全最佳實務,請參閱本指南前面的 Macie 一節。 S3  

AWS KMS

使用客戶受管金鑰加密下列項目:知識庫的資料擷取任務Amazon OpenSearch Service 向量資料庫、您透過查詢知識庫產生回應的工作階段Amazon S3 中的模型調用日誌,以及託管資料來源的 S3 儲存貯體。 

使用 Amazon CloudWatch 和 Amazon CloudTrail,如上一個模型推論一節所述。