附註:

將 Oracle Database 稽核日誌從 Oracle Data Safe 匯出至 OCI 日誌記錄

簡介

Oracle Data Safe 是完全整合的雲端服務,著重於資料的安全性。它提供一組完整的整合式功能,可保護 Oracle Database 中的機密資料和受規範資料。功能包括安全評估、使用者評估、資料尋找、資料遮罩及活動稽核。

Oracle Cloud Infrastructure (OCI) 日誌記錄服務可為租用戶中的所有日誌提供可高度擴展且完全受管理的單一介面。使用日誌記錄從您的所有 OCI 資源存取日誌,並啟用、管理及搜尋日誌。

OCI Functions 是一款完全託管的多租用戶,可高度擴展,可隨選函數即服務平台。它是以企業級 OCI 為基礎,由 Fn 專案開源引擎提供技術支援。

目標

必要條件

部署環境之前,必須先滿足下列需求。

注意:為了簡化部署,建議您使用此處提供的 Terraform 命令檔,透過 OCI Resource Manager 進行部署。

先決條件 1:在 Oracle Data Safe 中註冊並設定資料庫

建立參照架構之前,必須先將 Oracle Data Safe 設定為從要監督的 Oracle 資料庫接收稽核事件。

在本教學課程中,我們將在先前建立的 OCI 租用戶的 Oracle Autonomous Database 中設定 Oracle Data Safe。不過,可以在數個不同的環境中 (內部部署、執行處理等) 設定 Oracle 資料庫稽核。如需有關設定 Oracle Data Safe 之可能案例的詳細資訊,請參閱資料安全

您可以在資料庫服務頁面或透過 OCI 主控台,直接設定 Oracle Autonomous Database 稽核。我們將透過 OCI 主控台進行這項作業。

  1. 移至 OCI 主控台,按一下 Oracle Database ,然後按一下資料安全 - 資料庫安全

    OCI 主控台

  2. 若要註冊資料庫,請按一下目標資料庫,然後選取要註冊資料庫的區間,然後按一下註冊資料庫

    在資料安全註冊資料庫

  3. 在「資料安全」組態頁面中,輸入下列詳細資訊,然後按一下註冊,然後等待組態完成。

    • 資料庫類型:選取要設定的資料庫類型。在本教學課程中,類型為 Autonomous Database 。如需有關支援之 Oracle Database 類型的詳細資訊,請參閱支援的目標資料庫

    • 選取 < 區間中的資料庫 >: 選取將由 Oracle Data Safe 監督的資料庫。

    • 描述: 選擇性:可以輸入在 Oracle Data Safe 中註冊資料庫的描述。

    • 區間: 選取將進行 Oracle Data Safe 註冊的區間。

    註冊資料庫工作流程

    如需有關設定 Oracle Data Safe 的詳細資訊,請依照 Oracle Live Labs 入口網站上開始使用 Oracle Data Safe 基礎的逐步指示操作。

先決條件 2:設定 OCI 登錄使用者

若要視需要建立環境,必須授權 OCI IAM 使用者在 OCI 登錄內推送映像檔。此使用者將提供用於自動收集「資料安全」日誌的功能映像檔,因此需要正確的 OCI 登錄權限。根據建立環境的需求,設定 OCI IAM 使用者對 OCI 登錄的存取證明資料。

  1. 請以將存取 OCI 登錄的使用者登入 OCI 主控台,然後按一下我的設定檔

    存取使用者設定檔

  2. 在使用者詳細資訊視窗中,按一下 Auth 權杖,然後按一下產生權杖

    存取使用者「認證權杖」功能表

  3. 輸入所建立之記號的描述,然後按一下產生記號

    產生權杖

    系統將會產生您的認證權杖。請注意認證權杖,因為它將作為設定 OCI 資源管理程式內堆疊的參數。

注意:將用來建立及使用 OCI 登錄的使用者不一定要是將透過 OCI 資源管理程式部署基礎架構的使用者。在部署期間,會要求將存取登錄之使用者的使用者名稱和認證記號資訊。

