ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
Oracle Analytics CloudへのOracle Cloud Guardイベントのキャプチャ
イントロダクション
このチュートリアルでは、Oracle Cloud GuardイベントをOracle Autonomous JSON Database (AJD)に転送し、Oracle Analytics Cloudで取得する方法について説明します。Oracle Analytics Cloudでクラウド・ガード・イベントを分析および表示する後続のチュートリアルがあります。
-
Oracle Cloud Guard: Oracle Cloud Guardは、ネイティブのOracle Cloud Infrastructure(OCI)サービスで、お客様がリージョン間のリソースを監視および検出できるようにし、OCIテナンシを安全に保つためにクラウド・セキュリティ体制を維持できるようにします。詳細は、Oracle Cloud Guardを参照してください。
-
Oracle Analytics Cloud: Oracle Analytics Cloudは、完全に管理されたクラウドベースのビジネス・インテリジェンス(BI)およびアナリティクス・プラットフォームです。完全なプラットフォームとして設計されており、ビジネス・ユーザーおよびアナリストは、データ主導型の意思決定を行うためのインサイトとトレンドを発見できます。詳細は、Oracle Analytics Cloudを参照してください。
アーキテクチャの概要
目的
- Oracle Cloud GuardイベントをOracle Analytics Cloudに取り込みます。
前提条件
-
OCI、OCI Events Service、Oracle Cloud Guardについて深く理解しています。
-
Oracle Autonomous DatabaseとOracle REST Data Services (ORDS)の知識をプロビジョニングします。
-
OCI Functionsとセキュリティの基本的な知識。
タスク1: クラウド・イベントをトリガーするためのOracle Cloud Guardの構成
ディテクタ・レシピに応答するようにOracle Cloud Guardを構成します。レスポンダ・ルールでは、次の図に示すように、Oracle Cloud Guardイベントの「ステータス」が「有効」に設定されていることを確認します。
タスク2: Oracle Cloud Guardの問題を検出し、OCIファンクションを起動するためのOCIイベント・サービス・ルールの作成
-
OCI Events Serviceを使用すると、テナンシ全体にわたるリソースの状態変化に基づく自動処理を作成できます。イベントを使用することで、開発チームはリソースの状態が変更されたときに自動的に応答できます。
イベントを取得するには、「監視および管理」に移動し、「イベント・サービス」をクリックします。次の図に示すように、新しいルールを作成し、関数に書き込まれるイベント・タイプを構成します。
-
省略記号アイコン(縦に並んだ3つのドット)をクリックして、Oracle Cloud Guardイベントを編集し、次の図に示すようにファンクションに送信します。
次に示すように、クラウド・ガード・イベントを関数に転送するアクションを追加します。
イベント・タイプの構成
タスク3: イベントをAJDに転送するファンクションの作成
-
OCIコンソールに移動し、「開発者サービス」に移動して「ファンクション」をクリックします。
-
既存のアプリケーションを選択するか、「アプリケーションの作成」をクリックします。アプリケーション内に新しいOCIファンクションを作成します。詳細は、クラウド・シェルでのファンクションQuickStartを参照してください。
ノート:前提条件を正常に完了したとします。
-
次のコマンドを実行して、アプリケーションのリストでアプリケーションを確認します。
fn ls apps
-
最初にボイラープレートPython関数を作成することをお薦めします。
fn init – runtime oci-event-to-db
コマンドは、func.py
、func.yaml
およびrequirements.txt
という3つのファイルを持つoci-event-to-db
という名前のフォルダを生成します。 -
AJD表が存在し、REST対応である必要があります。次の図に示すように。
-
func.py
ファイルの内容を次のコードで更新します。import io import json import re import requests eventTable="https://mrj6p3vkk4ramuu-cgdata.adb.us-ashburn-1.oraclecloudapps.com/ords/cguser/event/" from fdk import response def handler(ctx, data: io.BytesIO=None): try: bodytxt = data.getvalue() body = json.loads(bodytxt) # print("event type: " + body["eventType"]) # print("compartment name: " + body["data"]["compartmentName"]) headers = {'Content-type': 'application/json', 'accept': 'application/json'} req = requests.post(eventTable, json={ "event": body }, headers=headers) except (Exception, ValueError) as ex: print('ERROR:', ex, flush=True) raise return response.Response( ctx, response_data=[ json.loads(req.text)["id"] ], # response_data=json.loads(req.text), headers={"Content-Type": "application/json"} )
-
func.yaml
ファイルの内容を次のコードで更新します。schema_version: 20180708 name: oci-event-to-db version: 0.0.44 runtime: python build_image: fnproject/python:3.11-dev run_image: fnproject/python:3.11 entrypoint: /python/bin/fdk /function/func.py handler memory: 256
-
requirements.txt
ファイルの内容を次のコードで更新します。Requests oci fdk
-
次のコマンドを実行して、ファンクションをデプロイします。
fn -v deploy -app oci-event-to-db
タスク4: ORDSを使用したデータベースのフラット化
-
Oracle Cloud GuardイベントがAJDに格納されたら、「イベント」表を確認して、データベースでOracle Cloud Guardのアクティビティを確認します。次のSQL文を実行します。
SELECT * FROM EVENTS
-
Oracle Cloud GuardイベントはJava Script Object Notation (JSON)形式で格納されるため、データを分析するには、Oracle Analytics Cloudでフラット化またはリレーショナル形式に変換する必要があります。
データベースをフラット化するには、次のステップを実行します。
-
イベント表に索引を作成し、次のSQL文を実行してフラット化します。
Create search index event_idx on event (event) for JSON parameters ('DATAGUIDE ON');
-
ビューを作成します。
exec dbms_json.create_view_on_path('flat_event', 'event', 'event', '$’);
-
-
次のSQL文を実行して、前述のステップで作成した列を確認します。
SELECT COLUMN_NAME,DATA_TYPE FROM all_tab_columns where table_name ='FLAT_EVENT' order BY column_id;
次の図に示すように、列とデータ型が表示されます。
タスク5: Oracle Analytics Cloudへの接続
-
データベースがJSONからリレーショナル形式に変換されたら、Oracle Analytics Cloudに接続します。次の図に示すように、OCIコンソールに移動し、AJDインスタンスに移動し、データベース接続をクリックして資格証明を指定し、ウォレットをダウンロードします。
-
Oracle Analytics Cloudにログインし、「新規接続の作成」をクリックして「Oracle Autonomous Data Warehouse」をクリックし、ステップ1でダウンロードしたウォレットを選択します。
-
接続が確立されると、OACは「接続」の下に次のように表示されます。
-
接続をダブルクリックしてOACに新しいデータセットを作成し、スキーマを展開して、表をキャンバスにドラッグします。
承認
-
著者 - Murtuza Madarwala (クラウド・ソリューション・エンジニア)、Phil Dolbow (クラウド・ソリューション・エンジニア)
-
貢献者 - Kevin Colwell (クラウド・ソリューション・エンジニア)
その他の学習リソース
docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Capture Oracle Cloud Guard Events into Oracle Analytics Cloud
G27473-01
February 2025
Copyright ©2025, Oracle and/or its affiliates.