Oracle Functionsおよびイベントを使用したOracle Cloud Infrastructure WAFログの収集
Oracle Cloud Infrastructure (OCI) Web Application Firewall (WAF)は、Webアプリケーションを脅威から保護するOracle Cloudサービスです。ログは、WAF Service内で使用できます。このドキュメントでは、Splunkなどのサード・パーティでさらに使用するために、WAFログをコンパイルしてOCIロギングに転送するアーキテクチャについて説明します。
アーキテクチャ
このアーキテクチャでは、Splunkなどのサード・パーティでさらに使用するために、WAFログをコンパイルしてOCIロギングに転送する方法について説明します。
次の図に、この参照アーキテクチャを示します。

waf_logs_function_events.pngの説明
このアーキテクチャには次のコンポーネントがあります。
- リージョン
Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。リージョンは他のリージョンから独立しており、広く離れた距離(国間または大陸間)にすることができます。
- Webアプリケーション・ファイアウォール
Webアプリケーション・ファイアウォール(WAF)は、Webアプリケーションとインターネット間のHTTPトラフィックをフィルタ処理および監視します。これは、ほとんどの悪意のある攻撃からWebアプリケーションを保護するプロトコル・レイヤー7の防御です。
- 可用性ドメイン
可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。アベイラビリティ・ドメインは、電源や冷却などのインフラストラクチャや内部アベイラビリティ・ドメイン・ネットワークを共有しません。したがって、ある可用性ドメインで障害が発生しても、リージョン内の他の可用性ドメインには影響しません。
- テナント
テナンシは、Oracle Cloud Infrastructureへのサインアップ時にOracleによってOracle Cloud内に設定されるセキュアで分離されたパーティションです。テナンシ内のOracle Cloudでリソースを作成、編成および管理できます。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定するカスタマイズ可能なソフトウェア定義ネットワークです。従来のデータ・センター・ネットワークと同様に、VCNではネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる複数の重複しないCIDRブロックを含めることができます。VCNは、リージョンまたは可用性ドメインにスコープ指定できるサブネットにセグメント化できます。各サブネットは、VCN内の他のサブネットと重複しない連続したアドレス範囲で構成されます。作成後にサブネットのサイズを変更できます。サブネットはパブリックまたはプライベートにできます。
- オブジェクト・ストレージ
オブジェクト・ストレージを使用すると、データベース・バックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツを含む、あらゆるコンテンツ・タイプの大量の構造化データおよび非構造化データにすばやくアクセスできます。迅速かつ頻繁にアクセスする必要がある「ホット」ストレージには、標準ストレージを使用します。長期間保持し、ほとんどまたはほとんどアクセスしないコールド・ストレージには、アーカイブ・ストレージを使用します。
- ロギングロギングは、クラウド内のリソースから次のタイプのログにアクセスできる、拡張性の高い完全に管理されたサービスです。
- 監査ログ:監査サービスによって発行されたイベントに関連するログ。
- サービス・ログ: APIゲートウェイ、イベント、関数、ロード・バランシング、オブジェクト・ストレージ、VCNフロー・ログなど、個々のサービスによって発行されるログ。
- カスタム・ログ:カスタム・アプリケーション、他のクラウド・プロバイダまたはオンプレミス環境からの診断情報を含むログ。
お薦め
- VCNおよびサブネット
OCI関数をサブネットおよびVCNにアタッチする場合は、サブネットがオブジェクト・ストレージとOCIロギング・エンドポイントの両方に正しく到達できることを確認する必要があります。
- オブジェクト記憶域サービス
このサービスは、WAFサービスによって自動的に発行されたWAFログを収集します。このバックで「イベントの発行」が有効になっていることを確認する必要があります
- イベント・サービス
このサービスは、WAFログ・オブジェクト記憶域バケットで新規オブジェクト作成イベントを監視します。この特定のバケットに作成されたオブジェクトのみをフィルタリングすることをお薦めします。
- ファンクション・サービス
このサービスは、新しいオブジェクト作成イベントでトリガーされます。
- ロギング
このアーキテクチャでは、WAF Serviceによって生成されたオブジェクト・ストレージからログを取得します。トラブルシューティングが必要な場合は、ファンクション・ロギングを有効にすることもお薦めします。
- アクセス制御使用するOCI関数は、リソース・プリンシパルによって認証されます。このパターンを満たすには、次のことを可能にするポリシーを持つ動的グループが必要です。
Allow dynamic-group WAFLogs to use logging-family in compartment compartment
Allow dynamic-group WAFLogs to read buckets in compartment compartment_name
Allow dynamic-group WAFLogs to read objects in compartment compartment_name
- サービス・ゲートウェイ
サブネットに関数をデプロイする場合は、サービス・ゲートウェイを使用してオブジェクト・ストレージおよびOCIロギング・サービス・エンドポイントと通信します。
注意事項
このアーキテクチャを実装する際は、次の要因を考慮してください。
- パフォーマンス
アーキテクチャは、WAFサービスによって生成されるイベントの数に基づいてスケーリングされます。OCIロギング・サービスは高度にスケーラブルです。
イベント、関数およびストリーミングも拡張性が高く、ロギング・サービスから送信されるイベント情報を格納するための一時的なパイプとして使用されます。ストリーミング・サービスは、ロード・バランサとしても機能します。予想されるログ・データの量に基づいて、パーティションおよびストリームの数を調整することを検討してください。
- 可用性
Oracleは、クラウド・ネイティブで完全に管理される関数、イベント、ストリーミング、ロギング・サービスの高可用性を保証します。
ストリーミングには、次の高可用性機能が含まれます。- ログ・データの一定フロー
- マルチスレッドで水平方向にスケーラブルなサービス
- ほぼリアルタイムの収集
- 短期間の停止に対するリジリエンス
- 効率的なデータ使用のために最適化
- 視覚化と分析 ログが収集されたら、次のような複数の実装パターンから選択できます。
- Oracle Logging Analytics
- SplunkのOCIロギング・アドオンを使用したSplunkへのログインの収集
- SplunkのOCIアプリケーションを使用したログの視覚化