先決條件 3:建立 OCI IAM 原則以存取 OCI 登錄

若要讓 OCI IAM 使用者能夠存取 OCI 登錄服務,必須允許使用者管理將建立環境之區間中的儲存區域,或使用最低權限原則,使用者必須能夠更新區間的儲存區域。因此,請套用下方兩個選項中的其中一個,以設定 OCI 登錄的存取權。

先決條件 4:架構部署的 OCI IAM 原則

根據提供的文件,將部署此基礎架構的使用者必須具備下列 OCI 服務的管理權限:IAM 原則、動態群組、VCN、服務閘道、路由表、安全清單、子網路、函數、監控警示及通知。

方法 1:使用 OCI 資源管理程式透過 Terraform 部署

若要透過 Oracle Data Safe 導入可擴展資料庫稽核日誌收集的參考架構,請使用 OCI IAM 使用者存取 OCI 主控台,以及其群組具有先前通知之必要權限的 fn-datasafe-dbaudit-to-oci-logging GitHub 儲存區域中提供的 Terraform。根據儲存區域中提供的文件,可以透過 OCI Resource Manager 或 Terraform CLI 安裝解決方案。

注意:為了簡化環境的部署,建議您透過 OCI Resource Manager 進行部署。

  1. 若要自動安裝並設定日誌收集的參照架構,請以將用於部署的使用者登入租用戶 OCI 主控台,然後選取要安裝環境的區域。

    區域

    在另一個頁籤中,存取 GitHub 上的儲存區域頁面,此處提供: fn-datasafe-dbaudit-to-oci-logging

    Oracle GIT 儲存區域

  2. 租用戶 OCI 主控台和 GitHub 儲存區域頁面開啟之後,請向下捲動儲存區域頁面至使用 OCI 資源管理程式部署段落,若要開始安裝,請按一下部署至 Oracle Cloud

    使用 OCI 資源管理程式部署

  3. OCI 資源管理程式頁面將在 OCI 主控台內開啟。輸入下列資訊,然後按一下下一步

    • Oracle 使用條款:閱讀並選取我已複查並接受 Oracle 使用條款方塊。
    • 名稱:可選,提供識別環境安裝的名稱。
    • 在區間中建立: 選取將建立環境的區間。

    填入下列資訊

  4. 在下一個視窗中,輸入下列資訊,然後按一下下一個

    • OCIR 使用者名稱:輸入用來建置基礎架構的使用者名稱 (使用者必須具備建立影像並將影像上傳至儲存區域的權限)。
    • OCIR 使用者密碼:輸入先前在先決條件中建立的認證權杖。
    • 建置模式:輸入建立環境的方式。在此情況下,我們將使用 test
    • VCN CIDR: 輸入要為部署環境建立之 VCN 的 CIDR。此為選用項目,可視需要加以變更。

    填入下列資訊

  5. 在下一頁中,按一下建立以建立架構,並等待 OCI 資源管理程式建立環境。

    檢查資訊並按一下「建立」

方法 2:使用 OCI 主控台透過 Terraform 部署

必須遵循特定且有序的逐步程序,才能透過 OCI 主控台執行手動部署。若要開始,請選取要在其中建立環境的區間。在此區間中建立新的 VCN (或使用現有的 VCN)。

