ノート:
- このチュートリアルでは、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コマンドライン・インタフェース(OCI CLI)のコマンドとスクリプトを使用して登録プロセスを自動化する合理化されたアプローチを提供し、必要な手作業と時間を大幅に削減します。
対象読者
- データベース管理者およびOCIセキュリティ管理者。
目的
-
OCI CLIを使用してOracle Data Safeの登録を自動化し、手作業を削減し、一貫した構成を確保します。
ユース・ケース: OCI CLIを使用して、Oracle Data SafeへのすべてのOracle Database as a Service (DBaaS)の登録および管理を自動化します。
このチュートリアルでは、OCI CLIを使用したOracle Data SafeへのOracle Database as a Service (DBaaS)の登録の自動化について説明します。簡単な例を使用してプロセスをデモンストレーションし、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の各ターゲット・データベースには、サービス・アカウントが必要です。Autonomous Databasesにはデフォルトでこれが含まれていますが、Autonomous Databases以外の場合は手動で作成する必要があります。詳細は、ターゲット・データベースでの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/Code Editor」アイコンをクリックし、ドロップダウン・メニューから「Cloud Shell」を選択します。OCI Cloud Shellで実行中のOCI CLIでは、OCI Cloud Shellの起動時に、コンソールのリージョン選択メニューで選択されているリージョンに対してコマンドが実行されることに注意してください。
タスク2: ターゲット・データベースのプライベート・エンドポイントの作成
Oracle Data Safeは、パブリックまたはプライベートのIPアドレスを使用したOracleデータベースへの接続をサポートします。プライベートIPアドレスを持つデータベースの場合、Oracle Data Safeプライベート・エンドポイントまたはOracle Data Safeオンプレミス・コネクタの2つのオプションがあります。このチュートリアルでは、DBaaSデータベースを登録するためのプライベート・エンドポイントの作成に焦点を当てます。
スクリプト名: generate_private_endpoints_and_commands_for_missing_vcns.sh
。
説明:このスクリプトは、Oracle Data Safeプライベート・エンドポイントがない指定されたOCIコンパートメント内のVCNを識別します。欠落しているSCNおよび関連するサブネットをリストするCSVファイルを生成し、OCI CLIコマンドを含むシェル・スクリプトを作成して、各VCNに必要なプライベート・エンドポイントを作成します。
ステップに従います。
-
コンパートメントOCIDをユーザーに求めます。
-
Oracle Data Safeプライベート・エンドポイントが欠落しているVCNを識別します。
-
欠落しているSCNおよび関連するサブネットをリストします。
-
欠落しているSCNおよびサブネットの詳細を含む
list_vcns_without_private_endpoints.csv
という名前のCSVファイルを生成します。 -
OCI CLIコマンドを含む
create_private_endpoints_commands.sh
という名前のシェル・スクリプトを作成し、識別されたVCNのプライベート・エンドポイントを作成します。
サンプル出力:
タスク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プライベート・エンドポイントをリストするプロセスを自動化します。関連するVCNやサブネット名など、各プライベート・エンドポイントに関する詳細情報を含むCSVファイルを生成し、各エンドポイントに個別のJSONファイルを作成して、Oracle Data Safe接続オプションを定義します。
ステップに従います。
-
コンパートメントIDをユーザーにプロンプトします。
-
すべてのSCNをリストし、出力を
vcn_list.txt
に保存します。 -
すべてのサブネットをリストし、出力を
subnet_list.txt
に保存します。 -
すべてのOracle Data Safeプライベート・エンドポイントをリストし、出力を
PE_list.txt
に保存します。 -
各プライベート・エンドポイントの詳細情報を含む
list_All_private_endpoints_details.csv
という名前のCSVファイルを生成します。 -
Oracle Data Safe接続オプションを指定するプライベート・エンドポイントごとにJSONファイルを作成します。
サンプル・スクリプトの出力:
タスク5: Oracle Data SafeへのAutonomous Databasesの登録
Oracle Autonomous Database Serverlessを「すべての場所からのセキュア・アクセス」に登録する場合、接続オプションを選択したり、サービス・アカウントの詳細を指定する必要はありません。これらはデフォルトで含まれています。このチュートリアルでは、Oracle Autonomous Database Serverlessを管理および登録する方法を示します。
スクリプト名: generate_Autonomous_database_details_with_data_safe.sh
。
説明:このスクリプトは、OCIコンパートメント内のOracle Autonomous Databasesをリストし、そのOracle Data Safe登録ステータスをチェックするプロセスを自動化します。すべてのOracle Autonomous Databasesの詳細を含むCSVファイルを生成し、Oracle Data Safeに登録されていないデータベースのJSONファイルを作成します。また、このスクリプトでは、未登録のデータベースごとにOracle Data Safe登録コマンドが準備され、シェル・スクリプトに保存されます。これにより、ユーザーは、生成されたコマンドを実行して、登録されていないデータベースをすばやく登録できます。
ステップに従います。
-
コンパートメントIDのプロンプト。
-
Oracle Autonomous Databaseの詳細を含むCSVファイルを生成します。
-
未登録データベースのJSONファイルを作成します。
-
シェル・スクリプトでOracle Data Safe登録コマンドを準備します。
-
登録コマンドを実行してデータベースを登録します。
サンプル・スクリプトの出力:
タスク6: Oracle Data SafeへのOracle Cloudデータベースの登録
スクリプト名: 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の指定されたコンパートメントに自動的に保存できます。詳細は、「セキュリティ評価のスケジュール」および「ユーザー評価のスケジュール」を参照してください。
スクリプト名: generate_datasafe_assessment_schedules.sh
。
説明:このシェル・スクリプトは、Oracle Data Safeターゲット・データベース、対応するセキュリティおよびユーザー評価の取得、およびOCIの更新スケジュールの生成のプロセスを自動化するように設計されています。このスクリプトは、ユーザーにコンパートメントIDの入力を求め、Oracle Data Safeでアクティブなターゲット・データベースを取得し、2つの更新スケジュール・スクリプト(セキュリティ評価用とユーザー評価用)を生成します。
ステップに従います。
-
コンパートメント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の監査証跡が取得され、すべてのターゲット・データベースの監査証跡収集を開始する単一のシェル・スクリプトが生成されます。
ステップに従います。
-
コンパートメントIDの入力:ユーザーにOCIコンパートメントIDの入力を求めます。
-
開始時刻の入力:監査収集の開始時刻を
YYYY-MM-DD
形式で求めます。 -
監査証跡のフェッチ: NOT_STARTEDステータスの監査証跡をOCIから取得します。
-
CSVの生成:関連する監査証跡データを
audit_trails.csv
に抽出します。 -
スクリプトの作成:すべてのターゲットの監査収集を開始するコマンドで
Data_safe_Target_DB_Audit_Collection_Start.sh
を生成します。
サンプル・スクリプトの出力:
タスク9: Oracle Data Safeインベントリの準備
スクリプト名: generate_data_safe_db_inventory.sh
。
説明:このシェル・スクリプトはOCIと対話して、AUTONOMOUS_DATABASE、DATABASE_CLOUD_SERVICEおよびINSTALLED_DATABASEの各タイプに基づいてOracle Data Safeターゲット・データベース情報を取得および処理します。各データベース・タイプに関する詳細情報を含む出力ファイルを生成します。
ステップに従います。
-
入力コンパートメントID:データベースが存在するコンパートメントIDの入力をユーザーに求めます。
-
データベースのリストおよびフィルタ:指定したコンパートメント内のすべてのOracle Data Safeターゲット・データベースをリストし、タイプでフィルタします。
-
データベース詳細の取得:
-
AUTONOMOUS_DATABASE:表示名、データベースID、インフラストラクチャ・タイプなどの詳細を取得します。
-
DATABASE_CLOUD_SERVICE:データベース・システムID、VMクラスタID (NULL値の処理)、リスナー・ポートなどの詳細を取得します。
-
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
G15074-01
September 2024