附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
使用 OCI CLI 自動化 Oracle Data Safe 註冊,簡化持續的資料庫監控
簡介
對於現今複雜的威脅環境而言,維持健全的 Oracle 資料庫網路安全態勢至關重要。持續監控是先主動識別漏洞、錯誤組態和潛在威脅的關鍵,才能加以利用。隨著網路威脅變得更複雜且更具目標性,定期對合規性、不尋常活動和未經授權的存取進行評估變得越來越重要。
使用 Oracle Data Safe 主控台在 Oracle Data Safe 手動註冊多個資料庫,可能相當耗費人力且耗時。本教學課程以簡化的方式,在 OCI Cloud Shell 介面中使用 Oracle Cloud Infrastructure Command Line Interface (OCI CLI) 命令和命令檔將註冊流程自動化,大幅減少所需的手動工作和時間。
適用對象
- 資料庫管理員和 OCI 安全管理員。
目標
-
使用 OCI CLI 自動執行 Oracle Data Safe 註冊,以減少手動工作並確保組態一致。
使用案例:使用 OCI CLI 將所有 Oracle Database 即服務 (DBaaS) 註冊和管理自動化至 Oracle Data Safe。
在本教學課程中,我們將逐步引導您使用 OCI CLI,將 Oracle Database as a service (DBaaS) 與 Oracle Data Safe 自動註冊。我們將使用簡單明瞭的範例來示範流程,專注於針對您管理 Oracle Data Safe 作業之特定區間量身打造的 OCI CLI 命令。本教學課程也可以作為參照,以改寫註冊內部部署目標資料庫的程序。如需詳細資訊,請參閱註冊 Oracle 內部部署資料庫。
若要下載完整的命令檔,請參閱 GitHub 儲存區域。
必要條件
-
存取 OCI Cloud Shell:
若要開始使用 OCI Cloud Shell,您必須先透過 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 原則授予使用者存取權。如需詳細資訊,請參閱 OCI Cloud Shell 。
允許存取的 OCI IAM 原則範例:
allow group <GROUP-NAME> to use cloud-shell in tenancy
如果您要指定網域,請使用:
allow group <DOMAIN-NAME>/<GROUP-NAME> to use cloud-shell in tenancy
-
Oracle Data Safe 權限:
授予所有 Oracle Data Safe 資源的使用者群組權限。如需詳細資訊,請參閱建立 Oracle Data Safe 管理員群組。
OCI IAM 原則範例:
Allow group Data-Safe-Admins to manage data-safe-family in tenancy
-
在所有目標資料庫中建立 Oracle Data Safe 服務帳戶:
Oracle Data Safe 的每個目標資料庫都需要一個服務帳戶。自治式資料庫預設包括此資料庫,但若為非自治式資料庫,您必須手動建立。如需詳細資訊,請參閱在您的目標資料庫上建立 Oracle Data Safe 服務帳戶。
SQL 命令:
CREATE USER DATASAFEADMIN identified by password DEFAULT TABLESPACE "DATA" TEMPORARY TABLESPACE "TEMP"; GRANT CONNECT, RESOURCE TO DATASAFEADMIN;
注意:
- 密碼的長度必須在 14 個字元以內,包括大寫英文字母、小寫英文字母、數字以及特殊字元。
- 避免使用 SYSTEM 或 SYSAUX 表格空間。
若要授與角色,請從 Oracle Data Safe 主控台下載並執行
datasafe_privileges.sql
命令檔。以 SYS 身分執行命令檔。如需詳細資訊,請參閱將角色授予目標資料庫上的 Oracle Data Safe 服務帳戶。範例命令檔輸出:
SQL> @datasafe_privileges.sql DATASAFEADMIN GRANT ALL Enter value for USERNAME (case sensitive matching the username from dba_users) Setting USERNAME to DATASAFEADMIN Enter value for TYPE (grant/revoke) Setting TYPE to GRANT Enter value for MODE (audit_collection/audit_setting/data_discovery/masking/assessment/all) Setting MODE to ALL Granting AUDIT_COLLECTION privileges to "DATASAFEADMIN" ... Granting AUDIT_SETTING privileges to "DATASAFEADMIN" ... Granting DATA_DISCOVERY role to "DATASAFEADMIN" ... Granting MASKING role to "DATASAFEADMIN" ... Granting ASSESSMENT role to "DATASAFEADMIN" ... Done. Disconnected from Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production Version 21.1.0.0.0 [oracle@dbcs21c ~]$
作業 1:存取 OCI Cloud Shell
存取 OCI Cloud Shell 以使用其整合功能。
-
登入「OCI 主控台」。
-
按一下主控台標頭中的 Cloud Shell/ 程式碼編輯器圖示,然後從下拉式功能表中選取 Cloud Shell 。請注意,在 OCI Cloud Shell 中執行的 OCI CLI 將會在 OCI Cloud Shell 啟動時,對主控台區域選擇功能表中選取的區域執行命令。
作業 2:建立目標資料庫的專用端點
Oracle Data Safe 支援使用公用或專用 IP 位址連線至 Oracle 資料庫。對於使用專用 IP 位址的資料庫,您有兩個選項:Oracle Data Safe 專用端點或 Oracle Data Safe 內部部署連線器。在本教學課程中,我們將著重於建立用於註冊 DBaaS 資料庫的專用端點。
指令檔名稱:generate_private_endpoints_and_commands_for_missing_vcns.sh
。
描述: 此命令檔會識別缺少 Oracle Data Safe 專用端點之指定 OCI 區間中的 VCN。它會產生 CSV 檔案,列出遺漏的 VCN 及其關聯的子網路,並建立包含 OCI CLI 命令的 Shell 命令檔,為每個 VCN 建立必要的專用端點。
遵循步驟:
-
提示使用者輸入區間 OCID。
-
識別遺漏 Oracle Data Safe 專用端點的 VCN。
-
列出遺漏的 VCN 及其關聯的子網路。
-
產生名為
list_vcns_without_private_endpoints.csv
的 CSV 檔案,其中包含遺漏 VCN 和子網路的詳細資訊。 -
建立一個名為
create_private_endpoints_commands.sh
的 Shell 命令檔,其中包含用於建立所識別 VCN 專用端點的 OCI CLI 命令。
範例輸出:
作業 3:以 JSON 格式產生目標資料庫證明資料
在本教學課程中,單一 Oracle Data Safe 服務帳戶會用於所有目標資料庫。因此,所有目標資料庫的資料庫證明資料 JSON 檔案都會相同。
指令檔名稱:generate_target_db_credentials.sh
。
描述:此命令檔會提示使用者輸入使用者名稱和密碼,然後建立一個名為 Credentials_Target_DBaaS.json
的 JSON 檔案,其中包含提供的證明資料。JSON 檔案用於安全地儲存目標資料庫的使用者名稱和密碼。
遵循步驟:
-
提示使用者輸入使用者名稱。
-
提示使用者輸入密碼。
-
建立一個名為
Credentials_Target_DBaaS.json
的 JSON 檔案,其中包含使用者名稱和密碼。
範例命令檔輸出:
作業 4:以 JSON 格式產生專用端點連線選項
指令檔名稱:generate_Connection_Options_private_endpoints.sh
。
描述:此命令檔會自動化在 OCI 區間內列出 VCN、子網路和 Oracle Data Safe 專用端點的處理作業。它會產生一個包含每個專用端點詳細資訊的 CSV 檔案,包括關聯的 VCN 和子網路名稱,並且為每個端點建立個別的 JSON 檔案以定義 Oracle Data Safe 連線選項。
遵循步驟:
-
提示使用者輸入區間 ID。
-
列出所有 VCN 並將輸出儲存至
vcn_list.txt
。 -
列出所有子網路,並將輸出儲存至
subnet_list.txt
。 -
列出所有 Oracle Data Safe 專用端點,並將輸出儲存至
PE_list.txt
。 -
產生一個名為
list_All_private_endpoints_details.csv
的 CSV 檔案,其中包含每個專用端點的詳細資訊。 -
為每個專用端點建立 JSON 檔案,以指定 Oracle Data Safe 連線選項。
範例命令檔輸出:
作業 5:將自治式資料庫註冊至 Oracle Data Safe
在 Secure Access from Everywhere 註冊 Oracle Autonomous Database Serverless 時,您不需要選取連線選項或指定服務帳戶詳細資訊,因為預設會包含這些資訊。在本教學課程中,我們將示範如何管理和註冊 Oracle Autonomous Database Serverless。
指令檔名稱:generate_Autonomous_database_details_with_data_safe.sh
。
描述:此命令檔會自動化在 OCI 區間中列出 Oracle Autonomous Databases 並檢查其 Oracle Data Safe 註冊狀態的處理作業。它會產生一個包含所有 Oracle 自治式資料庫詳細資訊的 CSV 檔案,並且為未在 Oracle Data Safe 註冊的資料庫建立 JSON 檔案。此外,此命令檔會為每個未註冊的資料庫準備 Oracle Data Safe 註冊命令,並將它們儲存在 Shell 命令檔中。這可讓使用者藉由執行產生的命令,快速註冊未註冊的資料庫。
遵循步驟:
-
區間 ID 提示。
-
產生包含 Oracle Autonomous Database 詳細資訊的 CSV 檔案。
-
建立未註冊資料庫的 JSON 檔案。
-
在 Shell 命令檔中準備 Oracle Data Safe 註冊命令。
-
執行註冊命令來註冊資料庫。
範例命令檔輸出:
作業 6:將 Oracle Cloud 資料庫註冊到 Oracle Data Safe
指令碼名稱:generate_Cloud_database_details_with_data_safe.sh
。
描述:自動擷取及處理 Oracle 雲端資料庫詳細資訊及其專用端點、建立 JSON 組態檔,以及產生 Oracle Data Safe 的註冊命令。
遵循步驟:
-
區間 ID 提示。
-
列出 DBaaS 資料庫並儲存至
Output1.txt
。 -
附加遺漏 VM 叢集 ID 和資料庫系統 ID 之資料庫的子網路 ID。
-
將結果儲存至
Oracle_Cloud_Databases_Details.csv
。 -
列出專用端點並儲存至
Datasafe_Private-Endpoint_List.txt
。 -
產生每個 PDB 名稱的 JSON 檔案。
-
在
Datasafe_CloudDB_Registration_Commands.sh
中建立註冊命令。
範例命令檔輸出:
作業 7:更新安全和使用者評鑑排程
您可以設定排程,將目標資料庫的最新安全和使用者評估自動儲存至 OCI 中指定的區間。如需詳細資訊,請參閱 Schedule Security Assessments 和 Schedule User Assessments 。
指令檔名稱:generate_datasafe_assessment_schedules.sh
。
描述:此 Shell 命令檔的設計可自動執行擷取 Oracle Data Safe 目標資料庫的處理作業、其對應的安全和使用者評估,以及產生 OCI 的更新排程。此命令檔會提示使用者輸入區間 ID、擷取 Oracle Data Safe 中的作用中目標資料庫,以及產生兩個更新排程命令檔 — 一個用於安全評估,另一個用於使用者評估。
遵循步驟:
-
提示輸入區間 ID。
-
輸入區間 ID。
-
列出作用中目標:儲存至
Datasafe_Active_TargetDB_list.txt
。 -
擷取評估:將詳細資訊附加至
Datasafe_Active_TargetDBs.txt
。 -
產生命令檔:建立
schedule_security_assessments.sh
和schedule_user_assessments.sh
。
範例命令檔輸出:
作業 8:開始收集目標資料庫的稽核日誌
註冊目標資料庫後,Oracle Data Safe 會自動偵測可用的稽核歷程檔,並為每個目標資料庫建立對應的稽核歷程檔資源。啟動稽核歷程檔收集之後,Oracle Data Safe 會將稽核記錄從目標資料庫複製到其儲存區域進行監督與分析。您可以視需要啟動或停止稽核資料收集,以控制稽核資料收集。如需詳細資訊,請參閱稽核歷程檔。
指令檔名稱:Generate_DataSafe_Audit_Collection_Scripts.sh
。
描述:命令檔 Generate_DataSafe_Audit_Collection_Scripts.sh
會自動處理收集 Oracle Data Safe 目標資料庫的稽核歷程檔資料。它會提示使用者輸入區間 ID 和稽核歷程檔收集開始時間、擷取狀態為 NOT_STARTED 的稽核歷程檔,以及產生單一 Shell 命令檔來起始所有目標資料庫的稽核歷程檔收集。
遵循步驟:
-
輸入區間 ID: 提示使用者輸入 OCI 區間 ID。
-
輸入開始時間:
YYYY-MM-DD
格式的稽核收集開始時間提示。 -
擷取稽核歷程檔:從 OCI 擷取狀態為 NOT_STARTED 的稽核歷程檔。
-
產生 CSV:將相關的稽核歷程檔資料擷取至
audit_trails.csv
。 -
建立命令檔:使用命令產生
Data_safe_Target_DB_Audit_Collection_Start.sh
,以啟動所有目標的稽核收集。
範例命令檔輸出:
作業 9:準備 Oracle Data Safe 產品目錄
指令檔名稱:generate_data_safe_db_inventory.sh
。
描述:此 Shell 命令檔會與 OCI 互動,以根據其類型擷取及處理 Oracle Data Safe 目標資料庫資訊:AUTONOMOUS_DATABASE、DATABASE_CLOUD_SERVICE 和 INSTALLED_DATABASE。產生輸出檔,其中包含每個資料庫類型的詳細資訊。
遵循步驟:
-
輸入區間 ID: 提示使用者輸入資料庫所在的區間 ID。
-
列出及篩選資料庫:列出指定區間中的所有 Oracle Data Safe 目標資料庫,並依類型進行篩選。
-
擷取資料庫詳細資訊:
-
AUTONOMOUS_DATABASE:擷取顯示名稱、資料庫 ID 和基礎架構類型等詳細資訊。
-
DATABASE_CLOUD_SERVICE:擷取詳細資訊,例如資料庫系統 ID、VM 叢集 ID (處理空值) 以及監聽器連接埠。
-
INSTALLED_DATABASE:擷取資訊,包括執行處理 ID、IP 位址和服務名稱。
-
-
產生輸出檔案:使用收集的詳細資訊,為每個資料庫類型建立個別的檔案。
-
清除:移除暫存檔案並完成輸出。
範例命令檔輸出:
相關連結
認可
-
作者 - Alex Kovuru (首席雲端架構師)
-
貢獻者 - Indiradarshni Balasundaram (雲端工程師)
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Streamline Continuous Database Monitoring by Automating Oracle Data Safe Registration with OCI CLI
G15078-01
September 2024