作業 1:建立 VCN 和子網路

  1. 若要建立環境的 VCN,請前往 OCI 主控台,然後瀏覽至網路虛擬雲端網路

    建立 VCN

  2. 選取將建立 VCN 的區間,然後按一下啟動 VCN 精靈

    啟動 VCN 精靈

  3. 在精靈頁面中,選取使用網際網路連線建立 VCN ,然後按一下啟動 VCN 精靈

    啟動 VCN 精靈

  4. 建立具備網際網路連線的 VCN 頁面中,輸入下列資訊以建立 VCN。

    • VCN 名稱:填寫要建立的 VCN 名稱。
    • 區間:選取要在其中建立 VCN 的區間。
    • VCN IPv4 CIDR 區塊: 請輸入想要的 VCN CIDR,或是使用工具已填入的 CIDR。
    • 公用子網路 IPv4 CIDR 區塊: 輸入想要的公用子網路 CIDR,或使用已經自動填入的 CIDR。
    • 專用子網路 IPv4 CIDR 區塊: 請輸入想要的專用子網路 CIDR,或是使用已經自動填入的 CIDR。

    填入下列資訊

    填入下列資訊

  5. 下一步,然後等待 VCN 建立。

    等待建立 VCN

作業 2:建立 OCI 登錄儲存區域

此服務將代管將收集「資料安全」稽核日誌的 Python 函數映像檔。

  1. 前往 OCI 主控台,然後瀏覽至開發人員服務容器登錄

    存取容器登錄服務

  2. 在「容器登錄」服務頁面中,選取要在其中建立容器登錄的區間,然後按一下建立儲存區域

    建立儲存區域

  3. 輸入建立儲存區域的必要資訊,然後按一下建立

    • 在區間中建立:選取將在其中建立儲存區域的區間。
    • 存取:選取 private,如此即為專用儲存區域 (無法透過網際網路存取)。
    • 儲存庫名稱:輸入要指派給儲存庫的名稱。

    建立儲存區域

    建立完成後,儲存區域即可檢視其詳細資訊。

    填入下列資訊

    注意:請注意,為儲存區域建立的命名空間。此命名空間將在稍後的作業中使用。

作業 3:建立 OCI 儲存桶以控制訊號

如建議環境的拓樸所示,必須建立 OCI 儲存桶以接收用於控制函數程式碼執行之文字檔。此儲存桶的名稱將用於 OCI 函數的組態,以及要為環境設定的原則中。

  1. 若要建立儲存桶,請前往 OCI 主控台,然後按一下儲存 儲存桶

    存取儲存桶服務

  2. 選取區間並按一下建立儲存桶

    建立儲存桶

  3. 輸入分組名稱,然後按一下建立

    填入下列資訊

    注意:請注意儲存桶的名稱,建立原則及設定 OCI 函數時將會使用此儲存桶。

作業 4:建立自訂日誌

從 Oracle Data Safe 收集的日誌目的地必須是 OCI 日誌記錄群組,其中將包含專為接收從受監督資料庫擷取之稽核記錄而建立的自訂日誌。

  1. 前往 OCI 主控台,瀏覽至可觀測性與管理,然後按一下日誌群組

    存取日誌群組服務

  2. 將會建立日誌群組來存放 OCI 函數所使用的自訂日誌。選取將建立日誌群組的區間,然後按一下建立日誌群組

    建立日誌群組

  3. 輸入下列資訊,然後按一下建立來建立日誌群組。

    • 名稱:輸入日誌群組的名稱。
    • 描述:輸入日誌群組的描述。

    填入下列資訊

  4. 按一下日誌,然後按一下建立自訂日誌

    建立自訂日誌

  5. 輸入下列資訊以建立將從 Oracle Data Safe 監督之資料庫接收稽核日誌的自訂日誌,然後按一下建立自訂日誌

    • 自訂日誌名稱:輸入自訂日誌的名稱。
    • 區間:選取要建立自訂日誌的區間。
    • 日誌群組:選取剛在上述步驟中建立的日誌群組。

    填入下列資訊

    注意:將不會建立代理程式組態。

  6. 自訂日誌建立頁面是一個也允許建立代理程式組態的工作流程。在此情況下,我們將不會建立代理程式組態。因此,按一下取消 (Cancel)

    不要建立「代理程式組態」

    將會再次載入日誌群組頁面,並包含已建立的自訂日誌。

    注意:請注意,設定 OCI 函數時將會使用所建立自訂日誌的 Oracle Cloud ID (OCID)。

    複製自訂日誌的 OCID

