附註:

從 Oracle Cloud Infrastructure 稽核產生 Identity and Access Management 報表

簡介

Oracle Cloud Infrastructure (OCI) Identity Domains 是 Oracle Identity Cloud Service 的繼任者,將 Oracle Identity Cloud Service 的所有功能導入核心 Oracle Cloud Infrastructure 服務。Oracle Identity Cloud Service 是一項獨立的 SaaS 方案,提供使用者活動報表與服務內的其他項目。

與 Oracle Identity Cloud Service 不同,OCI 識別網域存在於較大的 OCI 相關資訊環境中。OCI 設計原則是盡可能使用通用服務功能,因此 Oracle Identity Cloud Service 內提供的部分報表已不再使用,因為 OCI Audit 提供的通用服務功能現在已提供使用這些報表的資料。

本教學課程示範如何從 OCI 稽核資料建構不再使用的報表,並且在 OCI 儀表板中提供這些報表。

目標

必要條件

工作 1:探索 OCI Identity and Access Management 稽核事件

每個 OCI 服務都會根據使用者或服務動作建立稽核記錄,而 OCI IAM 不例外,在使用者存取時建立稽核記錄,以及 OCI IAM 中發生的任何變更或事件。

  1. 存取 OCI 主控台內「可觀察性與管理」功能下的記錄日誌服務,然後選取搜尋區段。

  2. 按一下選取要搜尋的日誌,將日誌搜尋的相關資訊環境設為包含要產生報表之 OCI IAM 識別網域的區間。

    新增區間至日誌記錄搜尋

    選取相關區間之後,您可能會見到數個使用者或服務活動項目,特定項目取決於租用戶的使用方式。您可能也會看到您自己或其他登入事件。如果您未見到任何項目,請展開其他搜尋選項來確定您選取了正確的區域,或者修改按時間篩選設定來展開時間範圍。

  3. 按一下顯示進階模式即可啟動輸入任意文字查詢的功能,然後將下列其中一項新增至預設查詢的結尾 (在 'sort by datetime desc 之後),以產生包含在 Oracle Identity Cloud Service 報表中的相同內容。

    報表 Query - 查詢
    成功登入報表 | 其中 data.additionalDetails.eventId = 'sso.session.create.success' | 選取 data.additionalDetails.domainDisplayName 作為網域,data.additionalDetails.actorName 作為登入,data.additionalDetails.eventId 作為結果,data.additionalDetails.ssoRp 作為提供者,time_format (datetime,'yyyy-MM-dd hh:mm:ss z') 作為日期
    失敗的登入報告 | 其中 data.additionalDetails.eventId='sso.authentication.failure' | 選取 data.additionalDetails.domainDisplayName 作為網域,data.additionalDetails.actorName 作為使用者,data.additionalDetails.eventId 作為結果,data.message 作為註解,time_format (datetime,'yyyy-MM-dd hh:mm:ss z') 作為日期
    應用程式存取報表 | 其中 data.additionalDetails.eventId = 'sso.session.create.success' 或 data.additionalDetails.eventId = 'sso.authentication.failure' 或 data.additionalDetails.eventId = 'sso.session.modify.success' | 選取 data.additionalDetails.domainDisplayName 作為網域,data.additionalDetails.actorDisplayName 作為使用者,data.additionalDetails.actorName 作為登入,data.additionalDetails.eventId 作為 "Success/Failure",data.additionalDetails.ssoRp 作為應用程式,time_format (datetime,'yyyy-MM-dd hh:mm:ss z') as Date
    稽核日誌報表 | where data.additionalDetails.eventId = ‘sso.app.access.success’ or data.additionalDetails.eventId = ‘sso.app.access.failure’ or data.additionalDetails.eventId = ‘sso.session.create.success’ or data.additionalDetails.eventId = ‘sso.authentication.failure’ or data.additionalDetails.eventId = ‘sso.session.delete.success’ or data.additionalDetails.eventId = ‘admin.user.create.success’ or data.additionalDetails.eventId = ‘admin.user.activated.success’ or data.additionalDetails.eventId = ‘admin.user.deactivated.success’ or data.additionalDetails.eventId = ‘admin.user.update.success’ or data.additionalDetails.eventId = ‘admin.user.delete.success’ or data.additionalDetails.eventId = ‘admin.user.password.reset.success’ or data.additionalDetails.eventId = ‘admin.me.password.reset.success’ or data.additionalDetails.eventId = ‘admin.me.password.change.success’ or data.additionalDetails.eventId = ‘admin.policy.create.success’ or data.additionalDetails.eventId = ‘admin.rule.create.success’ or data.additionalDetails.eventId = ‘admin.policy.update.success’ or data.additionalDetails.eventId = ‘admin.rule.update.success’ or data.additionalDetails.eventId = ‘admin.passwordpolicy.create.success’ or data.additionalDetails.eventId = ‘admin.passwordpolicy.update.success’ or data.additionalDetails.eventId = ‘admin.grant.create.success’ or data.additionalDetails.eventId = ‘admin.grant.delete.success’ or data.additionalDetails.eventId = ‘admin.group.create.success’ or data.additionalDetails.eventId = ‘admin.group.add.member.success’ or data.additionalDetails.eventId = ‘admin.group.remove.member.success’ or data.additionalDetails.eventId = ‘admin.group.delete.success’ or data.additionalDetails.eventId = ‘admin.app.create.success’ or data.additionalDetails.eventId = ‘admin.app.update.success’ or data.additionalDetails.eventId = ‘admin.app.delete.success’ or data.additionalDetails.eventId = ‘admin.app.activated.success’ or data.additionalDetails.eventId = ‘admin.app.deactivated.success’ or data.additionalDetails.eventId = ‘notification.delivery.success’ or data.additionalDetails.eventId = ‘notification.delivery.failure’ or data.additionalDetails.eventId = ‘sso.auth.factor.initiated’ or data.additionalDetails.eventId = ‘sso.bypasscode.create.success’ | select time_format(datetime, ‘yyyy-MM-dd hh:mm:ss z’) as Date, data.additionalDetails.domainDisplayName as Domain, data.additionalDetails.actorName as Actor, data.additionalDetails.eventId as “Event Id”, data.message as “Event Description”, data.additionalDetails.adminResourceName as Target
    應用程式角色指派報表 | 其中 data.additionalDetails.eventId = 'admin.approle.add.member.success' 或 data.additionalDetails.eventId = 'admin.approle.remove.member.success' | 選取 data.additionalDetails.domainDisplayName 作為網域,data.additionalDetails.actorDisplayName 作為核准者,data.additionalDetails.adminAppRoleAppName 作為「應用程式名稱」,data.additionalDetails.adminRefResourceName 作為受益人,data.additionalDetails.adminRefResourceType 作為「使用者 / 群組」,data.additionalDetails.adminResourceName 作為「應用程式角色名稱」,time_format (datetime, 'yyyy-MM-dd hh:mm:ss z」) 作為日期,data.additionalDetails.eventId 作為「已新增 / 已移除」

    例如,對於 Successful Logins 報表,查詢看起來會與下方類似。

    表示進階搜尋中的應用程式存取查詢

  4. 按一下搜尋即可使用更新的查詢。如果未傳回任何結果,您可能需要修改時間篩選。

    應用程式存取查詢的範例結果

  5. 若要匯出所有傳回的結果,請按一下結果上方的動作下拉式清單中的匯出日誌資料 (JSON)

    從日誌搜尋匯出日誌資料

    注意:Oracle Identity Cloud Service 報表支援以 CSV 檔案形式下載,而此匯出僅支援 JSON 匯出,但上述查詢中使用的 select 敘述句會將 JSON 均一化成含有屬性的單一物件,這應該可讓您在 JSON 匯出和 CSV 之間進行轉換 (如果需要)。

工作 2:建立報表的已儲存搜尋

若要避免每次想要存取這些報表時重新輸入查詢,您可以運用 OCI 日誌記錄的已儲存搜尋功能。

  1. 驗證查詢之後,請按一下儲存搜尋,讓查詢可以重複使用並內嵌在儀表板中。

  2. 輸入搜尋的名稱,例如 'Successful_Login_Report' 或類似名稱,以及描述,然後按一下儲存

  3. 在「已儲存的搜尋介面」中,您可以按一下返回搜尋以取得最新的資料集。

注意:您無法直接從「已儲存的搜尋介面」匯出結果,而是必須使用動作下拉式清單中的使用日誌搜尋進行瀏覽,然後從「搜尋」檢視匯出結果。

作業 3:將報表新增至 OCI 儀表板

除了從 OCI 日誌記錄服務內存取報表之外,還可以透過 OCI 的儀表板功能提供這些報表,讓 OCI IAM 事件能夠集中複查。

  1. 瀏覽至 OCI 主控台登陸頁面,按一下頂端標幟中的 Oracle Cloud ,然後切換至儀表板檢視。

  2. 按一下新建儀表板,建立 OCI IAM 報表的新儀表板。

  3. 選取從頭建立,然後新增適當的名稱與描述。

    建立儀表板以顯示 IAM 報表。

  4. 建立新的「儀表板群組」,或視需要將此「儀表板」指派給現有的「群組」。

  5. 按一下新增小工具,接著選取記錄資料表格,然後在新小工具上按一下設定

  6. 提供適當的「名稱」,然後選取您的「已儲存的搜尋」。新增適當的預設期間。

    建立應用程式存取報表的小工具。

  7. 請視需要修改版面配置並新增其他「已儲存的搜尋」。

    含有多個 IAM 報表的範例儀表板

自動擷取報表資料

以上方法提供對 IAM 資料執行特別報告的功能。不過,對於進行中的作業,可能需要自動擷取此資料。若要這麼做,您可以運用 OCI API、OCI CLI 或其中一個 OCI SDK。

您可以使用類似下列的要求來呼叫 SearchLogs API、調整時間範圍,以及從初始日誌搜尋新增查詢:

POST https://logging.<region>.oci.oraclecloud.com/20190909/search?limit=1000
Body:
{
  "timeStart": "2025-01-01T00:00:00.000Z",
  "timeEnd": "2025-01-02T00:00:00.000Z",
  "searchQuery": "<log search query from Task #1>",
  "isReturnFieldInfo": false
}

等效的 OCI CLI 命令如下:

oci logging-search search-logs --search-query "<log search query from Task #1>" --time-start "2025-01-01T00:00:00.000Z" --time-end "2025-01-02T00:00:00.000Z" --is-return-field-info false

注意:使用反斜線 (\) 在搜尋查詢中遁離雙引號字元 (")。例如,as "Success/Failure" 會變成 as \"Success/Failure\"

如果您偏好將稽核事件推送至替代系統,則可以使用 OCI Connector HubOCI Events 來促進日誌轉送,例如在使用 OCI Audit 導入多雲端安全性,以從 OCI Identity and Access Management 擷取事件中,涵蓋將稽核轉送至 Azure Sentinel。

認可

其他學習資源

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

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