Facebook Twitter
お問い合わせ
TOPICS
更新情報
ホーム > ブログ > Oracle Cloud > 【Oracle Cloud】WAFのエッジ・ポリシーのログを、バケットに配信する

【Oracle Cloud】WAFのエッジ・ポリシーのログを、バケットに配信する

ブログ
Oracle Cloud
2023.06.05

皆さま、こんにちは!y.takanashiです。

  

今回はWAFのエッジ・ポリシーのログをオブジェクト・ストレージのバケットに配信する方法についてご紹介します。


エッジ・ポリシーとは?

エッジ・ポリシーとはWAF(Web Application Firewall)の一種で、DNSのCNAMEレコードにアクセスポイントを提供することにより、不正アクセスからアプリケーションを保護することができます。

エッジ・ポリシーはアクセス等のログを記録することができますが、デフォルトでは7日間のみ保持されます。

長期間ログを保持する場合や、アクセスログを分析する必要がある場合には、オブジェクト・ストレージのバケットにログを配信する仕組みを構築する必要があります。

 

そこで本記事では、エッジ・ポリシーで取得したログをオブジェクト・ストレージのバケットに配信する方法についてご紹介します。

 

エッジ・ポリシーの詳細については以下の資料をご覧ください。

OCI公式ドキュメント - 「エッジ・ポリシーの開始

Speaker Deck - 「WAFエッジポリシー設定手順書」


必要な各情報の取得

WAFログの配信を有効にするために、以下の情報をOracleサポートに共有し、実装作業を依頼します。

  • ネーム・スペース
  • テナンシのOCID
  • リージョン識別子
  • コンパートメントのOCID
  • アクセス・キー
  • 顧客秘密キー
  • IAMポリシーのOCID
  • バケット名
  • バケットのOCID
  • バケットのリージョン
  • WAFポリシーのOCID
  • エッジ・ポリシーのプライマリ・ドメイン

それでは各種情報の取得方法についてご紹介します。


ネーム・スペース、テナンシのOCIDの取得

最初にネーム・スペースと、テナンシのOCIDの取得方法についてご紹介します。

 

OCIコンソール画面右上の人型アイコンから「テナンシ」を選択します。

テナンシの詳細画面から、テナンシのOCIDとオブジェクト・ストレージ・ネームスペースをそれぞれ取得しておきます。


リージョン識別子の取得

OCIコンソール画面の「リージョンの管理」を選択します。

任意のリージョン(ここでは東京リージョン)からリージョン識別子を取得することができます。


コンパートメントのOCIDの取得

コンパートメントは、エッジ・ポリシーが配置されているものを使用します。

OCIDの取得方法は、OCIコンソール画面左上のハンバーガーアイコンから「アイデンティティとセキュリティ」→「コンパートメント」を選択します。

以下の赤枠からコンパートメントのOCIDを取得することができます。


ユーザー情報について

ここでは、WAFログの配信用に新しいユーザーとして「api.waf.log.user」を作成し、そのユーザーから必要な情報であるアクセスキーと秘密キーを取得します。

アクセス・キーの取得

ユーザー詳細画面から「APIキー」→「APIキーの追加」を選択します。

既にアクセス・キーを保持している場合は「公開キー・ファイルの選択」もしくは「公開キーの貼付け」からアクセス・キーを追加します。

保持していない場合は「APIキー・ペアの生成」からアクセス・キーを作成しましょう。

APIキーのフィンガー・プリントはOracleサポートに依頼する際に必要な情報として使用しますので、以下の赤枠の値をコピーしておきましょう。

顧客秘密キーの取得

ユーザー詳細画面から「顧客秘密キー」→「秘密キーの生成」を選択します。

任意の名前(ここでは「customer-secret-key」)を入力後、「秘密キーの生成」を選択します。

生成後、トークンが発行されますのでこちらをコピーしておきます。

以上でアクセス・キーと秘密キーの取得は完了となります。


IAMポリシーの作成

オブジェクト・ストレージを管理するためには以下のステートメントを含むIAMポリシーが必要となります。