作業 5:建立 OCI 函數

建立應儲存 OCI Functions 映像檔的儲存區域之後,必須建立 OCI 函數以收集資料安全稽核日誌。

  1. 前往 OCI 主控台,瀏覽至開發人員服務應用程式

    存取應用服務

  2. 選取要建立應用程式的區間,然後按一下建立應用程式

    建立應用程式

  3. 輸入下列資訊以建立應用程式,然後按一下建立

    • 名稱:輸入應用程式的名稱。
    • < 區間 > 中的 VCN: 選取將建立應用程式的 VCN。
    • < 區間 > 中的子網路: 選取將建立應用程式的子網路。
    • 資源配置:選取要在其中建立應用程式的架構。在此範例中,我們將使用 GENERIC_X86

    填入下列資訊

工作 6:設定 OCI 函數

應用程式建立之後,就會自動載入頁面。在此頁面上,會提供透過 OCI Cloud Shell 或本機設定的建議逐步指南,以便建立 OCI 函數。本教學課程將使用透過 OCI Cloud Shell 的建議逐步指示。

  1. 選取 Cloud Shell 設定

    OCI 函數 Cloud shell 設定

    注意:Cloud Shell 設定中提供的範例是指簡單的 Java 程式碼。由於我們將在此實驗室中使用 Python 程式碼,因此以下是 Python 中啟動 OCI Functions 的參照。

  2. 按一下 Cloud Shell ,然後根據想要使用的 OCI 函數組態輸入詳細資訊。

    開啟雲端 Shell

    fn list context
    
    fn use context <REGION>
    
    fn update context oracle.compartment-id <OCID_Compartment>
    
    fn update context registry <REPO_URL>/<namespace>/[repo-name-prefix]
    
    • < 區域 >:輸入將建立 OCI 函數的區域。在此情況下,我們會使用 sa-saopaulo-1。您可以在此處找到 OCI 區域清單:區域和可用性網域
    • < OCID 區間 >:輸入將建立函數的區間 OCID。
    • < REPO_URL >/< 命名空間 >/[ repo-name-prefix]: 儲存區域 URL 是由建立儲存區域之區域的索引鍵和此建立之儲存區域的名稱組成。因此,對於此教學課程,完整 URL 會是:
      • REPO_URL:< region-key >.ocir.io 組成的字串。我們使用 sa-saopaulo-1 區域,因此 URL 會是:gru.ocir.io (您可以在此處找到您區域的區域索引鍵:區域和可用性網域 )。
      • 命名空間:axyxxqi24xxx (已於 Task 2.4 投票)。
      • repo-name-prefix: 所建立之儲存區域的名稱。

作業 7:建立登入 OCI 登錄的認證權杖

必須建立認證權杖,才能讓用於執行此程序的使用者登入建立的 OCI 登錄。如需詳細資訊,請參閱取得認證權杖

作業 8:建立及部署 OCI 函數

  1. 建立認證權杖之後,您必須透過 Docker 命令登入儲存區域。如需有關登入的詳細資訊,請參閱登入 Oracle Cloud Infrastructure Registry

    docker login -u '<namespace>/<username>' <repo-domain-url>
    
  2. 登入儲存區域之後,即可起始功能並編輯 Python 程式碼以進行部署。執行下列命令。

    fn list apps
    
    fn init --runtime python fndatasafelogs
    
    cd fndatasafelogs
    
       >> Edit function.py to insert the function code
       >> Edit requirements.txt to insert requirements as needed for the role
       >> Edit function.yaml to make it as needed
    
    fn -v deploy --app <app_name>
    

    注意:有一些編輯檔案的必要步驟。如需 function.pyrequirements.txtfunction.yaml 檔案的內容,請參閱這個網頁

作業 9:設定 OCI 函數作業參數

