目的
こんにちは。OCI使ってますか?ログの管理や保存、分析に困ってませんか?
セキュリティの要件などで監査ログやプロセスログを長期保存する必要がある。必要な時だけログを使いたい。
そういった場面のためのログのバケット保存の構成を紹介します。
今回やること
- OCIコンソールの操作ログをコネクタ・ハブ経由でオブジェクト・ストレージバケットに送信
- バケットの保持ルールで2年間保管できるようにする
OCIの監査ログについて
Audit (監査) とは
- OCI上の 全てのAPIコールを自動的に記録するサービス
- デフォルト有効化されており、無償で利用が可能
- 記録された情報 (監査ログ) は 365日分 保持される
_Auditという名前で各コンパートメントに自動で作成される

保存期間について
OCI公式ドキュメントより抜粋(監査ログの保存期間)
監査ログは365日間保持されます。
保持期間はテナンシレベルの設定です。保持期間の設定値は、すべてのリージョンとすべてのコンパートメントに影響します。
保存期間は変更できません。
監査ログのバケット格納手順
ストレージバケットの作成
- 監査ログを格納する用のバケットの作成。
- 名前以外デフォルト設定で作成します。

- 今回は[ルートコンパートメント]配下に[AUDIT]というバケット管理専用のコンパートメントを作成して、そちらにバケットを作成しています。

コネクタの作成
- ソースに[ロギング]を選択
- ターゲットに[オブジェクト・ストレージ]を選択
- ソース接続の構成はルートコンパートメントを選択し、ログ・グループに[_Audit]を選択。
- [サブコンパートメントに_Auditを含める]にチェックを入れることでルート配下、つまり全てのコンパートメントのAuditを対象としています。
- 問い合わせ構文の右下でログが検出できているか確認できます。

- ターゲットの構成にて[バケット]に先ほど作成したログ格納用バケットを指定
- ポリシーが不足している場合はポリシーの自動作成ができるため、必要に応じて作成します。(ポリシーまで管理したい場合は手動で作っておくでもOKです!)
自動作成されたポリシーは以下となります。
allow any-user to manage objects in compartment id コンパートメントOCID where all {request.principal.type='serviceconnector', target.bucket.name='Audit-console-log', request.principal.compartment.id='コンパートメントOCID'}

コネクタ作成完了

ログの格納確認
- コネクタ作成後、バケットへのログの格納までは8〜10分程度かかりました。
- それ以降も8〜10分毎ぐらいで送信してくれてました。

バケットのライフサイクル・ポリシー・ルール設定
ライフサイクル・ルール用のポリシーを作成
- [アイデンティティとセキィリティ]より[ポリシーの作成]を選択

- 対象のバケットを選択し、[ポリシー]より[ライフサイクル・ポリシー・ルール:ルールの作成]を押下

- IAMポリシーの作成画面にて、[ポリシー・ビルダー]より[手動エディタの表示]を選択しポリシーを記述
- 東京リージョン用
Allow service objectstorage-ap-tokyo-1 to manage object-family in compartment <対象コンパートメント名>

- ターゲットに[オブジェクト]を選択
- [ライフサイクル・アクション]を[削除]に指定
- [日数]を[730]日に指定

- 作成後、対象ルールの[状態]が有効になっていればOKです。

まとめ
OCI の監査ログ(Audit)は無償かつ自動で取得できる非常に便利な仕組みですが、
保存期間は 365 日に固定されており、要件によっては不足するケースもあります。
本記事では、
Service Connector Hub を利用して監査ログをオブジェクト・ストレージへ転送し、
ライフサイクル・ルールによって 2 年間保管する構成を紹介しました。
この構成であれば、
通常時はログを低コストで保管し、
必要なときだけオブジェクト・ストレージから取り出して確認するといった運用が可能になります。
また、今回は監査ログを対象としましたが、
ログ・グループに出力されているログであれば対象を問わず
インスタンスの /var/log/secure や sudo ログなどの OS ログについても、
同様にオブジェクト・ストレージへ保管することが可能です。
次回は、
オブジェクト・ストレージに保存したログを Log Analytics で分析する方法
について紹介したいと思います。