はじめに
OCI に限らず、基本的な部分として特別な設定を行わない場合、自テナントの情報しか取得することが出来ないことは、セキュリティ的にも普通なことだと思われます
しかし、子テナントを作成して運用していたり、別会社にて契約されているテナントの情報を取得したい場合など、クロステナンシで接続したいことは少なからず発生致します
そこで、本記事では別テナントの Logging サービスで出力されている監査ログを取得し、オブジェクト・ストレージに格納する設定をご紹介したいと思います
※子テナントを部署毎に作成し、親テナント側で一括で監査ログを管理・収集する運用をイメージしていただければ、判りやすいかと思います
構成
本記事では添付した構成のように、 src tenant の監査ログを Logging サービスを経由し、 accumulation tenant の Service Connector Hub で収集してオブジェクト・ストレージに格納する構成としています
SRC テナントのポリシー
1 2 |
Define tenancy AccumTenancy as <AccumTenancy_OCID> Admit any-user of tenancy AccumTenancy to read audit-events IN tenancy where all {request.principal.type = 'serviceconnector'} |
上記ポリシーを src tenant に設定します
設定内容は
- accumulation tenant の ocid でテナントを定義
- accumulation tenant の Service Connector に監査ログへの read 権を付与
となります
Accumulation テナントのポリシー
1 2 3 |
define tenancy SrcTenancy as <Src_OCID> endorse any-user to read audit-events IN tenancy SrcTenancy where all {request.principal.type = 'serviceconnector'} Allow any-user to manage objects in compartment id <Bucket_Compartment_OCID> where all {request.principal.type='serviceconnector', target.bucket.name='<Bucket_Name>', request.principal.compartment.id='<ServiceConnector_Compartment_OCID>'} |
上記ポリシーを accumulation tenant に設定します
設定内容は
- src tenant の ocid でテナントを定義
- src tenant の監査ログへの read 権を Service Connector に定義
- オブジェクト・ストレージのバケットへ Service Connector から格納する権限を付与
となります
Service Connector の作成
1 2 3 4 5 |
oci sch service-connector create \ --display-name <Connector_Name> \ --compartment-id <ServiceConnector_Compartment_OCID> \ --source '{ "kind": "logging", "logSources": [ { "compartmentId": "<root_Compartment_OCID>", "logGroupId": "_Audit" } ] }' \ --target '{ "kind": "objectStorage", "bucketName": "<Bucket_Name>", "objectNamePrefix": "SrcTenant" }' |
Service Connector を作成する際に、下記の注意点がございます
- ソースをリモートテナントの Logging サービスにするため、OCID で指定することが出来ない GUIでは設定出来ません(OCI CLI や REST API を使用する必要があります)
- 監査ログには、ログ・グループIDが存在しないため、
_Audit
を指定します
a. 内部的には OCID が存在するのかもしれませんが表示されず、確認することも出来ません
b. 後述する方法により、 _Audit というグループIDを特定し、使用しています
c._Audit
の利用は現時点では可能でありますが、将来的に利用出来る保証はございません
監査ログのグループIDの確認手法
ロギングの検索などで拡張モードにすると、以下の問い合わせ構文が得られます
上記より、監査ログのグループIDは _Audit
で利用可能であると推察し動作確認を行っております
また、サブコンパートメントに_Auditを含める場合には、 _Audit_Include_Subcompartment
とすれば良いようです
まとめ
Service Connector 作成時のポイントに注意すれば、別テナントの監査ログを一つのテナントに集約させることが簡単に行えます
また、 Service Connector を OCI CLI で作成することの利点として、下記画像のように監査ログをプレフィックス付きでバケットに格納することも出来ます
通常、 Service Connector Hub でオブジェクト・ストレージにログファイルを格納すると、バケットの直下に格納され、プレフィックスを付与することは出来ません
OCI CLI で作成しプレフィックスを付与すれば、監査ログ用のバケットを一つ用意し、プレフィックスによりテナントを整理するといったことも可能となります