ネットワーク・ゲートウェイの例: インターネット・ゲートウェイ
VCNは、Oracle Private Cloud Applianceの基本的なネットワーク・ユニットであり、特定の目的で使用される様々なタイプのゲートウェイを介して他のプロセスと通信できます。
この例では、ラックの外部からVCNへのアクセスは、インターネット・ゲートウェイ(IGW)を介して確立されます。 作業中のIGWを生成するためのすべてのステップについて詳しく説明します。
この例では、インスタンス内で実行されているパブリックIPサブネット上のwebサーバーへのアクセスを許可するようにIGWを設定します。 また、デフォルトのセキュリティ・リストにイングレス・ルールを追加して、パブリック・サブネット上のwebサーバーへの外部アクセスを許可します。 次に、この例では、HTTP暗号化トラフィックの標準ポートであるTCPポート443でHTTPS接続のイングレス接続を許可します。
このイングレス・ルールがない場合、インバウンドHTTPS接続は許可されません。 新しいルールstateful
を作成する必要があります。これはデフォルトであり、レスポンスの明示的なルールを作成せずにHTTPSリクエストへの返信を許可します。
次に、この例では、既存のIGWターゲットをルート・ルールに追加します。 ルート・ルールは、VCNのデフォルト・ルート表、またはIGWに到達するために作成された新しいルート表に追加されます。 ルート・ルールでは、CIDRブロック0.0.0.0/0が使用されます。 これは、ルート表の他のルールでカバーされていないすべてのトラフィックが、この新しいルールで指定されたIGWターゲットに送信されることを意味します。
この例には、IGWを有効または無効にするステップと、その削除方法が含まれます。
概要
IGWの確立および使用には3つの主要な操作があります。 各ステップには独自の前提条件セットがあり、通常は「コンピュートWeb UI」またはOCI CLIを使用して構成できます。 両方のメソッドが使用可能な場合は、両方のメソッドが表示されます。
IGWを構成および操作するために使用する3つのアクティビティは次のとおりです:
- IGWの設定
- IGWのルールを含めるようにルート表を作成または更新
- セキュリティ・リストまたはNSGの更新
インターネット・ゲートウェイの設定
最初に実行する必要があるのは、IGWを構成することです。
基本的なインターネット・ゲートウェイ構成
IGWを設定および使用する前に評価する必要がある特定の考慮事項があります:
- VCNにはインターネット・アクセスが必要なパブリック・サブネットがあります。 (パブリック・サブネットのみがIGWを正常に使用できます。)
- デフォルトの条件はアクセスを拒否するため、許可されるイングレスおよびエグレス・インターネット・トラフィックのタイプが決定されている必要があります。 これには、イングレスHTTPS接続、イングレスICMP pingまたはその他のタイプのトラフィックが含まれます。 IGWは、主にイングレス・ネットワーク・プロトコル・リクエストに応答します。
IGWの基本構成については、「インターネット・ゲートウェイを介したパブリック・アクセスの提供」を参照してください。 続行する前に、この初期構成を実行する必要があります。
IGWが作成されたら、VCNまたはインスタンス・ポートのネットワーク・セキュリティ・グループ(NSG)のルート表およびセキュリティ・リストでIGWを正しく動作させるために、2つの追加のステップが必要です。 まず、認可されたトラフィックを適切なゲートウェイ宛先に送信するように、サブネットのルート表エントリを構成する必要があります。 次に、IGWに含むVCNには、不正アクセスを防止し、ユーザーが必要なリソースにアクセスできるようにするための正しいセキュリティ・ルールが必要です。
ルート表エントリの設定
インターネット・ゲートウェイを使用する必要がある各パブリック・サブネットは、IGWへのルートが含まれるようにサブネット・ルート表エントリを更新する必要があります。
各ルート・ルールでは、宛先CIDRブロックと、そのCIDRに一致するトラフィックのターゲット(ネクスト・ホップ)を指定します。 ルールを作成する前に、ルールのターゲット(この場合はIGW)を作成する必要があります。
この例では、既存のIGWターゲットをVCNのデフォルト・ルート表のルート・ルールに追加します。 特にIGWに到達するための新しいルート表を作成することもできますが、ここでは作成しません。 ルート・ルールはCIDRブロック0.0.0.0/0を使用して、ルート表内の他のルールでカバーされないすべてのトラフィックがこの新しいルールで指定されたIGWターゲットに送信されるようにします。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューを開きます。 ネットワーキングで、仮想クラウド・ネットワークをクリックします。
-
ルート表を作成するVCNの名前をクリックします。 VCNの詳細ページが表示されます。
-
Resourcesの下のRoute Tablesをクリックします。
- デフォルト・ルート表の詳細ページに移動し、ルート・ルールの追加ボタンをクリックします。
-
「+新規ルール」をクリックし、この例の次の情報を入力します:
-
ターゲット・タイプ: リストから
Internet Gateway
を選択します。 -
CIDRブロック: トラフィックの宛先CIDRブロックとして0.0.0.0/0と入力します。
-
ターゲット: ターゲットはIGWです。 矢印をクリックしてターゲットIGWを選択します。 矢印のすぐ上にあるコンパートメントの変更が必要になる場合があります。
-
説明: 「IGWの新規ルール」など、ルールの説明(オプション)。
-
-
ダイアログのルート表ルールの作成ボタンをクリックします。
編集したデフォルト・ルート表の詳細ページが表示されます。 サブネットはデフォルト・ルート表を使用するように設定されているため、サブネット内のリソースでインターネット・ゲートウェイを使用できるようになりました。
OCI CLIの使用
-
コマンドを実行するために必要な情報を収集します:
-
このルート表を作成するコンパートメントのOCID (
oci iam compartment list
) -
このルート表のVCNのOCID (
oci network vcn list --compartment-id compartment_OCID
)
-
-
--route-rules
オプションの引数を作成します。ルート・ルールはJSON形式です。 ルールの書式設定方法を確認するには、次のコマンドを使用します:
oci network route-table update --generate-param-json-input route-rules > route_rule_format.json
例(次のコンテンツを
IGW_route_rule.json
ファイルに入力します):[ { "cidr-block": "0.0.0.0/0", "description": null, "destination": null, "destination-type": "CIDR_BLOCK", "network-entity-id": "ocid1.internetgateway.unique_ID" } ]
-
ルート表更新コマンドを実行します。
構文:
oci network route-table update --compartment-id compartment_OCID \ --vcn-id vcn_OCID --route-rules file:///home/flast/IGW_route_rule.json
新しいルート表がまだプロビジョニングされている間、route-rules
プロパティが空である場合があります。 オプションを確認するには、create
出力のid
プロパティのOCIDを使用して、get
コマンドを実行します:
oci network route-table get --rt-id ocid1.routetable.unique_ID
ルート表ルールが追加されると、IGWはサブネットおよびVCNからアクセスできるようになります。
インターネット・ゲートウェイのセキュリティ・ルールの確立
IGWが作成されたら、ゲートウェイへの不正アクセスを防ぐために、正しいセキュリティ設定を確立する必要があります。 たとえば、外部のすべてのHTTPSアクセスは、セキュアなwebページ・アクセスのデフォルト・ポートであるポート443にのみアクセスできるようにする必要があります。 この明示的な規則がない場合、標準ポートに到達できません。
この項では、セキュリティ・リストを使用してこの目標を達成しますが、Oracleが推奨するネットワーク・セキュリティ・グループ(NSG)のセキュリティ・ルールを使用して同様の結果を実現できます。
セキュリティ・リストおよびNSGの詳細は、「仮想ネットワークの概要」を参照してください。
重要:
デフォルト・セキュリティ・リストを使用するようにパブリック・サブネットを構成している場合は、イングレスSSHやすべての宛先へのエグレス・アクセスなどの基本的なアクセスを有効にするルールがデフォルトに含まれていることに注意してください。 Oracleでは、この基本的なアクセス・セットのルールについて理解することをお薦めします。 デフォルトのセキュリティ・リストを使用しない場合は、カスタマイズしたセキュリティ・ルールまたはそれらの変更済ルールを含むNSGで、基本アクセスがまだ提供されることを確認してください。この例では、デフォルトのセキュリティ・リストにイングレス・ルールを追加して、HTTP暗号化トラフィックの標準ポートであるTCPポート443でのHTTPS接続のイングレス接続を許可します。
このイングレス・ルールがない場合、インバウンドHTTPS接続は許可されません。 レスポンスの明示的なルールを作成せずにHTTPSリクエストへの返信を許可する新しいルールstateful
を作成する必要があります。
デフォルトの変更や既存のセキュリティ・リストへのルールの追加ではなく、新しいセキュリティ・リストの作成の詳細は、「セキュリティ・リストの作成」を参照してください。
「コンピュートWeb UI」の使用
-
ナビゲーション・メニューを開きます。 ネットワーキングで、仮想クラウド・ネットワークをクリックします。
-
セキュリティ・リストにルールを追加するVCNの名前をクリックします。 VCNの詳細ページが表示されます。
-
Resourcesの下のSecurity Listsをクリックします。
-
ルールを追加するセキュリティ・リストで、アクション・メニューをクリックし、編集をクリックして「セキュリティ・リストの編集」ダイアログを開きます。 イングレス・ルールの許可およびエグレス・ルールの許可セクションのルールを更新します。
-
新しいルールを追加するには、「ルールの許可」セクションで「+新規ルール」ボタンをクリックします。 セキュリティ・リストの名前およびタグを更新することもできます。
-
終了後、ダイアログの変更の保存ボタンをクリックします。
TCPポート443イングレス・ルールを使用するHTTPSの例では、次の情報を入力します:
-
ステートレス: 受信HTTPSリクエストへのレスポンスを許可するには、新しいルールがステートフルである必要があります。 ステートレス・ボックスが選択されていないことを確認します。 ステートレス・ルールおよびステートフル・ルールの詳細は、「Oracle Private Cloud Applianceコンセプト・ガイド」の「仮想ネットワークの概要」の"Security Lists"を参照してください。
-
CIDR: すべてのIPソース・アドレスにルールを適用する、例0.0.0.0/0,のCIDRブロック。
-
IPプロトコル: ドロップダウン・リストからTCPプロトコルを選択します。
-
ポート範囲:
-
ソース・ポート範囲: 空白のままにします。
-
宛先ポート範囲: 443と入力します。
-
-
説明: ルールのオプションの説明(「TCPポート443でのHTTPSのステートフル・トラフィックの許可」など)。
Save Changesをクリックして新しいルールを保存します。 新しいルールはいつでも編集できます。
OCI CLIの使用
-
更新するVCNのデフォルト・セキュリティ・リストのOCIDを取得します(
oci network vcn list --compartment-id compartment_OCID
) -
ルールを更新するには、「セキュリティ・リストの作成」の説明に従って、
--ingress-security-rules
および--egress-security-rules
オプションの引数を構成します。 これらのルール・オプションに指定する引数によって、既存のルールが上書きされます。 既存のルールを保持する場合は、次のコマンドを使用して現在のルールを表示し、新しいオプション引数に保持するルールをコピーします。$ oci network security-list get --security-list-id ocid1.securitylist.unique_ID
例(ファイル
IGW_ingress_rule.json
に次の内容を入力します):[ { "description": null, "icmp-options": null, "is-stateless": false, "protocol": "6", "source": "0.0.0.0/0", "source-type": "CIDR_BLOCK", "tcp-options": { "destination-port-range": { "max": 22, "min": 22 }, "source-port-range": null }, "udp-options": null }, { "description": null, "icmp-options": null, "is-stateless": false, "protocol": "6", "source": "0.0.0.0/0", "source-type": "CIDR_BLOCK", "tcp-options": { "destination-port-range": { "max": 443, "min": 443 }, "source-port-range": null }, "udp-options": null } ]
-
security list updateコマンドを実行して、HTTPSおよびTCPポート443トラフィックのルールを追加します。
例:
oci network security-list update \ --security-list-id ocid1.securitylist.unique_ID \ --ingress-security-rules file:///home/flast/IGW_ingress_rule.json WARNING: Updates to defined-tags and egress-security-rules and freeform-tags and ingress-security-rules will replace any existing values. Are you sure you want to continue? [y/N]: y