建立 OCI 函數之後,必須將它們設定為正確收集資料安全日誌。

  1. 前往 OCI 主控台並瀏覽至開發人員服務應用程式

    存取應用服務

  2. 選取為此專案建立應用程式的區間,然後按一下應用程式。

    存取應用程式

  3. 函數中,按一下建立的函數來進行設定。

    Access Function (存取函數)

  4. 按一下組態,然後輸入下列要運作之函數的資訊。

    • ociOSTrackerBucketName:輸入在「任務 3.3」中建立的控制分組名稱。
    • ociDataSafeCompartmentOCID:輸入所使用 OCI 租用戶 (根租用戶) 的 OCID。
    • ociLoggingLogOCID:輸入在「工作 4.6」中建立之自訂日誌的 OCID。

    設定函數

    現在,完成設定 Oracle Data Safe 日誌收集函數的原則。

作業 10:建立動態群組

建立動態群組,以授予「OCI 函數」對收集「資料安全」日誌所需服務的存取權。

  1. 在 OCI 主控台中,移至識別網域<Your_Domain>動態群組,然後按一下建立動態群組

    建立動態群組

    注意:在此範例中,我們使用識別網域預設。請檢查您環境中使用的識別網域,並正確存取。

  2. 輸入下列資訊,然後按一下建立動態群組

    • 名稱:輸入動態群組的名稱。

    • 描述:輸入動態群組的描述。

    • 規則 1:輸入將識別所建立 OCI 函數的動態群組比對規則。

      使用的比對規則如下:ALL {resource.type = 'fnfunc', resource.compartment.id = '<Compartment_ID>'}

      • Compartment_ID:輸入建立函數之區間的 OCID。

    填入下列資訊

    注意:請注意已建立動態群組的名稱。它將在 OCI IAM 原則建構期間使用。

工作 11:建立 OCI 函數作業的 OCI IAM 原則

若要讓收集「資料安全」日誌能夠正常運作的功能,必須建立所有必要的存取權限。

  1. 在 OCI 主控台中,前往識別與安全原則

    存取原則

    原則的建立必須在建立環境的區間層級和租用戶層級完成。在租用戶層級,必須建立單一原則。此原則可讓建立的函數隨時隨地讀取所有 Oracle Data Safe 事件。

  2. 若要在區間中建立原則,請按一下建立原則

    建立 IAM 原則

  3. 輸入下列資訊,然後按一下建立

    填入下列資訊

    • 名稱:輸入原則的名稱。

    • 描述:輸入原則的描述。

    • 區間:選取要在其中建立原則的區間。可以在建立環境的區間中建立第一個原則。

    • 原則製作器:按一下索引鍵即可啟用進階原則填入模式。

    • 原則:以文字格式輸入原則。

      環境運作所需的原則如下:

      Allow dynamic-group 'Default'/'<Dynamic_Group_Name>' to manage buckets in compartment <Compartment_Name> where target.bucket.name='<Bucket_Name>'
      
      Allow dynamic-group 'Default'/'<Dynamic_Group_Name>' to manage objects in compartment <Compartment_Name> where target.bucket.name='<Bucket_Name>'
      
      Allow dynamic-group 'Default'/'<Dynamic_Group_Name>' to use log-content in compartment <Compartment_Name>
      
      Allow dynamic-group 'Default'/'<Dynamic_Group_Name>' to manage objects in compartment <Compartment_Name>
      
      Allow dynamic-group 'Default'/'<Dynamic_Group_Name>' to read objectstorage-namespaces in compartment <Compartment_Name>
      
      Allow dynamic-group 'Default'/'<Dynamic_Group_Name>' to read buckets in compartment <Compartment_Name>
      
    • 在「用戶」層級,只需要建立允許功能讀取「資料安全」事件的原則。

      Allow dynamic-group 'Default'/'<Dynamic_Group_Name>' to read data-safe-audit-events in tenancy
      
      • Dynamic_Group_Name:輸入為「OCI 函數」建立的動態群組名稱。
      • Compartment_Name:輸入建立此程序之環境的區間名稱。
      • Bucket_Name:輸入所建立 OCI 儲存桶的名稱。

    注意:這些原則和此程序的整個環境都建立在環境的預設識別網域中。如需有關識別網域的詳細資訊,請參閱識別網域

    建立原則之後,便可以執行該函數,以識別其命名空間。此命名空間將用於在 OCI 監控中建立警示。

  4. 若要執行函數,請開啟 Cloud Shell 並執行下列命令。

    fn list apps
    

    複製為此實驗室建立之應用程式的名稱,然後執行下列命令。

    fn invoke <app_name> <function_name>
    

    呼叫 OCI 函數範例

    注意:請檢查執行狀態是否為 ok 。這顯示函數可以在環境中完美執行。

