Oracle Cloud Infrastructureドキュメント

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

「ネットワーキング」サービスは、パケット・レベルでトラフィックを制御するために2つの仮想ファイアウォール機能を提供します:

  • ネットワーク・セキュリティ・グループ: このトピックで説明します。
  • セキュリティ・リスト: 「ネットワーキング」サービスが提供する元のタイプの仮想ファイアウォール。 「セキュリティ・リスト」も参照してください。

これらの両方の機能で「セキュリティ・ルール」が使用されます。 セキュリティ・ルールの動作に関する重要な情報、およびセキュリティ・リストとネットワーク・セキュリティ・グループの一般的な比較については、「セキュリティ・ルール」を参照してください。

ハイライト

  • ネットワーク・セキュリティ・グループ(NSG)は、「コンピュート」インスタンスおよび「他の種類のリソース」の仮想ファイアウォールとして機能します。 NSGは、「単一のVCN内で選択したVNICのセット」にのみ適用される一連のイングレスおよびエグレス「セキュリティ・ルール」で構成されています(たとえば、: VCNの複数層アプリケーションのweb層でWebサーバーとして機能するすべての「コンピュート」インスタンス。
  • セキュリティ・リストと比較すると、NSGでは、アプリケーションのセキュリティ要件からVCNサブネット・アーキテクチャを分離できます。 「セキュリティ・リストとネットワーク・セキュリティ・グループの比較」も参照してください。
  • NSGセキュリティ・ルールは、セキュリティ・リスト・ルールと同様に機能します。 ただし、NSGセキュリティ・ルール・ソース(イングレス・ルールの場合)または宛先(エグレス・ルールの場合)には、CIDRではなくNSGを指定できます。 つまり、2つのNSG 「同一のVCN内」間のトラフィックまたは単一のNSG内のトラフィックを制御するセキュリティ・ルールを簡単に作成できます。 「セキュリティ・ルールの構成要素」も参照してください。
  • セキュリティ・リストとは異なり、VCNにはデフォルトのNSGはありません。 また、作成する各NSGは最初は空です。 デフォルトのセキュリティ・ルールはありません。
  • ネットワーク・セキュリティ・グループは、セキュリティ・リストと比較して個別の制限と異なる制限を持ちます。 「制限」も参照してください。

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

ネットワーク・セキュリティ・グループ(NSG)は、すべてが同じセキュリティ・ポストを持つクラウド・リソースのセットに対して仮想ファイアウォールを提供します。 例えば: すべてが同じタスクを実行し、したがってすべてが同じポートのセットを使用する必要がある「コンピュート」インスタンスのグループ。

NSGは、2つのタイプのアイテムで構成されます(次の図に示すとおり):

  • VNICs: 1つ以上のVNIC (すべてが同じセキュリティ概要を持つコンピュートインスタンスのセットにアタッチされたVNICなど)。 すべてのVNICは、NSGが属するVCN内に存在する必要があります。 「VNICと親リソースについて」も参照してください。
  • セキュリティ・ルール: グループ内のVNICの内外で許可されるトラフィックのタイプを定義するセキュリティ・ルール 例えば: 特定のソースからのイングレスTCPポート22 SSHトラフィック。

ネットワーク・セキュリティ・グループには、VNICとセキュリティ・ルールが含まれます。

「同一のVCN内」のセキュリティのポストが異なるリソースがある場合は、NSGセキュリティ・ルールを記述して、リソースとポストされたリソースとの間のトラフィックを制御できます。 たとえば、次の図では、NSG1のVNICは複数層アーキテクチャ・アプリケーションの1つの層で実行されています。 NSG2では、第2層でVNIcが実行されています。 どちらのNSGも同じVCNに属している必要があります。 次の前提は、NSGの両方が他のNSGへの接続を開始する必要があることです。

NSG1では、NSG2を宛先として指定するエグレス・セキュリティ・ルール、およびNSG2をソースとして指定するイングレス・セキュリティ・ルールを設定します。 NSG2と同様に、NSG1を宛先として指定するエグレス・セキュリティ・ルール、およびNSG1をソースとして指定するイングレス・セキュリティ・ルールを設定します。 この例では、ルールはstatefulであると想定されます。

2つのネットワーク・セキュリティ・グループ間のトラフィックを制御するようにセキュリティ・ルールを設定できます。

前の図は、各NSGが他のNSGへの接続を開始する必要があることを前提としています。

次のダイアグラムでは、NSG1からNSG2までに開始された接続のみを許可すると想定しています。 これを行うには、NSG1からイングレス・ルールを削除し、NSG2からエグレス・ルールを削除します。 残りのルールでは、NSG2からNSG1までの接続は許可されません。

これらのセキュリティ・ルールでは、接続が1方向のみで開始されます: (NSG1からNSG2)。

次の図では、VNIC 「同一のNSG内」間のトラフィックを制御すると仮定しています。 これを行うには、ルール・ソース(イングレスの場合)または宛先(エグレスの場合)をルール独自のNSGに設定します。

同じNSG内のVNIC間のトラフィックを制御するようにセキュリティ・ルールを設定できます。

VNICは、最大5つのNSGを使用できます。 「いずれかのVNIC NSG内のルール」がトラフィックを許可する場合(またはトラフィックがトラッキングされている既存の接続の一部である場合)、問題のパケットが許可されます。 リストにステートフルとステートレスの両方のセキュリティ・ルールが含まれていて、同じトラフィックが構成されている場合は注意が必要です。 詳細は、「ステートフル対ステートレス・ルール」を参照してください。

ネットワーク・セキュリティ・グループはリージョン・エンティティです。 ネットワーク・セキュリティ・グループに関連する制限については、「制限」を参照してください。

セキュリティ・ルール

NSGセキュリティ・ルールの基本をまだ理解していない場合は、セキュリティ・ルールのトピックにある次の項を参照してください:

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

警告

Oracle Cloud Infrastructureコンソール、APIまたはCLIを使用してクラウド・リソースに説明、タグまたはわかりやすい名前を割り当てるときは、機密情報を入力しないでください。

NSGを使用するための一般的なプロセス

  1. NSGを作成します。
  2. NSGにセキュリティ・ルールを追加します。
  3. 親リソース(より具体的にはVNIC)をNSGに追加します。 これは、親リソースを作成する場合に実行することも、親リソースを更新して1つ以上のNSGに追加することもできます。 「コンピュート」インスタンスを作成し、NSGに対して作成すると、インスタンスのプライマリVNICがNSGに追加されます。 別に、セカンダリVNICを作成し、オプションでNSGに追加できます。

NSGを削除する前に、それからすべてのVNICを取り外す必要があります。

詳細は、次の項を参照してください。

NSGの作成

各VCNには、基本接続を有効にするデフォルトのセキュリティ・ルールを持つ「デフォルト・セキュリティ・リスト」が付属しています。 ただし、VCNにはデフォルトのNSGはありません。

NSGを作成すると、セキュリティ・ルールやVNICを使用せずに最初は空になります。 コンソールを使用している場合は、作成時にNSGにセキュリティ・ルールを追加できます。

必要に応じて、作成時に、NSGにわかりやすい名前を割り当てることができます。 ユニークである必要はなく、後で変更することもできます。 Oracleは、NSGにOracle Cloud ID (OCID)という一意の識別子を自動的に割り当てます。 詳細は、「リソース識別子」を参照してください。

アクセス制御の目的により、NSGを配置するコンパートメントを指定する必要があります。 使用するコンパートメントがわからない場合は、組織の管理者に相談してください。 詳細は、「アクセス制御」を参照してください。

セキュリティ・ルールおよびグループ・メンバーシップの更新

NSGの作成後に、セキュリティ・ルールを追加または削除して、グループ内のVNICが必要とするイングレスおよびエグレス・トラフィックのタイプを可能にします。

セキュリティ・リストに精通し、REST APIを使用する場合、「更新」既存のセキュリティ・ルールのモデルは、セキュリティ・リストとNSGの間で異なることに注意してください。 NSGを使用すると、特定のグループ内の各ルールに、Oracleによって割り当てられる一意の識別子が割り当てられます(例: 04ABEC). UpdateNetworkSecurityGroupSecurityRulesをコールするときに、更新する特定のルールのidを指定します。 セキュリティ・リストと比較すると、ルールには一意の識別子はありません。 UpdateSecurityListをコールする場合、コール内で更新されていないルールを含む、全体のルール・リストを渡す必要があります。

NSG VNICメンバーシップを管理する場合は、NSG自体ではなく、親リソースの操作の一部として実行します。 詳細は、「VNICと親リソースについて」を参照してください。

セキュリティ・ルールでのNSGの指定

「ネットワーク・セキュリティ・グループの概要」で前述したように、特定のNSGセキュリティ・ルール内でソース(イングレス・ルールの場合)または宛先(エグレス・ルールの場合)としてNSGを指定できます。 2つのNSGが同じVCN内にある必要があります。 たとえば、NSG1とNSG2の両方が同じVCNに属している場合、NSG2をソースとしてリストするイングレス・ルールをNSG1に追加できます。 他のユーザーがNSG2を削除すると、ルールは無効になります。 REST APIでは、SecurityRuleオブジェクト内でisValidブールを使用して、そのステータスが伝えられます。

NSGの削除

NSGを削除するには、VNICまたは親リソースを含めることはできません。 親リソース(またはコンピュート・インスタンスVNIC)が削除されると、その親リソースはNSGsから自動的に削除されます。 特定の親リソースを削除する権限がない可能性があります。 管理者に問い合せて、指定したリソースを所有するユーザーを確認してください。

コンソールには、NSG内の親リソースのリストが、各親リソースへのリンクとともに表示されます。 親リソースが「コンピュート」インスタンスである場合、コンソールにはNSG内のインスタンスVNICまたはVNICも表示されます。

リソースを削除せずに、NSGsから親リソースを削除するには、最初にコンソールで親リソースの詳細を表示します。 リソースが属するNSGのリストが表示されます。 そこから、「編集」をクリックして、すべてのNSGからリソースを削除できます。 かわりに「コンピュート」インスタンスで作業している場合は、NSGから削除する特定のVNICの詳細を表示します。

REST APIを使用している場合: ListNetworkSecurityGroupVnicsでは、NSG内の親リソースとVNICがリストされます。 リソースの更新操作を使用して、NSGsからリソースを削除します。 たとえば、「コンピュート」インスタンスの場合は、UpdateVnic操作を使用します。 ロード・バランサの場合は、UpdateNetworkSecurityGroups操作などを使用します。

必要なIAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者が作成するポリシーで、コンソールまたはSDK、CLIまたはその他のツールを使用したREST APIのどちらを使用しているかにかかわらず、必要なタイプのアクセスを付与する必要があります。 アクションを実行しようとしたときに、権限のないメッセージや権限のないメッセージを取得する場合は、管理者に付与されているアクセスのタイプと作業するコンパートメントを確認してください。

管理者向け: 「ネットワーク管理者がクラウド・ネットワークを管理できるようにします」内のポリシーでは、NSGsを含むすべての「ネットワーキング」コンポーネントの管理がカバーされます。

NSGを管理する必要があるが、「ネットワーキング」サービス内の他のコンポーネントを管理しないセキュリティ管理者がいる場合は、より限定的なポリシーを作成できます:

Allow group NSGAdmins to manage network-security-groups in tenancy
		
Allow group NSGAdmins to manage vcns in tenancy

Allow group NSGAdmins to use VNICs in tenancy

最初の文を使用すると、NSGAdminsグループがNSGおよびそのセキュリティ・ルールを作成して管理できます。

NSGの作成はNSGがあるVCNに影響するため、2番目の文が必要です。 また、2番目の文の範囲で、NSGAdminsグループがVCNを作成できます。 ただし、これらのリソースに追加の権限が必要なため、グループではサブネットを作成したり、それらのVCNに関連する他のコンポーネント(NSGを除く)を管理することはできません。 また、NSGAdminsグループはサブネットに関連する権限を必要とするため、すでにサブネットがある既存のVCNを削除することもできません。

NSGAdminsがVNICをNSGに挿入する必要がある場合は、3番目の文が必要です。 VNICの親リソース(「コンピュート」インスタンスなど)を作成したユーザーは、その親リソースを作成するためのこのレベルの権限をすでに持っている必要があります。

詳細は、「ネットワーキングのIAMポリシー」を参照してください。

コンソールの使用

NSG内のセキュリティ・ルールおよびリソースを表示するには
NSGを作成するには
NSGからリソースを追加または削除するには
NSGを削除するには
NSGのセキュリティ・ルールを管理するには
NSGのタグを管理するには

APIの使用

APIおよび署名リクエストの使用については、REST APIおよび「セキュリティ資格証明」を参照してください。 SDKの詳細は、「ソフトウェア開発キットとコマンドライン・インタフェース」を参照してください。

VCNネットワーク・セキュリティ・グループを管理するには、次の操作を使用します:

NSG用のREST APIモデルには、セキュリティ・リストと比較していくつか違いがあります:

  • セキュリティ・リストには、IngressSecurityRuleオブジェクトと、別のEgressSecurityRuleオブジェクトがあります。 ネットワーク・セキュリティ・グループを使用する場合、SecurityRuleオブジェクトのみが存在し、オブジェクトdirection属性によって、ルールがイングレスまたはエグレスに使用されるトラフィックが決定されます。
  • セキュリティ・リストでは、ルールはSecurityListオブジェクトの一部です。ルールを操作するには、セキュリティ・リスト操作(UpdateSecurityListなど)をコールします。 NSGでは、ルールはNetworkSecurityGroupオブジェクトの一部ではありません。 かわりに、個別の操作を使用して特定のNSGのルールを操作します(例: UpdateNetworkSecurityGroupSecurityRules ).
  • 「更新」の既存のセキュリティ・ルールのモデルは、セキュリティ・リストとNSGの間で異なります。 NSGを使用すると、特定のグループ内の各ルールに、Oracleによって割り当てられる一意の識別子が割り当てられます(例: 04ABEC). UpdateNetworkSecurityGroupSecurityRulesをコールするときに、更新する特定のルールのidを指定します。 セキュリティ・リストと比較すると、ルールには一意の識別子はありません。 UpdateSecurityListをコールする場合、コール内で更新されていないルールを含む、全体のルール・リストを渡す必要があります。
  • セキュリティ・ルールを追加、削除または更新する操作をコールする場合は、25のルール制限があります。