ノート:

複数のOracle Cloud Infrastructureテナンシから中央のOracle Cloud Infrastructureテナンシ・バケットへのログの一元化

イントロダクション

異なるテナンシからのものであっても、すべてのログを1箇所に一元化する必要がある場合があります。業界規制や企業政府のポリシーが原因である可能性があります。どのような場合であっても、これを実現するために異なる管理上の懸念に直面する可能性があります。

このチュートリアルでは、OCIクロス・テナンシ・アクセスとOCIコネクタ・ハブ・サービスを使用して、アーカイブまたはビジュアライゼーションの目的で中央テナンシの下で、異なるOracle Cloud Infrastructure (OCI)テナンシで生成された監査、サービスまたはカスタム・ログを一元化します。

アーキテクチャの図

アーキテクチャの図。

ノート:このチュートリアルでは、すべてのテナンシが同じリージョンにある必要があります。

目的

前提条件

タスク1: 宛先テナンシでのポリシーの作成

OCIオブジェクト・ストレージ・バケットが存在する宛先テナンシ(テナンシC)に、次のOCI IAMポリシーが構成されます。

  1. テナンシAの次の情報を取得します。

    • OCID
    • OCIコネクタ・ハブがデプロイされるコンパートメントOCID。
  2. テナンシCの次の情報を取得します。

    • バケットが作成されたコンパートメント名。
  3. ステップ1および2で収集された情報を使用して、次のポリシーを作成します。

    • リモート・テナンシを定義します。

      define tenancy SCTenancyA as <Tenancy A OCID>
      

      ノート:ステップ1で収集された情報で<Tenancy A OCID>を更新します。

    • リモート・テナンシからのサービス・コネクタ・プリンシパルに、ローカル・コンパートメント内のバケットの読取りを許可します。

      admit any-user of tenancy SCTenancyA to read buckets in compartment <Tenancy C Compartment name> where all { request.principal.type='serviceconnector', request.principal.compartment.id='<Tenancy A Compartment OCID>' }
      

      ノート: <Tenancy C Compartment name>および<Tenancy A Compartment OCID>を対応する情報で更新します。

    • リモート・テナンシのサービス・コネクタ・プリンシパルが、オブジェクト検査およびオブジェクト作成アクションに制限されたオブジェクトをローカル・バケットで管理できるようにします。

      admit any-user of tenancy SCTenancyA to manage objects in compartment <Tenancy C Compartment name> where all { request.principal.type='serviceconnector', request.principal.compartment.id=’ <Tenancy A Compartment OCID>' , any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}
      

      ノート:

      • <Tenancy C Compartment name>および<Tenancy A Compartment OCID>を対応する情報で更新します。
      • すべてのリソースは、ソース・コンパートメントまたは宛先コンパートメントのスコープにあります。承認、許可および定義ステートメントの詳細は、承認、許可および定義ステートメントを参照してください。
  4. OCIコンソールにログインし、「アイデンティティとセキュリティ」に移動して「ポリシー」をクリックします。

  5. ルート・コンパートメントにいることを確認し、「ポリシーの作成」をクリックします。

  6. 「名前」「説明」と入力し、「手動エディタの表示」をクリックします。

  7. タスク1.3で作成したポリシーを記述し、「作成」をクリックします。

ポリシーは次のとおりです。

Policies_destination.

タスク2: ソース・テナンシでのポリシーの作成

OCIコネクタ・ハブがデプロイされる各ソース・テナンシ(テナンシAおよびテナンシB)で、次のOCI IAMポリシーを構成する必要があります。OCI Connector Hubはログを収集し、中央リポジトリに送信します。

  1. テナンシAの次の情報を取得します。

    • OCIコネクタ・ハブがデプロイされるコンパートメントOCID。
  2. テナンシCの次の情報を取得します。

    • OCID
  3. ステップ1および2で収集された情報を使用して、次のポリシーを作成します。

    • リモート・テナンシを定義します。

      Define tenancy OSTenancyC as <Tenancy C OCID>
      

      ノート: <Tenancy C OCID>を対応する情報で更新します。

    • ローカル・テナンシのサービス・コネクタ・プリンシパルが宛先テナンシのバケットを読み取ることを許可します。

      endorse any-user to read buckets in tenancy OSTenancyC where all {request.principal.type = 'serviceconnector', request.principal.compartment.id='<Tenancy A Compartment OCID>' }
      

      ノート: <Tenancy A Compartment OCID>を対応する情報で更新します。

    • ローカル・テナンシのサービス・コネクタ・プリンシパルが、オブジェクト検査およびオブジェクト作成アクションに制限されたオブジェクトを宛先テナンシで管理できるようにします。

      endorse any-user to manage objects in tenancy OSTenancyC where all {request.principal.type = 'serviceconnector', request.principal.compartment.id='<Tenancy A Compartment OCID>' , any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}
      

      ノート:

      • <Tenancy A Compartment OCID>を対応する情報で更新します。
      • すべてのリソースは、ソース・コンパートメントまたは宛先コンパートメントのスコープにあります。承認、許可および定義ステートメントの詳細は、承認、許可および定義ステートメントを参照してください
  4. OCIコンソールにログインし、「アイデンティティとセキュリティ」に移動して「ポリシー」をクリックします。

  5. ルート・コンパートメントにいることを確認し、「ポリシーの作成」をクリックします。

  6. 「名前」「説明」と入力し、「手動エディタの表示」をクリックします。

  7. タスク2.3で準備したポリシーを入力し、「作成」をクリックします。

ポリシーは次のとおりです。

Policies_source.

タスク3: ソース・テナンシへのOCIコネクタ・ハブのデプロイ

OCI CLIを使用して、OCIコネクタ・ハブをソース・テナンシ(テナンシAおよびテナンシB)にデプロイします。

ノート:他のテナンシのリソースにアクセスするコネクタを作成するには、OCI SDK、CLIまたはAPIを使用する必要があります。

  1. ソース・テナンシのOCI CLI (テナンシAおよびテナンシB)に接続します。このチュートリアルでは、OCI Cloud Shellを使用します。OCI Cloud Shellの使用方法の詳細は、Cloud Shellの使用を参照してください。

  2. source.jsonおよびtarget.jsonという名前の2つのファイルを作成します。

    • source.json: ログが収集されるソース・テナンシ(テナンシAまたはテナンシB)からのログ・ソースを定義します。

      次のパラメータをサンプル・コードの値で更新します。

      • <Tenancy A OCID where Audit log resides>
      • <Tenancy A Compartment OCID where log group resides>
      • <Tenancy A Log Group OCID>
      • <Tenancy A _Log-ID OCID_>
      {
      
      "kind": "logging",
      
      "logSources": [
      
      					{
      
      					"compartment-id": "_<Tenancy A OCID where Audit log resides>_",
      
      					"log-group-id": "_Audit_Include_Subcompartment",
      
      					"log-id": null
      
      					},
      
      					{
      
      					"compartment-id": "_<Tenancy A Compartment OCID where log group resides>_",
      
      					"log-group-id": _"<Tenancy A Log Group OCID>",_
      
      					"log-id": "<Tenancy A _Log-ID OCID_>"
      
      					}
      
      				]
      
      }
      

      ノート:前述のsource.jsonサンプルには、2つのログ・ソースがあります。1つ目は、ルート・コンパートメントおよびすべてのサブコンパートメントから監査ログを収集するようにOCI Connector Hubを構成します。2つ目は、サブネット・ログのように、ログ・グループ(log-idおよびlog-group-idで定義)から特定のログを収集するようにOCIコネクタ・ハブを構成します。必要に応じて、この構成に対してログ・ソースを追加または削除できます。

    • Target.json: ログがアーカイブされる宛先テナンシ(テナンシC)のバケットを定義します。

      {
      			"kind": "objectStorage",
      			"bucketName": "<Tenancy C bucket name>",
      			"namespace": "<Tenancy C namespace where bucket was created>"
      }
      

      ノート:バケット・ネームスペースは、バケットの詳細から取得できます。

  3. 次のコマンドを実行します

    oci sch service-connector create --compartment-id <Compartment OCID where SCH will be placed in Tenancy A> --display-name <Display name> --source file://Source.json --target file://Target.json
    

    ノート: source.jsonおよびtarget.jsonファイルにアクセスできる必要があります。

    Connector_deployment.

  4. 必要に応じて、他のすべてのソース・テナンシに対してステップ1から3を繰り返します。追加のOCI Connector Hubターゲット・オプションについては、ObjectStorageTargetDetailsリファレンスを参照してください。

  5. 結果を確認します。

    • ソース・テナンシに、定義されたソースおよび宛先バケットを持つOCIコネクタ・ハブが作成されます。

      Connector_console.

    • 宛先バケットには、各OCIコネクタ・ハブのエントリが含まれます。

      Bucket_Content.

確認

その他の学習リソース

docs.oracle.com/learnの他のラボをご覧いただくか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。

製品ドキュメントは、Oracle Help Centerを参照してください。