View a markdown version of this page

步驟 4:部署後組態 - AWS 上的生成式 AI 應用程式建置器

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

步驟 4:部署後組態

本節提供部署後設定解決方案的建議。

Amazon S3 儲存貯體版本控制、生命週期政策和跨區域複寫

此解決方案不會在其建立的儲存貯體上強制執行生命週期組態。我們建議下列作法:

Amazon DynamoDB 備份

此解決方案將 DynamoDB 用於多種用途 (請參閱此解決方案中的 AWS 服務)。解決方案不會為其建立的資料表啟用備份。建議您為生產部署建立此功能的備份。如需詳細資訊,請參閱備份 DynamoDB 資料表使用 DynamoDB 的 AWS Backup

Amazon CloudWatch 儀表板和警示

解決方案會在 CloudWatch 中部署自訂儀表板,以轉譯自訂發佈指標和 AWS 服務指標的圖表。我們建議您建立 CloudWatch 警示,並根據部署解決方案的使用案例新增通知。

Amazon CloudWatch Logs

Lambda 日誌設定為永不過期,而 API Gateway 日誌設定為過期 10 年。您可以更新個別日誌群組的到期時間,以符合企業的記錄保留政策。

具有 TLS v1.2 或更新版本憑證的自訂 Web 網域

解決方案使用 CloudFront 部署 Web UI 和 Edge Optimized API Gateway。CloudFront 的網域不會強制執行 TLS v1.2 或更高版本的憑證。我們建議您使用 Amazon Route 53 建立自訂網域、使用 AWS Certificate Manager 建立憑證,或如果您的組織有現有憑證,請使用現有憑證。

如需其他詳細資訊,請參閱 Amazon Route 53 開發人員指南,並在 API Gateway 中選擇自訂網域的最低 TLS 版本

使用 Amazon Kendra 擴展

此解決方案可讓您使用 Amazon Kendra 跨擷取的文件執行 NLP 支援的智慧型搜尋。對於較大的工作負載,您可以使用下列 CloudFormation 參數來增加 Amazon Kendra 的容量:

參數 預設 Description

Amazon Kendra 額外查詢容量

0

索引的額外查詢容量和 GetQuerySuggestions 容量。索引的額外容量單位每天提供大約 8,000 個查詢。

Amazon Kendra 額外儲存容量

0

索引的額外儲存容量數量。單一容量單位提供 30 GB 的儲存空間或 100,000 個文件,以先達到者為準。

Amazon Kendra 版本

Developer

Amazon Kendra 提供開發人員和企業版本來建立索引。如需 Amazon Kendra 版本之間差異的詳細資訊,請參閱 Amazon Kendra 定價

若要修改這些 CloudFormation 參數的值,請在堆疊部署時選取適當的值。如需查詢和儲存容量單位的詳細資訊,請參閱調整容量

注意

如果未在啟用 RAG 的情況下部署文字使用案例,則不會使用或建立 Amazon Kendra 索引。

使用 Idp 聯合設定 SSO

此解決方案允許與支援 SAML 或 OIDC 型聯合身分的外部身分提供者整合。當解決方案部署時,它會為部署儀表板和個別使用案例建立 Amazon Cognito 使用者集區和個別應用程式用戶端整合。根據外部 Idp,請遵循 Amazon Cognito 開發人員指南中為使用者集區設定身分提供者一節中提供的步驟,然後選擇部署儀表板的應用程式用戶端整合,或您想要使用的使用案例來設定 SSO。

若要將使用者群組資訊傳遞至 RAG 架構中的知識庫或向量存放區,您需要將使用者群組從外部 Idp 映射至 Amazon Cognito 使用者群組。解決方案提供初始的堆疊 Lambda 函數觸發條件,以對應權杖產生前階段。Lambda 函數具有 group_mapping.json 檔案,必須更新以提供群組映射。請參閱使用 Amazon Cognito 支援的 Lambda 觸發條件的 Lambda 觸發條件自訂使用者集區工作流程。 Amazon Cognito

