Oracle Access Governanceでのイベント・データ・パブリッシャの構成
Oracle Access Governanceコンソールのデータ・フィード機能を使用して、Oracle Access GovernanceからOCIテナンシにデータ・イベントを公開できます。最初にテナンシで予備構成を実行してから、Oracle Access Governanceコンソールで接続詳細を追加する必要があります。接続の詳細が検証されると、最初のデータ・イベントがオブジェクト・ストレージ・バケットに公開され、後続のすべての更新がOCIバケットまたはOCIストリームで継続的かつ順次受信されます。
前提条件
Oracle Access GovernanceデータをOCIテナンシにエクスポートできます。次に、設定を続行する前に考慮する必要があるいくつかの必須要件を示します。
- Oracle Access Governance管理者ロール
AG_Administratorが割り当てられている必要があります - 「サービス管理」の下の「データ・フィード」メニューを表示するには、Oracle Access Governanceと統合されたアクティブなOracle Cloud Infrastructure (OCI)オーケストレート済システムが必要です。
- Oracle Access Governanceサービス・インスタンス、サービス・アカウント、オブジェクト・ストレージおよびその他の関連リソースはすべて、同じリージョンおよびアイデンティティ・ドメインに存在する必要があります。
- Oracle Access Governanceサービス・インスタンス・テナンシは、同じリージョンにあるかぎり、データを受信するテナンシと異なる場合があります。
- OCIリソースのリージョンがOracle Access Governanceサービス・インスタンス・リージョンと異なる場合は、Oracle Access Governanceサービス・インスタンス・リージョンにアイデンティティ・ドメインをレプリケートします。詳細は、「複数のリージョンへのアイデンティティ・ドメインのレプリケート」を参照してください。
- リージョン内の異なるテナンシで使用可能な複数のOracle Access Governanceサービス・インスタンスを、同じOCIリソースに接続できます。つまり、複数のOracle Access Governanceサービス・インスタンスで使用可能なデータを、同じバケットおよびストリーム内に収集できます。また、Oracle Access Governanceサービス・インスタンスごとに個別のOCIリソースを作成することもできます。
- オブジェクト・タイプをエクスポートする前に、関連するObject Storageバケットとストリーミング・サービスを含むクラウド・アカウントに十分な領域と容量があることを確認してください。アカウントのオブジェクト・ストレージ割当ておよびストリーミング・リソースの制限を確認して、プロセス中の中断を回避します。
データ・イベント・パブリッシャのOCIテナンシの設定
Oracle Access Governanceのデータ・フィード機能を使用してデータを公開する前に、これをサポートするためのOCIリソースをいくつか作成する必要があります。コンパートメント、サービス・アカウント、IAMグループを作成し、サービス・アカウントのAPIキーと認証トークンを生成し、バケットとOCIストリームを作成し、グループ・アカウントとサービス・アカウントに関連リソースへのアクセス権を付与するための適切なポリシーを割り当てる必要があります。
ステップ1: コンパートメントの作成
- テナンシ管理者としてのOracle Cloud Infrastructure Consoleへのサインイン。
- ナビゲーション・メニューを開き、「アイデンティティおよびセキュリティ」を選択します。
- 「アイデンティティ」セクションで、「コンパートメント」を選択します。
- 「コンパートメントの作成」を選択し、コンパートメント名と説明を追加します。
- 「コンパートメントの作成」ボタンを確認して選択します。
data-feed-compartment。詳細は、コンパートメントを作成するにはを参照してください。
ステップ2: 新規ドメインの作成
- OCIクラウド・アカウントで、ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」を選択します。
- 「アイデンティティ」セクションで、「ドメイン」を選択します。
- コンパートメントの選択
- 「ドメインの作成」を選択し、名前や説明などの基本的な詳細を入力します。
- 左側のペインの「コンパートメント」リストで、ステップ1で作成したコンパートメントを選択します。
- デフォルト・ドメインを選択するか、新しいドメインを作成するかを選択できます。
詳細は、アイデンティティ・ドメインの作成を参照してください。
domain-feed-domain
ステップ3: IAMグループの作成
- OCIコンソールで、ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」→「ドメイン」を選択します。
- データ・フィード操作用に作成されたドメインを選択します。
- 左側のペインで、「グループ」を選択します。ドメインで使用可能なグループのリストが表示されます。
- 次の詳細を入力します。
- 名前: グループの名前を入力します。
- 説明: グループに関する説明情報を入力します。
- 「user can request access」チェックボックスを選択します。
- 「作成」を選択します。
writer_access_group
ステップ4: アイデンティティ・ユーザーの追加によるサービス・アカウントの作成
サービス・アカウント用に新しいアイデンティティ・ユーザーを作成します。このユーザーは、ポリシーによる制限付きアクセスが提供され、Oracle Access GovernanceによるOCIリソースへのプログラム的なアクセスにのみ使用されます。このサービス・ユーザーをステップ3で作成したIAMグループに割り当てます。
- OCIコンソールで、ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」→「ドメイン」を選択します。
- データ・フィード操作用に作成されたドメインを選択します。
- 左側のペインで、「ユーザー」を選択します。ドメインで使用可能なユーザーのリストが表示されます。
- 名、姓、ユーザー名または電子メール・アドレスを入力します。
- ユーザーをアイデンティティ・グループに割り当てるIAMグループを選択します。
- 「作成」を選択します。
ステップ5: APIキーの作成
APIキーを作成して、ユーザー・クラウド・アカウントとOracle Access Governanceサービスの間にセキュアな認証を確立します。このサービス・アカウントを使用すると、サービスはOCIリソースに対して適切な操作を実行できます。
- サービス・アカウントのユーザー・ページの左側のペインの「リソース」セクションで、「APIキー」を選択します。
- 「APIキーの追加」ボタンを選択し、「APIキー・ペアの生成」を選択します。
- 公開キーおよび秘密キーをダウンロードします。
- 「追加」を選択します。ocid、fingerprint、tenancy、および regionの詳細を表示する構成ファイルが作成されます。
- 任意のテキスト・エディタで秘密キー・ファイル(.pem拡張子)を開き、ファイルで使用可能な情報を保存します。これは、Oracle Access Governanceでデータ・パブリッシャ機能を構成するために必要です。
ステップ6: 認証トークンの生成
認証トークンは、サービス・アカウント・ユーザーがOCIリソースと対話することを認証および認可するためのOracle生成の認証トークンです。
- サービス・アカウントのユーザー・ページの左ペインの「リソース」セクションで、「認証トークン」を選択します。
- 「トークンの生成」ボタンをクリックします。
- 「トークンを生成」ウィンドウで、わかりやすい説明を入力し、「トークンを生成」をクリックします。
トークンが生成されます。表示されたトークンをコピーして、セキュアな場所に保存します。これは、Oracle Access Governanceでデータ・パブリッシャ・イベント機能を構成するために必要です。
ステップ7: 新規ストリームの作成
Oracle Access Governanceは、1 MBより小さいデータ・セットをOCIストリームに公開します。通常、小規模の更新を含むすべてのDay Nイベントは、テナンシで設定されたストリーミング・サービスに公開されます。
- OCIコンソールで、ナビゲーション・メニューを開き、「分析とAI」を選択します。
- 「メッセージング」セクションで、「ストリーミング」を選択します。
- 一意のストリーム名を入力してください。
- データ・パブリッシャ固有のコンパートメントを選択します。
- ストリーム・プールの場合、デフォルトのストリーム・プールを自動的に作成するか、独自のストリーム・プールを作成するかを選択します。
- 「ストリーム設定の定義」セクションで:
- 「保存(時間)」フィールドに、このストリームにメッセージを保持するための24から168の数値を入力します。任意の数値を入力できます。ただし、最大数として168時間を入力することをお薦めします。
- ストリームに作成するパーティションの数を入力します。最大制限は、テナンシの制限によって異なります。
- 「作成」をクリックします。新しいメッセージング・ストリームが作成されます。
詳細は、「ストリームの作成」を参照してください。
ストリーミング詳細の保存
- ストリームの名前
- メッセージのエンドポイント
- ストリームOCID
- 「ストリーム詳細」ページで、「ストリーム・プール」リンクを選択します。
- ストリーム・プールOCIDをコピーして保存します。
- 「ブートストラップ・サーバー」リンクを表示するには:
- 左側のペインの「リソース」セクションで、「Kafka接続設定」を選択します。
- 「Kafka接続設定」セクションで、「ブートストラップ・サーバー」リンクをコピーして保存します。
ステップ8: 新規オブジェクト・ストレージ・バケットの作成
Oracle Access Governanceは、初期データ・イベントをオブジェクト・ストレージ・バケットに公開します。1 MBより大きいデータを含む定期的な更新は、バケットに公開されます。
- OCIコンソールで、ナビゲーション・メニューを開き、「ストレージ」を選択します。
- 「オブジェクト・ストレージおよびアーカイブ・ストレージ」セクションで、「バケット」を選択します。
- データ・パブリッシャ固有のコンパートメントを選択し、「バケットの作成」をクリックします。
- 「バケットの作成」ウィンドウで、バケットの詳細を入力します。
- 「オブジェクト・バージョニングの有効化」チェック・ボックスを選択します。
- 「作成」をクリックします。新しいバケット・ストリームが作成されます。
Data-event-publisher-bucket
ステップ9: データ・イベント・パブリッシャのポリシーの設定
Oracle Access Governance Data Event PublisherがOCIリソースにアクセスできるように、IAMポリシーを設定する必要があります。
- OCIコンソールで、ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」、「ポリシー」の順に選択します。
- 「アイデンティティ」で、「ポリシー」を選択します。
- 名前とわかりやすい説明を入力します。
- 「ポリシー・エディタ」セクションで、トグル・ボタンを使用して手動エディタに切り替えます。
- 次のようにポリシー・ステートメントを入力します。
Allow group '<domain-name>'/'<group-name>' to use stream-push in compartment <compartment-name> where target.stream.id = '<stream-OCID>'Allow group '<domain-name>'/'<group-name>' to manage object-family in compartment <compartment-name> where target.bucket.name = '<bucket-name>'例
Allow group 'data-feed-domain'/'writer_access_group' to use stream-push in compartmentdata-feed-compartmentwhere target.stream.id = 'ocid1.stream.oc1.iad.amaaaaaa1212121212126pc5dc6wjn7xloxga'Allow group 'data-feed-domain'/'writer_access_group' to manage object-family in compartmentdata-feed-compartmentwhere target.bucket.name = 'Data-event-publisher-bucket'
Oracle Access Governanceでのデータ・パブリッシャの設定の構成
Oracle Access Governanceコンソールで設定を構成して、OCIテナンシのデータ・イベントの受信を開始できます。データ・フィード機能を使用して、データ公開イベントを構成します。
「データ・フィード」ページへのナビゲート
- Oracle Access Governanceコンソールで、ナビゲーション・メニュー・アイコンを選択し、「サービス管理」を選択します。
- 「データ・フィード」を選択します。
データ・フィード・アクションの有効化
- 「データ・フィード」ページで、「アクション」メニューから「設定の管理」を選択します。
- 「データ・フィードを有効にしますか。」オプションで「はい」を選択します。詳細を入力するための構成フィールドが表示されます。
- OCIストリームまたはOCIバケット・ストレージでデータ・イベントを受信するには、「データ型の有効化」チェック・ボックスを選択します。
- OCIストリームで監査イベントを受信するには、「監査イベントの有効化」チェック・ボックスを選択します。データイベントとして監査イベントを送信する場合も、同じストリーム構成が使用されます。
OCIオブジェクト・ストレージ・バケット詳細の追加
- 「どのリージョンにバケットがありますか。」フィールドに、バケットを作成したリージョン識別子を入力します。たとえば、アッシュバーン・リージョンの場合は、
us-ashburn-1と入力します。OCIコンソールの上部ナビゲーション・メニューにリージョン名を表示し、リージョンおよび可用性ドメインから対応するリージョン識別子を表示できます。 - 「バケットがあるのはどのネームスペースですか。」フィールドに、バケット・ネームスペースを入力します。詳細は、オブジェクト・ストレージ・バケットの詳細の取得を参照してください。
- 「バケット名は何ですか。」フィールドに、バケット名を入力します。
- 「テナンシのOCIDは何ですか。」フィールドに、テナンシのOCIDを入力します。テナンシの詳細は、クラウド・アカウント・プロファイルまたは構成ファイルから表示できます。詳細は、Getting My Profile Detailsを参照してください。
- 「どのリージョンにユーザーがいますか。」フィールドに、サービス・アカウント・ユーザー・リージョン識別子を入力します。詳細は構成ファイルで確認できます。詳細は、APIキーの作成を参照してください。
- 「ユーザーのOCIDは何ですか。」フィールドに、サービス・アカウントのOCIDを入力します。詳細は構成ファイルで確認できます。詳細は、APIキーの作成を参照してください。
- 「ユーザーのフィンガープリントとは何ですか。」フィールドに、フィンガープリント値を入力します。詳細は構成ファイルで確認できます。詳細は、APIキーの作成を参照してください。
- 「What is the user's private SSH key?」フィールドで、
-----BEGIN PRIVATE KEY-----から-----END PRIVATE KEY-----までのPEMファイルの内容をコピーして貼り付けます。これは、サービス・アカウントのAPIキーの作成時にダウンロードしておく必要があります。詳細は、APIキーの作成を参照してください。
OCIストリームおよびストリーム・プールの詳細の追加
- 「認証トークンとは」フィールドに、ユーザー認証トークン値を入力します。詳細は、データ・イベント・パブリッシャのOCIテナンシの設定を参照してください。
- 「どのテナンシですか。」フィールドに、テナンシ名を入力します。クラウド・アカウント・プロファイルでテナンシ詳細を表示できます。詳細は、Getting My Profile Detailsを参照してください。
- 「ユーザー名は何ですか。」フィールドに、ドメイン名の接頭辞が付いたサービス・アカウントのユーザー名を
<domain-name/user name>の形式で入力します。たとえば、ドメイン名がdata-pubで、サービス・アカウントのユーザー名がjohn.doeの場合は、data-pub/john.doeと入力します。 - 「メッセージ・エンドポイントとは何ですか。」フィールドに、
httpsまたはブートストラップ・サーバー値のないメッセージ・エンドポイントを入力します。詳細は、ストリーミングの詳細を参照してください。 - 「トピック名とは」フィールドにストリーム名を入力します。詳細は、ストリーミングの詳細を参照してください。
- 「ストリーム・プールOCIDとは何ですか。」フィールドに、ストリーム・プールOCIDを入力します。詳細は、ストリーミングの詳細を参照してください。ヒント
ストリームOCIDではなく、ストリーム・プールOCIDを入力してください。 - 「保存」をクリックします。構成の詳細が保存されます。検証エラーがある場合は、詳細を保存する前にそれらを解決する必要があります。
- 「アクション」で、「今すぐデータを公開」をクリックします。確認メッセージが表示され、「公開」をクリックします。
jsonフォルダの下に複数のイベント・ファイルが表示されます。OCIストリーム・メッセージは、Kafka JavaクライアントとOCI SDKの2つの異なる方法を使用して消費できます。各メソッドは、正しいメッセージ解釈のために個別のデコード・プロセスに従います。
-
OCI SDKの使用: ストリーム・メッセージのキーを1回デコードし、値を2回デコードする必要があります。
-
Kafka Javaクライアントの使用: ストリーム・メッセージの値を1回デコードするだけで、キーにデコードは必要ありません。