ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
Oracle Access Governanceイベント・データ・パブリッシャからOCIストリームにパブリッシュされたメッセージの読取り
イントロダクション
イベント・データ公開は、1回かぎりのデータをエクスポートし、進行中のデータ・イベントをOracle Cloud Infrastructure (OCI)クラウド・アカウントなどの外部システムに継続的に公開するプロセスです。Oracle Access Governanceでは、アイデンティティ、アイデンティティ・コレクション、ポリシー、リソース、リソースへのアクセスなど、1回かぎりのデータ・イベントをクラウド・テナンシに柔軟にエクスポートし、継続的に公開できます。このデータを使用して、インサイトを導出したり、コンプライアンスのためにデータを格納したり、アクセス管理およびガバナンス・データを分析できます。
イベントとは、アイデンティティ、ポリシー、リソースなど、Oracle Access Governanceコンポーネントの作成、変更または削除時に発生するデータ状態の変更を指します。イベント・データ・パブリッシャを使用すると、管理者はアクセスおよびアイデンティティ・データを完全に制御でき、これを使用してイベント・ロギングを自動化し、コンプライアンス・レポートを合理化できます。
データ・イベント公開フローでは、1回限りのエクスポートにOCIバケットを使用し、ファイル・サイズに応じてOCIストリームまたはOCIバケットに後続の更新を公開します。
このチュートリアルでは、OCIでのユーザー更新の取得方法と、Oracle Access GovernanceによるOCIストリームへの公開方法、およびOCI Cloud Shellを介したスクリプトを使用したこれらのストリーム・メッセージの消費方法とデコード方法を説明します。
ノート:イベント・データ・パブリッシャは、アイデンティティ、アイデンティティ・コレクション、ポリシーおよびリソースのエクスポートをサポートしていますが、このチュートリアルでは、アイデンティティのイベントの取得に重点を置いています。
シェル・スクリプトの概要
このシェル・スクリプトの目的は、OCIストリームで公開されたメッセージを取得およびデコードすることです。これらのメッセージは、RAW形式で読み取れないようにエンコードされます。スクリプトを実行すると、メッセージを明確で人間が読める形式で表示できるため、重要な情報がOCIコンソールから消えた後でも確実にアクセスできるようになります。
具体的には、スクリプトは、指定されたOCIストリームからメッセージを読み取るための開始点をマークするカーソルを作成します。カーソルは、指定されたオフセットと、テスト・ストリーム・メッセージを生成して値がフェッチされるパーティションに基づいています。カーソルを使用して、スクリプトはOCIストリームからメッセージをフェッチします。最終的に、スクリプトは取得した各メッセージを処理およびデコードします。
対象読者
Oracle Access GovernanceおよびOracle Cloud Infrastructure Identity and Access Management (OCI IAM)管理者。
目的
-
OCIストリームのキー・パラメータを取得します。
-
コンソールから1つ以上のOCIユーザーのいくつかの属性を変更します。
-
Oracle Access Governance for OCIでデータ・ロードを実行します。
-
スクリプトを実行するようにOCI Cloud Shell環境を構成します。
-
スクリプトを実行してストリーム・メッセージを読み取ります。
前提条件
-
管理権限を持つOracle Access Governanceインスタンス。詳細は、「サービス・インスタンスの設定」および「アプリケーション・ロールについて」を参照してください。
-
Oracle Access Governanceと統合されたOCIテナンシー。詳細は、Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM)との統合を参照してください。
-
Oracle Access GovernanceからOCIに構成されたイベント・データ・パブリッシャ。詳細は、Oracle Access Governanceでのイベント・データ・パブリッシャの構成を参照してください。
タスク1: OCIストリームのキー・パラメータの取得
このタスクでは、OCIコンソールにログインして、ストリームのキー・パラメータを取得します。
-
OCIコンソールにログインし、「アナリティクスとAI」、「メッセージング」に移動して「ストリーミング」をクリックします。
-
ストリームが配置されているコンパートメントを必ず選択し、ストリームをクリックして詳細を表示します。
-
ストリームOCIDおよびメッセージ・エンドポイントの値を書き留めます。
-
「テスト・メッセージの生成」をクリックし、サンプル・メッセージを「データ」として入力し、「生成」をクリックします。成功メッセージを戻す必要があります。
-
「取消」をクリックして「ストリームのテスト」ウィンドウを閉じます。
-
「メッセージのロード」をクリックして、テスト・メッセージを確認します。
-
「最近のメッセージ」セクションから、「パーティション」および「オフセット」の値を書き留めます。
タスク2: OCIでのユーザー属性の更新
このタスクでは、OCIのユーザー属性を変更します。
-
OCIコンソールに移動し、「アイデンティティとセキュリティ」に移動して「ドメイン」をクリックします。
-
ドメインを選択して「ユーザー」をクリックします。更新するユーザーをクリックし、「ユーザーの編集」をクリックします。
-
「国」、「タイトル」、「部門」、「コスト・センター」、「ユーザー・タイプ」、「従業員番号」などの値を更新します。
-
「変更の保存」をクリックします。
ノート:必要に応じて、さらにいくつかのユーザーを更新できます。
タスク3: Oracle Access Governanceでのデータ・ロードの実行
このタスクでは、Oracle Access Governanceでデータ・ロードを実行して、OCIの変更を同期します。
-
Oracle Access Governanceにログインし、「サービス管理」および「オーケストレーション・システム」に移動します。
-
OCIのオーケストレーション・システムを検索し、3つのドット(ボール)アイコンをクリックして「統合の管理」を選択します。
-
「データを今すぐロード」をクリックし、データ・ロードが完了するまで待機します。
タスク4: ストリームからメッセージを取得するスクリプトを実行するためのOCI Cloud Shellの構成
このタスクでは、OCI Cloud Shellを構成し、提供されているスクリプトを使用して、Oracle Access Governanceによって公開されたメッセージをデコードします。
-
OCIコンソールに移動し、右上隅の「クラウド・シェル」をクリックして、クラウド・シェル・ウィンドウが初期化されるまで待機します。
-
次のパラメータを初期化します。
export STREAM_OCID=<STREAM_OCID_VALUE> export ENDPOINT=<MESSAGES_ENDPOINT> export CURSOR_TYPE="AFTER_OFFSET" export PARTITION=<PARTITION> export OFFSET=<OFFSET>
-
ストリームの
STREAM_OCID
、ENDPOINT
、PARTITION
およびOFFSET
パラメータを、タスク1で取得した値に置き換えます。 -
CURSOR_TYPE
はAFTER_OFFSET
に設定され、指定したオフセット値の後に生成されたすべてのメッセージを読取り用に含めます。この値を変更しないでください。ノート:オフセットのサンプル値はテスト・メッセージから取得できますが、その後にメッセージを取得する値を選択する必要があります。これは、
AFTER_OFFSET
のCURSOR_TYPE
の動作です。
-
-
シェル・スクリプト・ファイルを作成し、実行可能にします。
touch ag-streaming.sh chmod u+x ag-streaming.sh
-
viエディタを使用してスクリプトを開きます。
vi ag-streaming.sh
-
iを押して挿入モードに入ります。次の内容を貼り付け、Escと :wq!を押して変更を保存します。
#!/bin/bash # Validate required environment variables required_vars=("STREAM_OCID" "ENDPOINT" "CURSOR_TYPE" "PARTITION" "OFFSET") for var in "${required_vars[@]}"; do if [ -z "${!var}" ]; then echo "Error: Environment variable $var is not set." exit 1 fi done # Create a cursor for the OCI Stream # echo "Creating a cursor for the OCI Stream..." oci streaming stream cursor create-cursor \ --partition "$PARTITION" \ --stream-id "$STREAM_OCID" \ --type "$CURSOR_TYPE" \ --offset "$OFFSET" \ --endpoint "$ENDPOINT" > cursor.json # Extract cursor value cursor=$(jq -r '.data.value' cursor.json) if [ -z "$cursor" ]; then echo "Error: Failed to retrieve cursor value." exit 1 fi # Read messages from the OCI Stream echo "Reading messages from the OCI Stream..." messages=$(oci streaming stream message get \ --stream-id "$STREAM_OCID" \ --cursor "$cursor" \ --endpoint "$ENDPOINT") # Check if messages were retrieved if [ -z "$messages" ] || ! echo "$messages" | jq -e '.data[] | select(.key != null)' > /dev/null 2>&1; then echo "No valid messages found." exit 1 fi # Extract and decode the data from messages echo "Processing messages..." # Extract and count the number of messages message_count=$(echo "$messages" | jq -r '.data[] | select(.key != null) | .value' | wc -l) echo "$messages" | jq -r '.data[] | select(.key != null) | .value' | while read -r value; do if [ -n "$value" ]; then counter=$((counter + 1)) echo echo "Decoding message $counter of $message_count..." # Base64 decode the message decoded_message=$(echo "$value" | base64 --decode 2>/dev/null || echo "Error decoding message") final_decoded_message=$(echo "$decoded_message" | base64 --decode 2>/dev/null || echo "Error decoding message further") # Print the decoded message echo "Decoded Message : $final_decoded_message" fi done
-
スクリプトを実行し、出力メッセージをファイルにリダイレクトします(例として messages_dump.txtを使用します)。または、スクリプトを実行してコンソールにメッセージを表示することもできます。
./ag-streaming.sh > messages_dump.txt
-
OCI Cloud Shellから
messages_dump.txt
ファイルをダウンロードして、以前に行ったユーザー更新のデコードされたメッセージを確認します。
このチュートリアルでは、Oracle Access Governanceのイベント・データ・パブリッシャからパブリッシュされたOCIストリームからのメッセージの読取り方法を学習しました。OCI Cloud Shellを使用してOCIコマンドライン・インタフェース(CLI)を活用し、指定されたオフセットに基づいてメッセージを読み取る方法を確認しました。これらのメッセージには、OCIユーザー、グループ、リソースおよびポリシー・アソシエーションに関する変更が含まれているため、監査、コンプライアンスおよびレポートの観点から重要です。
次のステップ
これらのチュートリアルを完了すると、Oracle Access GovernanceからOCIストリームに公開されたデータ・イベント・メッセージの内容を分析できます。オプションで、監査およびコンプライアンス要件に関するイベント・メッセージを分析するための追加のプロセスを設定できます。また、高度な分析とビジュアライゼーションを実行するために、ストリームから自律型データ・ウェアハウスにデータを移動することもできます。データは、長期ストレージのためにOCIオブジェクト・ストレージに移動することも、Hadoop/Sparkジョブを実行することもできます。
関連リンク
承認
- 著者 - Anuj Tripathi (NAソリューション・エンジニアリング担当プリンシパル・クラウド・アーキテクト)
その他の学習リソース
docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Read Messages Published to an OCI Stream from Oracle Access Governance Event Data Publisher
G20549-01
November 2024