手動使用者集區組態

如果您選擇在部署期間不傳遞管理員或預設使用者電子郵件,則必須在 Amazon Cognito 中手動建立適當的使用者群組,以確保正確的許可:

  1. 在部署儀表板中,在您的 Cognito 使用者集區Admin中建立名為 的群組。

  2. 對於每個使用案例,在您的 Cognito 使用者集${UseCaseName}-Users區中建立名為 的群組,其中 ${UseCaseName}是您部署的使用案例的名稱。

這些群組是授權機制正常運作的必要項目。您想要授予存取權的任何使用者都必須新增至適當的群組。

如果傳遞 placeholder@example.com ,將會建立 Cognito 群組,但您仍然必須建立相關聯的使用者,並將其指派給群組。

自訂登入畫面

此解決方案使用 Amazon Cognito 託管 UI 轉譯登入頁面。若要自訂內建登入頁面,請參閱《Amazon Cognito 開發人員指南》中的自訂內建登入和註冊網頁

其他安全考慮事項

根據您部署解決方案的使用案例,檢閱下列安全建議:

  • 客戶受管 AWS KMS 加密金鑰 - 解決方案預設使用 AWS 受管 AWS KMS 金鑰,因為這些金鑰無需額外費用。檢閱您的使用案例,判斷您是否應該更新解決方案以使用客戶受管的 AWS KMS 金鑰

  • API Gateway 限流規則 - 解決方案會使用 API Gateway 上的預設限流規則進行部署。根據您的使用案例和預期的交易量,我們建議您為 APIs 設定限流。如需詳細資訊,請參閱《Amazon API Gateway API Gateway 開發人員指南》中的調節 API 請求以提高輸送量

  • 啟用 AWS CloudTrail - 作為建議的安全實務,請考慮在部署解決方案的 AWS 帳戶中啟用 AWS CloudTrail,以在 AWS 帳戶中記錄 API 呼叫。如需詳細資訊,請參閱 AWS CloudTrail 使用者指南

  • 偏離偵測 - 我們建議在 CloudFormation 堆疊上設定偏離偵測,以識別已部署解決方案堆疊的意外或惡意變更並收到通知。如需詳細資訊,請參閱實作警示以自動偵測 AWS CloudFormation 堆疊中的偏離

  • Cognito JSON Web Token JWTs) - 解決方案使用 Amazon Cognito 發行JWTs 來驗證 REST API 端點。我們針對 ID 字符存取字符設定了五分鐘到期的解決方案。當使用者登出時,其產生新權杖的能力會遭到撤銷 (重新整理權杖會遭到撤銷)。不過,在目前權杖過期之前,對 API 端點的任何請求都將成功驗證,因為它們具有有效的權杖。檢閱使用案例的安全考量,並調整字符有效期間。

自訂生命週期政策:

對於生產部署,請根據您的保留需求檢閱和調整生命週期政策。請參閱《Amazon Simple Storage Service 使用者指南》中的在儲存貯體上設定生命週期組態

多模式檔案儲存和生命週期

如果您為使用案例啟用多模式輸入功能 (MultimodalEnabled 設定為 Yes),解決方案會建立 Amazon S3 儲存貯體來存放上傳的檔案,並建立 DynamoDB 資料表來追蹤檔案中繼資料。

預設生命週期政策:

  • S3 檔案:48 小時後自動刪除

  • DynamoDB 中繼資料:記錄會在 24 小時後過期 (對話歷史記錄 TTL)

安全考量:

  • 檔案會依使用案例 ID、使用者 ID、對話 ID 和訊息 ID 進行分割,而檔案會以 UUID 名稱儲存。UUID 與檔案名稱的映射可在 DynamoDB 中繼資料資料表中找到

  • 使用者只能存取自己對話中上傳的檔案

  • 使用魔術數字偵測執行檔案類型驗證

  • 我們建議啟用 Amazon GuardDuty Malware Protection for S3 掃描上傳的檔案是否有惡意內容