Allow group <アクセス・キーと顧客秘密キーを作成したユーザーがいるグループ> to manage object-family in compartment <WAFポリシーが存在するコンパートメント>

ポリシーの作成後、OCIDをコピーしておきます。


バケット情報の取得について

バケットの作成

IAMポリシーの作成後、WAFログ配信用のバケットの作成と設定を行います。

OCIコンソール画面左上のハンバーガーアイコンから「ストレージ」→「バケット」を選択します。

バケットの作成」から、バケット名(ここでは「Bucket_cloudii.jp」)を入力し、「作成」を選択します。

※サポートされているのは標準バケットのみで、アーカイブ・ストレージ層はサポートされていないためご注意ください。

作成後、バケット名とOCID、バケットを作成したリージョンの識別子をそれぞれコピーしておきましょう。

以上でバケットの作成・設定は完了となります。


WAFの各情報の取得

OCIDの取得

WAFのOCIDはポリシー詳細から取得することができます。

プライマリ・ドメインの取得

またエッジ・ポリシーのプライマリ・ドメインですが、以下の赤枠から取得できます。

アプリケーションのドメインは事前にDNSのゾーンに、CNAMEとして登録する必要があります。

ここではOCIのDNSサービスを例にして、登録方法をご紹介します。

 

OCIコンソール左上のハンバーガー画面から「ネットワーキング」→DNS管理内の「ゾーン」を選択します。

レコードの管理」から以下の項目を入力、「レコードの追加」を選択します。

  • 名前:任意(ここでは「dev.cloudii.jp」)
  • タイプ:CNAME
  • TTL:任意(ここでは3,600秒)
  • ターゲット:CNAMEターゲットに記載されているドメイン

変更の公開の確認」を選択後、DNSのゾーンが更新されます。

以上で、全ての情報の取得は完了となります。

バケットへのWAFログの配信の詳細については、以下の資料をご覧ください。

OCI公式ドキュメント - 「エッジ・ポリシーのログ」


WAFログのアップロード

取得をした情報を元に、OracleサポートにWAFログの配信依頼を行います。

依頼内容としてはシンプルに、本文に各情報を記述するだけで対応できます。

以下が記述例です。

※「アップロード接頭辞」の入力は任意です。

依頼した数日後に実装され、完了後は以下のように、指定したバケットにWAFログがアップロードされるようになります。

上記のように、WAFログは日付と種類に基づいてフォルダに分類され、特定のログを容易に取得することができます。

ただし、WAFログのファイル名が分かりにくく、名前変更できない点が課題です。

以上で、全ての設定は完了となります。


まとめ

最後にWAFログをバケットに配信する方法についてまとめます。

  • 以下の情報を事前に取得する必要がある
    • ネーム・スペース
    • テナンシのOCID
    • リージョン識別子
    • コンパートメントのOCID
    • アクセス・キー
    • 顧客秘密キー
    • IAMポリシーのOCID
    • バケット名
    • バケットのOCID
    • バケットのリージョン
    • WAFポリシーのOCID
    • エッジ・ポリシーのプライマリ・ドメイン
  • 上記の情報を元にOracleサポートに依頼後、数日程度で実装完了
  • 日付と種類別にフォルダが作成されてファイルがアップロードされるが、ファイルの名前変更は行えない

トラフィック量を考慮して、エッジ・ポリシーのログは7日間のみ保存されます。

しかし、オブジェクト・ストレージのバケットを使用することで、ログを永続的に保存することができます。

さらに、マネージドで日付や種類毎でフォルダを分けて、その中にログファイルを格納することで、これまでのログへのアクセスも容易に行うことができます。

以上となります。

この記事を通じて読者の皆様の問題解決の一助となれば幸いです。

最後まで読んで頂き、ありがとうございましたm(_ _)m


この記事が気に入ったら
「いいね!」

この記事を書いた人


関連コンテンツ

CONTACT お問い合わせ

Cloudiiのサービスやプロダクトについて
興味をお持ちの方は、
お気軽にお問い合わせください。