Oracle Cloudつかっていますか?

こんにちは。皆様Oracle Cloud使っていますか?
前回、執筆したAlways Freeの記事からずいぶん経ってしまいました。
私はというと・・・作成したテナントを放置してしまい、気づいたときには消えた後でした

 

がーん。

 

読者のみなさんもおきをつけくださいね

ちなみに本執筆者はOracle Cloud Infrastructure 2021 Certified Architect Professionalを取得しました!※Cloud 3冠達成!に登場したOCIにも精通している社員です

気を取り直して、
今回はOracle Cloudインスタンスのセキュリティ対策から
ファイアウォール機能である

  • セキュリティリスト
  • ネットワーク・セキュリティ・グループ

について紹介します。

インスタンスのセキュリティ対策って?

Oracle Cloudでは、インスタンスに対するセキュリティ対策として

  • セキュリティリスト
  • ネットワーク・セキュリティ・グループ

の2つが提供されています。

どちらも「セキュリティ・ルール」を作成することによって、ファイアウォール機能を果たします。

ルールはホワイトリスト方式で管理され、

  • イングレス、エグレス
  • ステートフル、ステートレス
  • IPプロトコル
  • ポート番号
  • ICMP

などを指定して作成します。

両方とも似たような機能ですが、キュリティリストとネットワーク・セキュリティ・グループの一番大きな違いは下記になっています。

セキュリティリスト

従来からあった機能。セキュリティリストが関連付けられているサブネット内すべてのVNICに対して作用します。

ネットワーク・セキュリティ・グループ

VCN内の特定のVNICに作用します。VNICを指定するため、サブネット内の他のVNIC
には作用しません。

より詳しい説明、比較は以下をご覧ください。
https://docs.oracle.com/ja-jp/iaas/Content/Network/Concepts/securityrules.htm
https://docs.oracle.com/ja-jp/iaas/Content/Network/Concepts/securityrules.htm#comparison


注目すべきは「どちらもVNICに作用」するところです。

もし、セキュリティリストとネットワーク・セキュリティ・グループを両方いっしょに設定すると、どのように動作するのでしょうか。
次の章で実際に確認したいと思います。

両方設定するとどうなる?実際に試してみました。

実際にセキュリティリスト(以下SL)とネットワーク・セキュリティ・グループ(以下NSG)を両方設定して、通信がどのように許可されるのか試してみました。

インスタンスに対してSSH接続の許可設定をしてみます。
※ 事前準備としてVCNとパブリックサブネットを用意し、インスタンスをパブリックサブネット上に作成してインターネットからアクセスできるようにしています。

まずはSLの確認から。VCNを作成するとSLがデフォルトで作成されています。
デフォルトのSLには、あらかじめすべてのIPアドレスからSSH接続が可能であるように設定がされています。

次にNSGの設定を行います。
全てのIPアドレスからSSH接続を受け入れるように設定します。

追加できました!

次に作成済みインスタンスのVNICにNSGを割り当てます。
VNICの詳細画面から、ネットワーク・セキュリティ・グループの横にある「編集」をクリックします。

設定済みのネットワーク・セキュリティ・グループを選択し、変更の保存をします。

これでインスタンスはSLとNSG両方割り当てられている状態となりました。

現在SLとNSGは両方ともすべてのIPアドレスからSSH接続可能の設定になっています。

さて、作成したインスタンスに接続できるでしょうか・・・
Tera Termで試してみます。

あ・・・やってしまった・・・

OracleCloudあるあるですね
おちついてもう一度正しい手順でアクセスすれば大丈夫です

気を取り直して、もう一度

つながりました!

次にSLのみルール未定義としてみます。NSGはSSHに対しすべての通信を許可したままです。

つながりました!

次は、SLはルール未定義、NSGは特定のIPアドレスのみSSH接続可に変更してみましょう。

特定IPアドレスからの接続はつながりました!

それ以外のIPアドレスだと、つながりません。

と、すべてのパターンを試し・・・・・・以下の表に結果をまとめました!!
○:すべての通信が許可
△:セキュリティルールの設定を行った通信のみ許可
×:許可しない

NSGルール未定義 NSG特定の通信のみ許可 NSGすべての通信を許可
SLルール未定義 ×
SL特定の通信のみ許可
SLすべての通信を許可

どちらかで設定された許可ルールは、もう片方で許可していなくてもトラフィックを通過させてしまうことがわかりました。
意図せず許可されていることがないように注意しないといけませんね。

最後に

OCIインスタンスのファイアウォール機能には2種類あり、それぞれの特徴や同時に設定した場合の動作について紹介しました。他にもたくさんのサービスがありますので、色々試して、皆様に紹介していきたいなぁと思っています。

Oracle Cloudをご検討の際は、私を含め精通する技術者が多数おりますので、お気軽に当社までお問い合わせください

なかなか面白い記事でしたね!
どうぞよろしくお願いいたします

 

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早6年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!