安全性考量

範圍:本文件涵蓋與 Oracle AI Agent Memory Python SDK 相關的安全考量。它僅適用於使用 SDK 的主動記憶體功能或儲存層的應用程式。

重要原因:Oracle AI Agent Memory 可將執行緒內容、影像及記憶體記錄保留在 Oracle AI Database 中,並在啟用 LLM 備份功能時,將內容傳送至已設定的模型端點以產生影像描述、摘要、記憶體擷取或內嵌。因此,安全部署取決於對應用程式資料、擷取範圍、資料庫存取、外部模型端點和保留原則的謹慎處理。

LLM 備份記憶體處理的考量

Oracle AI Agent Memory 支援主動記憶體功能,例如產生影像描述、執行緒摘要及自動擷取記憶體。啟用這些功能時,SDK 可以將影像位元組、最近的訊息、繫線摘要、擷取的記憶體,或搜尋文字傳送至設定的 LLM 或內嵌端點。請參閱使用影像和多重模型訊息,瞭解決定何時將影像位元組傳送至已設定的 LLM 的影像描述和擷取模式。

重要事項:請只將內容傳送至適用於已設定模型端點和部署原則的 Oracle AI Agent Memory。如果對似乎包含加密密碼、證明資料或不必要的機密資料的資料啟用 active-memory,則在訊息進入記憶體管線之前,請將該內容最小化或隱匿。將擷取的記憶體、摘要、相關資訊環境卡和其他模型衍生文字視為不受信任的輸出,必須由整合應用程式安全複查及處理。

警告:模型衍生文字可能會變成永久記憶體狀態。啟用自動擷取、摘要或相關資訊環境卡功能時,SDK 可以將摘要、擷取的記憶體或擷取的記錄插入後續提示中,例如記憶體擷取、摘要、相關資訊環境卡或代理程式提示,然後應用程式才能複查特定的中間值。將此視為一般不受信任的 LLM 資料流程:複查並驗證應用程式使用的輸出,且不要讓記憶體衍生的內容授權授權授權授權動作或略過原則。

使用主動記憶體功能時,請遵循下列建議:

持續性與資料最小化的考量

Oracle AI Agent Memory 的設計是在使用資料庫備份存放區時,將訊息、記憶體、描述資料及內嵌項目保留在 Oracle AI Database 中。這可允許持久的擷取和跨階段作業記憶體,但也表示應用程式應規劃適合保留的資料。

下列指引有助於確保部署符合安全的資料處理實務:

擷取範圍和存取控制的考量

Oracle AI Agent Memory 會使用呼叫程式提供的 user_id、agent_id 和 thread_id 值來擷取範圍。這是一個強大的篩選模型,但當決定如何使用或顯示擷取的內容時,不應該是應用程式唯一依賴的控制項。

依照預設,繫線範圍擷取會使用 user_id 和 agent_id 的完全相符項目,以及 thread_id 的更廣泛相符項目,因此相關結果可以跨相同使用者代理程式組的過去繫線。最上層 OracleAgentMemory.search() 和 search_async() 呼叫也需要明確的使用者範圍設定,以及完全符合的使用者。它們會拒絕省略的使用者範圍和 exact_user_match=False,因此公用從屬端 API 不會意外搜尋多個使用者。只允許在完全相符的使用者和目標只有未作用領域記錄時傳送 user_id=None。

設計擷取時,請運用下列課堂練習:

對於資料庫強制的一般使用者授權,Oracle 代理程式記憶體也會顯示與 Oracle Deep Data Security 的整合。這是以資料庫資料角色、資料授予和一般使用者安全相關資訊環境為基礎的獨特安全功能。請先複查深資料安全性 API 和安全性參考,再授予原則或使用共用程式實際執行連線集區。該頁面還記錄了「統一稽核」,以及資料庫原則撤銷和 OCI IAM 群組成員變更的不同有效時間。

應用程式整合與呼叫者信任的考量

整合應用程式或其他受信任的後端程式碼 (而非由一般使用者直接呼叫) Oracle AI Agent Memory。它不是一般使用者方面的安全界限,而且不會自行執行一般使用者認證或授權。套裝軟體信任呼叫程式為每個作業提供正確的 user_id、agent_id、thread_id 以及擷取範圍。

