Facebook Twitter
お問い合わせ
TOPICS
更新情報
ホーム > ブログ > Oracle Cloud > 【Oracle Cloud】NSGとSLの違いと使い分け

【Oracle Cloud】NSGとSLの違いと使い分け

ブログ
Oracle Cloud
2024.12.19

初めまして!s.ichimuraです。

 

本記事はOracle Cloud Infrastructure Advent Calendar 2024 のシリーズ2のDay19の記事です。

 

今回は、OCI(Oracle Cloud Infrastructure)のネットワーク・セキュリティ機能であるNSG(ネットワーク・セキュリティ・グループ)とSL(セキュリティ・リスト)の違いと使い分けについてご紹介いたします。

はじめに

NSGとSLは、共にVCN(仮想クラウド・ネットワーク)内のサービスに対して仮想ファイアウォール機能を提供するサービスです。

両サービスは、クラウド環境におけるネットワークセキュリティを確保するための重要な役割を担っていますが、私自身『どういう違いがあるのか?』『実際の設計時はどちらを使えば良いか?』で悩んだ経験があります。

そこで、これらのサービスの違いと使い分けについて、自身の学びを込めて皆様に共有したいと思い、この記事を執筆することにしました。

 

 

NSGとSLの概要

まずは、NSGとSLの概要と題しまして両サービスで共通する部分の説明となります。

 

両サービスで共通しているのが、仮想ファイアウォール機能を利用するためにセキュリティ・ルールを設定するという部分になります。

また、設定するセキュリティ・ルールもイングレス(外から内への通信)/エグレス(内から外への通信)という2つの許可ルールという点で共通しております。

 

イングレス/エグレスのセキュリティ・ルールは、それぞれ以下の設定項目となっています。

 

イングレス・ルール

  • 方向
  • ソース・タイプ
  • ソース
  • IPプロトコル
  • ソース・ポート範囲
  • 宛先ポート範囲
  • 説明

エグレス・ルール

  • 方向
  • 宛先タイプ
  • 宛先
  • IPプロトコル
  • ソース・ポート範囲
  • 宛先ポート範囲
  • 説明

 

 

主題の1つであるNSGとSLの違いについて説明となります。
最も重要な違いは、設定したルールの適用範囲となります。
具体的には下記の通りとなります。

 

※1:仮想ネットワーク・インターフェース・カード。VCNに接続する為に、VCN内のリソースごとに割り当てられているNIC

 

例えば、以下のような構成でNSGとSLを設定した場合、それぞれのサービスに設定されるNSGとSLは次の表のようになります。

 

サービス NSG SL
コンピュート.1 NSG.1 SL.1
コンピュート.2 NSG.2 SL.1
コンピュート.3 NSG.1 SL.1
データベース NSG.3 SL.2
オブジェクト・ストレージ - -

 

上記の通り、SLはサブネットごとに設定され適用範囲はサブネット内のみとなり、NSGは各サービスに設定され適用範囲も設定されたサービスごととなります。

また、NSGとSLはVCN内の仮想ファイアウォールであるため、VCN外のサービス(オブジェクト・ストレージなど)には適用されません。

 

 

NSGとSLの使い分け

では、実際にNSGとSLをどう使い分けるかについての説明となります。

使い分けについて公式サイトでは、以下の通り基本的にはNSGの利用を推奨しております。

 

  • NSGでは、VCNのサブネット・アーキテクチャをアプリケーションのセキュリティ要件から分離できるため、セキュリティ・リストのかわりにNSGを使用することをお薦めします。
  • Oracleでは、将来の拡張機能を実装するときに、セキュリティ・リストよりもNSGを優先する予定のため、NSGの使用が推奨されます。
  • NSGをまだサポートしていないリソース・タイプの場合は、セキュリティ・リストを引き続き使用して、それらの親リソース内外のトラフィックを制御します

 

参考:Oracle Cloud公式サイト:セキュリティ・ルール

 

上記の内容を踏まえた使い分けとして、基本はNSGを利用しNSGをサポートしていないサービスはSLを利用するというのが良いとされております。

私自身もNSGとSLの使い分けは、上記公式の推奨通りの設定の使い分けで構築を行っております。

 

 

注意点

使い分けで説明したように、基本的にはNSGを利用するのが良いとされますが、SLも併用した場合に注意点があります。
それは、NSGとSLで設定するセキュリティ・ルールはどちらもホワイトリストで設定されるため、NSGとSLの両方が設定されたサービスでは、NSGとSLのどちらかのセキュリティ・ルールで許可されると通信が許可されてしまう点です。

 

例えば以下のように設定すると、予期しない通信が許可されてしまいます。

 

  • 行いたい設定

オンプレミス環境からSSH接続で踏み台サーバ経由でAPサーバへのSSH接続

 

 

行った設定

NSG/SL

設定内容
NSG.1 コンピュート.1からのSSH接続の許可
SL.1 オンプレミス環境からのSSH接続の許可

 

許可されてしまう予期しない通信

オンプレミス環境からコンピュート.2へのSSH接続の許可

 

 

これは、コンピュート.1向けに設定したSL.1セキュリティ・ルールが、同じサブネット内のコンピュート.2にも適用されてしまい、予期しない通信であるオンプレミス環境からコンピュート.2へのSSH接続が許可されてしまいます。

 

公式で推奨しているようにNSGでの設定を優先していれば、上記例のような状況には陥りませんが、構成によってはNSGとSLを同時に設定する事になる場合もございます。

注意点として留めておいていただけますと、インシデントの防止に繋げることができます。

 

 

まとめ

最後に本記事のまとめとなります。

 

NSGとSLは、設定対象が異なることで、セキュリティ・ルールが適用される範囲に違いがあります。

具体的には、NSGはVNICレベル、SLはサブネットレベルでセキュリティ制御を行います。

推奨される使い分け方は、基本的にNSGでの設定を行い、NSGが対応していないサービスがある場合にのみSLを利用することです。

 

以上が、OCIにおけるNSGとSLの違いと使い分けのご紹介となります。

本記事が、皆さまのお役に立てれば幸いです。

 


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

この記事を書いた人


関連コンテンツ

CONTACT お問い合わせ

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