はじめに
Oracle Cloud Infrastructure (OCI)には、構築したOCI環境にセキュリティ等の問題がないかチェックしてくれる「クラウド・ガード (Cloud Guard)」というサービスがあります。
例えば以下のような問題を検知してくれます
- オブジェクトストレージのバケットをパブリック公開にしてしまっていた
- 不要なパブリックIPを付与していた
- データベースの自動バックアップが有効になっていない
なんと無償で使えます。ぜひ使ってみましょう。
構成方法
クラウド・ガードの有効化
必要なポリシーを追加するため、スイッチをONの状態にして、次に進みます
レポートリージョンを選択します。あとから変更できません。
以前はここで対象のコンパートメントやレシピを選択する画面があったようですが、現在はルートコンパートメント(子コンパートメントを含む)を対象に「脅威」、「構成」、「アクティビティ」のOracle提供レシピを割り当てるか、何も割り当てないかの2択になっています。
要件に合わせたレシピを設定する場合、ここはスイッチをOFFの状態で進めて、後でレシピを追加します。
なお、作成時に以下のエラーメッセージが出ることがありました。
Compartment xxxxxxxxxx is missing required permissions to read following resource types : [tenancies]
この場合、一度「取消」をクリックしてから、もう一度同じ操作をすることで無事に有効化できました。
ディテクタ・レシピの作成
ディテクタ・レシピは問題がないか監視するルールのルール集のようなものです。
- 「脅威」
- 「構成」
- 「アクティビティ」
- 「Instance Security」
- 「Container Security」
というカテゴリがあります。
それぞれのカテゴリごとにOracle提供のディテクタ・レシピが用意されているため、これをクローンして要件に合わせてカスタマイズします。
また、ポートを監視するようなルールでは、対象のポートをカスタマイズするといったこともできます。
ディテクタ・レシピの各ルールの詳細は以下のマニュアルに記載されています。
レスポンダ・レシピの作成
レスポンダ・レシピはディテクタ・レシピで問題が検出された時に使用されます。
Oracle提供のレスポンダ・レシピは1つのみです。
こちらもクローンして要件に合わせてカスタマイズをおこないます。
レシピの中身のルールは
- NOTIFICATION
- 発生した問題をイベントサービスに連携します
- このタイプのルールは1つのみ定義されています(ルール名:Cloud Event)
- REMEDIATION
- 発生した問題の修復をおこないます(例:パブリックIPの削除)
の2種類のタイプがあります。
修復は、デフォルトでは問題を検知した際に「修正」ボタンをクリックすることで、問題を解決する修復作業が実行されます(例:バケットの公開範囲をパブリックからプライベートにする)
設定によって、問題が検知されると自動的に修復をおこなうようにすることもできます。
レスポンダ・レシピの各ルールの詳細は以下のマニュアルに記載されています。
ターゲットの作成
監視対象とレシピを設定します。
下記の設定項目があります。
- 監視対象のコンパートメント(子コンパートメントを含む)
- 構成ディテクタ・レシピ
- アクティビティ・ディテクタ・レシピ
- Instance Security Recipe(オプション)
- Container security recipe(オプション)
- レスポンダ・レシピ(オプション)
ターゲットを設定すると監視が始まります。
なお、最初に設定してから実際に検知されるまでしばらくかかる場合があるようです。
通知設定
レスポンダ・レシピのNOTIFICATIONタイプのルール(Cloud Event)を有効にしている場合、問題が発生するとイベントサービスに連携がおこなれます。
このため、イベントサービスを利用して通知やファンクション呼び出しをおこなうことができます。
このあたりを簡単にできるのがクラウドネイティブサービスのいいところですね。
関連記事
問題発生時
概要ページや問題のページで確認できます。
修正ボタンを押して修正することができます。
事前に必要なポリシーは設定しておく必要がありますが、ターゲットの詳細ページから該当のレシピ、ルールを開くと、必要なステートメントが記載されており、ボタン1つでポリシーを追加することも可能です。