重要事項:整合應用程式負責驗證一般使用者、授權存取,以及在呼叫 Oracle AI Agent Memory API 之前衍生正確的 user_id 和範圍。呼叫者提供的 user_id 為範圍值,而非識別證明。

將 SDK 整合至代理應用程式時,請使用下列實務:

記錄與診斷的考量

Oracle AI Agent Memory 使用標準的 Python 記錄日誌,而且不會設定整合應用程式的應用程式日誌處理程式或日誌層次。應用程式可以啟用 oracleagentmemory 日誌記錄器,並透過現有的日誌記錄組態遞送 SDK 日誌。

使用 SDK 日誌時,請使用下列課堂練習:

資料庫存取、綱要管理以及加密密碼的考量

Oracle AI Agent Memory 使用由來電者提供的 Oracle AI Database 連線或集區。套裝程式不會建立或管理資料庫證明資料本身。它也不會代表呼叫程式建立、交涉或升級資料庫網路加密。

重要事項:生產代碼應將已啟用 TLS 的 Oracle AI Database 連線或集區傳送至 Oracle AI Agent Memory。SDK 會依現狀使用呼叫程式提供的連線或集區,且不會升級純文字 DSN。請勿在不受信任、共用或外部網路之間使用純文字資料庫連線。使用 python-oracledb 時,請遵循 Securely Encrypting Network Traffic to Oracle AI Database 官方小節,並在建立連線或集區時設定 TLS 或其他核准的加密傳輸。

重要事項:請勿將 API 金鑰、密碼或其他加密密碼直接內嵌至應用程式程式碼、存入組態或匯出的使用者自建物件中。請一律使用安全注入機制,並遵循最低權限原則以進行證明資料存取。

建議使用下列部署實務:

網路通訊和外部端點的考量

部署設定遠端 LLM 或內嵌提供者時,Oracle AI Agent Memory 可以與外部服務通訊。SDK 會透過設定的從屬端路徑轉寄提示和要求參數,但周圍的應用程式和部署仍需負責保護這些連線。

我們建議您:

關於資源耗盡向量的考量

記憶體工作流程可以隨著時間增加資料庫使用量、嵌入流量和 LLM 權杖使用量。這既適用於惡意過度使用,也適用於無辜的實作錯誤,例如過大訊息或過度廣泛的擷取模式。

使用這些控制項作為生產強化的一部分:

建議的 Oracle Deep Data Security 部署

Oracle Deep Data Security (Deep Sec) 可在資料庫中強制執行代理程式記憶體列和欄限制,例如允許一般使用者只讀取和寫入包含自己 user_id 的列。UserOwnRowsDeepDataSecurityPolicy 原則也會防止一般使用者在插入後更新所有權和識別資料欄;請參閱深資料安全性以瞭解每個表格的確切權限。

若要在最完整程度上使用此安全功能,建議針對每個安全責任使用個別的資料庫使用者,讓應用程式在沒有一般使用者相關資訊環境時,無任何授權的備用。

我們建議在生產中分離下列帳戶:

針對每個一般使用者要求,認證 OAM sdk 以外的使用者、取得一個應用程式集區連線、附加該使用者的一般使用者安全相關資訊環境,以及透過該連線執行「代理程式記憶體」作業。將連線釋出到集區之前,請先清除相關資訊環境。相關資訊環境屬於一個實體資料庫階段作業;它不能重複用於另一個使用者。Oracle Deep Sec end-user security context lifecycle documentation 說明相應的附件、取代及發行行為。

除非資料庫驅動程式設定為在每個取得的連線附加目前要求的一般使用者相關資訊環境,否則請勿將一般應用程式集區直接傳遞至「代理程式記憶體」執行處理。否則,SDK 作業可以借用沒有相關資訊環境的階段作業,或是使用錯誤的要求相關資訊環境。請改為取得並設定應用程式中的連線,然後將該相關資訊環境控制連線傳遞至要求範圍的「代理程式記憶體」元件。

讀取或寫入使用者擁有之記錄的背景或延遲工作需要相同的保護。在工作完成之前,將授權的連線及其一般使用者相關資訊環境保持有效,或安排工作者取得新連線並附加正確認證的使用者相關資訊環境。絕對不要透過綱要擁有者執行此工作,只略過遺漏的一般使用者相關資訊環境。