現在我們有功能運作,請建立 OCI 通知主題和 OCI 監控警報以完成組態設定。

作業 12:建立 OCI 通知主題

部署 OCI 函數之後,便可以設定 OCI 通知服務以呼叫執行將定期收集資料安全日誌的 Python 程式碼。

  1. 在 OCI 主控台中,前往開發人員服務通知

    存取通知

  2. 按一下建立主題以建立通知主題。

    建立通知主題

  3. 輸入下列資訊以建立通知主題,然後按一下建立

    • 名稱:輸入要建立之主題的名稱。
    • 描述:選擇性輸入主題的描述。

    填入下列資訊

  4. 您可以訂閱主題上的函數,亦即,當主題被時序警示觸發時,主題將會執行 Python 程式碼來收集「資料安全」日誌。若要在主題上設定 OCI Functions 訂閱,請按一下新建立主題的名稱。

    存取主題

  5. 在主題頁面內按一下建立訂閱即可執行組態。

    建立訂閱

  6. 在組態頁面中輸入下列資訊,然後按一下建立

    • 協定:選取函數
    • 函數區間: 選取建立 OCI 函數的區間。
    • Oracle Functions 應用程式:選取在「工作 5」中建立的應用程式。
    • 函數:選取在「工作 6」中建立的函數。

    填入下列資訊

    將使用成功的函數訂閱來更新主題。

    訂閱主題的功能

作業 13:使用 OCI 監督建立警示

設定主題並新增函數之後,就必須建立警示,這將負責觸發通知並導致函數觸發。

  1. 在 OCI 主控台中,前往可觀測性與管理警示定義

    存取警示定義

  2. 若要建立警示,請按一下建立警示

    建立警示

  3. 輸入下列資訊以建立警示。

    1. 定義警示欄位中,輸入下列資訊。

      • 警示名稱:輸入警示的名稱。
      • 警示嚴重度:選取「資訊」作為警示嚴重度。

      填入下列資訊

    2. 測量結果描述欄位中,輸入下列資訊。

      • 區間:選取要在其中建立警示的區間。
      • 測量結果命名空間:oci_faas
      • 測量結果名稱:FunctionInvocationCount
      • 間隔:1 day
      • 統計資料:Count

      填入下列資訊

    3. 觸發規則欄位中,輸入下列資訊。

      • 運算子:greater then
      • 值:0
      • 觸發延遲時間:1

      填入下列資訊

    4. 定義警示通知欄位中,輸入下列資訊。

      • 目標服務:Notifications
      • 區間:選取建立 OCI 通知主題的區間。
      • 主題:選取所建立主題的名稱。
      • 重複通知?:選取此方塊即可多次觸發 OCI 通知。
      • 通知頻率:1
      • 通知頻率:minutes

      填入下列資訊

    5. 選取要啟用此警示?,然後按一下儲存警示

      建立警示

完成此動作之後,環境將可供收集「資料安全」日誌。請稍候幾分鐘,直到「資料安全」日誌開始顯示在建立的自訂日誌中。

檢查日誌

認可

其他學習資源

瀏覽 docs.oracle.com/learn 的其他實驗室,或前往 Oracle Learning YouTube 頻道存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center