Oracleサービスへのアクセス: サービス・ゲートウェイ

このトピックでは、サービス・ゲートウェイを設定および管理する方法について説明します。サービス・ゲートウェイを使用すると、パブリックIPアドレスを持たないクラウド・リソースがOracleサービスにプライベート・アクセスできます。

Oracleサービスへのアクセス

Oracle Services Networkは、Oracleサービス用に予約されているOracle Cloud Infrastructure内の概念ネットワークです。これらのサービスには、通常はインターネットを介してアクセスするパブリックIPアドレスがあります。ただし、インターネット経由のトラフィックを発生させずにOracle Services Networkにアクセスすることもできます。どのホストからアクセスする必要があるかによって、方法は異なります:

ハイライト

  • サービス・ゲートウェイを使用すると、仮想クラウド・ネットワーク(VCN)は、データをパブリック・インターネットに公開することなく、特定のOracleサービスにプライベート・アクセスできます。これらの特定のサービスに到達するために、インターネット・ゲートウェイやNATゲートウェイは必要ありません。VCNのリソースはプライベート・サブネット内に配置でき、プライベートIPアドレスのみを使用します。VCNからOracleサービスへのトラフィックは、Oracleネットワーク・ファブリック上を移動し、インターネットを通過することはありません。
  • サービス・ゲートウェイはリージョナルであり、これを使用すると、VCNと同じリージョン内のサポートされているOracleサービスのみにアクセスできます。
  • 各VCNに必要なサービス・ゲートウェイは1つのみです。セキュリティ・ルールおよびルート表ルールでそのアクセスが許可されている場合、VCN内のすべてのサブネットはサービス・ゲートウェイにアクセスできます。
  • サービス・ゲートウェイを使用すると、リージョン内でサポートされているOracleサービスにアクセスし、データをインターネットから保護できます。(更新やパッチのダウンロードなどで)ワークロードが、サービス・ゲートウェイでサポートされていないパブリック・エンドポイントやサービスへのアクセスを必要とする場合があります。必要な場合、NATゲートウェイまたはインターネットへの他のアクセスがあることを確認します。

  • サポートされるOracleサービスは、Oracle Services NetworkのOracle Cloud Infrastructure Object Storageなどです。リストについては、サービス・ゲートウェイ: Oracle Services Networkでサポートされているクラウド・サービスを参照してください。
  • サービス・ゲートウェイでは、サービスCIDRラベルという概念を使用します。これは、対象となるサービスまたはサービス・グループのすべてのリージョナル・パブリックIPアドレス範囲を表す文字列です(たとえば、OCI PHXオブジェクト・ストレージは、米国西部(フェニックス)でのオブジェクト・ストレージを表す文字列です)。そのサービスCIDRラベルは、サービス・ゲートウェイおよび関連するルート・ルールを構成してサービスへのトラフィックを制御する場合に使用します。これは、セキュリティ・ルールを構成するときにオプションで使用できます。サービスのパブリックIPアドレスが将来変わった場合に、それらのルールを調整する必要はありません。
  • オンプレミス・ネットワークがVCNおよびVCNのサービス・ゲートウェイ経由でOracleサービスにプライベート・アクセスできるように、VCNを設定できます。オンプレミス・ネットワーク内のホストは、それぞれのプライベートIPアドレスと通信し、トラフィックはインターネットを経由しません。詳細は、Oracleサービスへのプライベート・アクセスを参照してください

サービス・ゲートウェイの概要

サービス・ゲートウェイを使用すると、VCN内のリソースは、データをインターネット・ゲートウェイやNATに公開することなく、特定のOracleサービスにプライベート・アクセスできます。VCNのリソースはプライベート・サブネット内に配置でき、プライベートIPアドレスのみを使用します。VCNから目的のサービスへのトラフィックは、Oracleネットワーク・ファブリック上を移動し、インターネットを通過することはありません。

次の簡単な図は、パブリック・サブネットプライベート・サブネットの両方を持つVCNを示しています。プライベート・サブネット内のリソースは、プライベートIPアドレスのみを持ちます。

表示されるVCNには3つのゲートウェイがあります:

  • インターネット・ゲートウェイ: パブリック・サブネットにインターネット上のパブリック・エンドポイントへの直接アクセスを提供します。接続は、サブネットまたはインターネットから開始できます。パブリック・サブネット内のリソースは、パブリックIPアドレスを持つ必要があります。詳細は、インターネット・ゲートウェイを参照してください。
  • サービス・ゲートウェイ: プライベート・サブネットに、リージョン内のサポートされるOracleサービスへのプライベート・アクセスを提供します。接続はサブネットからのみ開始できます。
  • NATゲートウェイ: プライベート・サブネットにインターネット上のパブリック・エンドポイントへのプライベート・アクセスを提供します。接続はサブネットからのみ開始できます。詳細は、NATゲートウェイを参照してください。

VCN内のルーティングはサブネット・レベルで制御するため、VCN内のどのサブネットが各ゲートウェイを使用するかを指定できます。図では、パブリック・サブネットのルート表(コールアウト1)により、ローカルでないトラフィックがインターネット・ゲートウェイを介して送信されます。プライベート・サブネットのルート表(コールアウト2)により、Oracleサービスを宛先とするトラフィックがサービス・ゲートウェイを介して送信されます。それ以外のトラフィックはすべてNATゲートウェイに送信されます。

この図は、サービス・ゲートウェイを使用するVCNの基本的なレイアウトを示しています
コールアウト1: パブリック・サブネット・ルート表
宛先CIDR ルート・ターゲット
0.0.0.0/0 インターネット・ゲートウェイ
コールアウト2: プライベート・サブネット・ルート表
宛先CIDR ルート・ターゲット
リージョン内のOSNサービス サービス・ゲートウェイ
0.0.0.0/0 NATゲートウェイ
重要

パブリック・サブネットに関連付けられたルート表でサービス・ゲートウェイをターゲットとしたルート・ルールを構成する方法の詳細は、この既知の問題を参照してください。

サービス・ゲートウェイは、そのゲートウェイ自身のVCN内のリソースが使用できます。ただし、VCNが他のVCNとピアリングされている場合、両方のVCNでサービス・ゲートウェイが構成されていないかぎり、もう一方のVCN内のリソースはサービス・ゲートウェイにアクセスできません。スポークを起点としOracle Services Networkを宛先とするトラフィックを、ハブ内のネットワーク仮想アプライアンス(NVA)を経由してからハブのサービス・ゲートウェイを経由するように構成できます。詳細は、ルート・ターゲットとしてのプライベートIPの使用およびOracleサービスへのプライベート・アクセスを参照してください。

また、FastConnectまたはサイト間VPNを使用してサービス・ゲートウェイのVCNに接続されているオンプレミス・ネットワーク内のリソースも、サービス・ゲートウェイを使用できます。詳細は、Oracleサービスへのプライベート・アクセスを参照してください。

オンプレミス・ネットワーク、パブリックOracleサービスへのプライベート・アクセスにFastConnectパブリック・ピアリングを使用できることに注意してください。つまり、オンプレミス・ネットワークには、OracleサービスのパブリックIPアドレス範囲にアクセスするためのパスが複数存在する可能性があります。その場合、エッジ・デバイスは、複数のパスを経由してOracleサービスのパブリックIPアドレス範囲のルート通知を受信します。エッジ・デバイスを正しく構成する方法の詳細は、オンプレミス・ネットワークへの接続のルーティング詳細を参照してください。

各VCNに必要なサービス・ゲートウェイは1つのみです。セキュリティ・ルールおよびルート表ルールでそのアクセスが許可されている場合、VCN内のすべてのサブネットはサービス・ゲートウェイにアクセスできます。

サービス・ゲートウェイを設定する手順については、コンソールでのサービス・ゲートウェイの設定を参照してください。

サービスCIDRラベルについて

各Oracleサービスには、アクセスにパブリックIPアドレスを使用するリージョナル・パブリック・エンドポイントがあります。Oracleサービスへのアクセス権を持つサービス・ゲートウェイを設定するときには、ネットワーキング・サービス・ルート・ルールと、サービスとの間のトラフィックを制御するセキュリティ・ルール(オプション)も設定します。これは通常、これらのルールを設定するために、サービスのパブリックIPアドレスを知る必要があることを意味します。To make it easier for you, the Networking service uses service CIDR labels as an alias representing all the public CIDRs for a given Oracle service or a group of Oracle services.サービスのCIDRが将来変わった場合に、ルート・ルールやセキュリティ・ルールを調整する必要はありません。

例:

  • 「OCI PHXオブジェクト・ストレージ」は、米国西部(フェニックス)リージョン内のすべてのオブジェクト・ストレージCIDRを表すサービスCIDRラベルです。
  • 「Oracle Services NetworkのすべてのPHXサービス」は、米国西部(フェニックス)リージョン内のOracle Services Networkでサポートされるサービスに対するすべてのCIDRを表すサービスCIDRラベルです。サービスのリストについては、サービス・ゲートウェイ: Oracle Services Networkでサポートされているクラウド・サービスを参照してください。

ここでわかるように、サービスCIDRラベルは1つのOracleサービス(例: オブジェクト・ストレージ)に関連付けることも、複数のOracleサービスに関連付けることもできます。サービスCIDRラベルをサービス・ゲートウェイに割り当てると、コンソールで他のラベルに切り替えることができますが、サービス・ゲートウェイには常にサービスCIDRラベルが必要です。APIおよびCLIでは、サービスCIDRラベルを完全に削除できます。

このトピックでは、サービスという語が、より正確な語サービスCIDRラベルのかわりに多く使用されています。サービス・ゲートウェイ(および関連するルート・ルール)を設定するときには、目的のサービスCIDRラベルを指定するということを覚えておいてください。コンソールに、使用可能なサービスCIDRラベルが表示されます。REST APIを使用する場合、ListServices操作によって使用可能なServiceオブジェクトが返されます。ServiceオブジェクトのcidrBlock属性には、サービスCIDRラベル(例: all-phx-services-in-oracle-services-network)が含まれます。

使用可能なサービスCIDRラベル

使用可能なサービスCIDRラベルは次のとおりです:

重要

サービス・ゲートウェイを介するOracle YUMサービスへのアクセス情報については、この既知の問題を参照してください。

サービス・ゲートウェイのサービスCIDRラベルの有効化

VCNに特定のサービスCIDRラベルへのアクセス権を付与するには、VCNのサービス・ゲートウェイに対するそのサービスCIDRラベルを有効化する必要があります。これは、サービス・ゲートウェイの作成時に行うことも、作成後に行うこともできます。また、サービス・ゲートウェイのサービスCIDRラベルはいつでも無効化できます。

重要

オブジェクト・ストレージ「OCI <region>オブジェクト・ストレージ」「Oracle Services Networkのすべての<region>サービス」の両方でカバーされるため、サービス・ゲートウェイはそれらのサービスCIDRラベルのうち1つのみを使用できます。同様に、ルート表は1つのサービスCIDRラベルにつき1つのルールを持つことができます。各ラベルに1つずつ、2つの別個のルールを持つことはできません。

サービス・ゲートウェイが「Oracle Services Networkのすべての<region>サービス」を使用するように構成されている場合、ルート・ルールはどちらのCIDRラベルも使用できます。ただし、サービス・ゲートウェイが「OCI <region>オブジェクト・ストレージ」を使用するように構成されていて、ルート・ルールで「Oracle Services Networkのすべての<region>サービス」が使用されている場合、オブジェクト・ストレージ以外のOracle Services Networkサービスへのトラフィックはブラックホールになります。コンソールでは、そのようにしてサービス・ゲートウェイおよび対応するルート表を構成できません。

別のサービスCIDRラベルを使用するようにサービス・ゲートウェイを切り替える場合は、別のサービスCIDRラベルへの切替え時を参照してください。

サービス・ゲートウェイを介するトラフィックのブロック

特定のVCNのコンテキストでサービス・ゲートウェイを作成します。つまり、サービス・ゲートウェイは常に、その1つのVCNにアタッチされます。ただし、そのサービス・ゲートウェイを介するトラフィックは、いつでもブロックまたは許可できます。デフォルトでは、ゲートウェイの作成時にトラフィック・フローが許可されます。サービス・ゲートウェイのトラフィックをブロックすると、有効になっているサービスCIDRラベルや、VCN内の既存のルート・ルールまたはセキュリティ・ルールにかかわらず、すべてのトラフィック・フローが禁止されます。トラフィックをブロックする手順については、サービス・ゲートウェイのトラフィックの制御を参照してください。

サービス・ゲートウェイのルート・ルールおよびセキュリティ・ルール

トラフィックをVCN内のサブネットからサービス・ゲートウェイにルーティングするためには、それに応じたルールをサブネットのルート表に追加する必要があります。このルールでは、サービス・ゲートウェイをターゲットとして使用する必要があります。宛先には、サービス・ゲートウェイに対して有効になっているサービスCIDRラベルを使用する必要があります。つまり、時間の経過とともに変わる可能性のある特定のパブリックCIDRを知る必要はありません。

サブネットを出発点としてサービスのパブリックCIDRを宛先とするトラフィックはすべて、サービス・ゲートウェイにルーティングされます。サービス・ゲートウェイのトラフィックがブロックされている場合、トラフィックに一致するルート・ルールが存在していても、それをトラフィックが流れることはありません。サービス・ゲートウェイのルート・ルールを設定する手順については、タスク2: サブネットのルーティングの更新を参照してください。

また、VCNのセキュリティ・ルールで目的のトラフィックを許可する必要もあります。目的のトラフィックのソースまたは宛先にCIDRではなくサービスCIDRラベルを使用することもできます。前述したように、サービスの特定のパブリックCIDRを知る必要はありません。VCNにサービス・ゲートウェイがなく、サービスへのトラフィックがインターネット・ゲートウェイを使用する場合でも、便宜上、セキュリティ・ルールでサービスCIDRラベルを使用できます。

サービスCIDRラベルを使用するステートフルまたはステートレスのセキュリティ・ルールを使用できます:

  • ステートフル・ルールの場合: 宛先サービスを目的のサービスCIDRラベルに設定したエグレス・ルールを作成します。セキュリティ・ルールの場合と同様に、IPプロトコル、ソース・ポート、宛先ポートなどの他の項目も指定できます。
  • ステートレス・ルールの場合: エグレス・ルールとイングレス・ルールの両方を持つ必要があります。宛先サービスを目的のサービスCIDRラベルに設定したエグレス・ルールを作成します。また、ソース・サービスを目的のサービスCIDRラベルに設定したイングレス・ルールを作成します。セキュリティ・ルールの場合と同様に、IPプロトコル、ソース・ポート、宛先ポートなどの他の項目も指定できます。

サービスCIDRラベルを使用するセキュリティ・ルールを設定する手順については、タスク3: (オプション)セキュリティ・ルールの更新を参照してください。

オブジェクト・ストレージ: 特定のVCNまたはCIDR範囲からのみのバケット・アクセスを許可します

サービス・ゲートウェイを使用してオブジェクト・ストレージにアクセスする場合、次の条件に該当すれば、特定のオブジェクト・ストレージ・バケットへのアクセスを許可するIAMポリシーを記述できます。

  • リクエストがサービス・ゲートウェイを経由します。
  • リクエストがポリシーで指定されている特定のVCNから発行されます。

この特定タイプのIAMポリシーの例と、その使用に関する重要事項については、タスク4: (オプション)オブジェクト・ストレージ・バケット・アクセスを制限するためのIAMポリシーの更新を参照してください。

別の方法として、IAM IPベースのフィルタ処理を使用すると、IPアドレスまたはアドレス範囲へのアクセスを制限できます。詳細は、ネットワーク・リソースの管理を参照してください。

サービス・ゲートウェイの削除

サービス・ゲートウェイを削除する場合、そのトラフィックをブロックする必要はありませんが、そのゲートウェイがターゲットとしてリストされたルート表が存在していない必要があります。サービス・ゲートウェイの削除を参照してください。

必須IAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者からポリシーでセキュリティ・アクセス権が付与されている必要があります。コンソールまたは(SDK、CLIまたはその他のツールを使用した) REST APIのどれを使用しているかにかかわらず、このアクセス権が必要です。権限がない、または認可されていないというメッセージが表示された場合は、自分がどのタイプのアクセス権を持っているか、およびどのコンパートメントで作業するかを管理者に確認してください。

管理者用: ネットワーキングに対するIAMポリシーを参照してください。

コンソールでのサービス・ゲートウェイの設定

サービス・ゲートウェイの作成の手順を参照してください。

タスク2: サブネットのルーティングの更新

特定のサービスCIDRラベルにサービス・ゲートウェイを構成する場合は、そのラベルを宛先とし、サービス・ゲートウェイをターゲットとして指定したルート・ルールを作成する必要もあります。ゲートウェイにアクセスする必要があるサブネットごとに、これを行います。

  1. VCN内のどのサブネットがサービス・ゲートウェイにアクセスする必要があるかを決定します。
  2. これらのサブネットごとに、次の値を使用してサブネットのルート表を更新し、新しいルールを含めます:

    • ターゲット・タイプ: サービス・ゲートウェイ。
    • 宛先サービス: ゲートウェイに対して有効になっているサービスCIDRラベル
    • コンパートメント: サービス・ゲートウェイが配置されているコンパートメント。
    • ターゲット: サービス・ゲートウェイ。
    • 説明: ルールのオプションの説明。

ルールに一致する宛先のサブネット・トラフィックは、サービス・ゲートウェイにルーティングされます。ルート・ルールの設定の詳細は、VCNルート表を参照してください。

その後、サービス・ゲートウェイが不要になってNATゲートウェイを削除する場合は、そのサービス・ゲートウェイをターゲットとして指定しているVCN内のすべてのルート・ルールを最初に削除する必要があります。

ヒント

必要なルーティングがない場合、トラフィックはサービス・ゲートウェイを通過しません。ゲートウェイを介するトラフィック・フローを一時的に停止する必要がある状況が発生した場合は、トラフィックを有効にするルート・ルールを削除するだけです。また、ゲートウェイに対する特定のサービスCIDRラベルを無効化することもできます。あるいは、サービス・ゲートウェイを介するすべてのトラフィックを完全にブロックすることもできます。ゲートウェイを削除する必要はありません。

タスク3: (オプション)セキュリティ・ルールの更新

サービスCIDRラベルにアクセスするようにサービス・ゲートウェイを構成するときは、必要なトラフィックを許可するようにセキュリティ・ルールが構成されていることを確認する必要もあります。セキュリティ・ルールですでにこのトラフィックが許可されている場合もあるため、このタスクはオプションになっています。次の手順では、セキュリティ・リストを使用してセキュリティ・ルールを実装することを前提としています。この手順では、サービスCIDRラベルを使用するルールを設定する方法について説明します。ゲートウェイにアクセスする必要があるサブネットごとに、これを行います。

ヒント

セキュリティ・リストは、VCNのリソース内外のトラフィックを制御する1つの方法です。また、ネットワーク・セキュリティ・グループを使用すると、すべて同じセキュリティ体制を持つ一連のリソースにセキュリティ・ルールのセットを適用できます。
  1. VCN内のどのサブネットが目的のサービスに接続する必要があるかを決定します。
  2. それらの各サブネットのセキュリティ・リストを更新して、特定のサービスとの間の必要なエグレス・トラフィックを許可するルールを含めます

    たとえば、サブネットからオブジェクト・ストレージとOracle YUMリポジトリの両方へのエグレスHTTPS (TCPポート443)トラフィックを有効化するステートフル・ルールを追加するとします。ルールを追加するときに選択する基本オプションは次のとおりです。

    1. 「エグレスのルール許可」セクションで、「+ルールの追加」をクリックします。
    2. 「ステートレス」チェック・ボックスは選択を解除したままにします。
    3. 宛先タイプ: サービス。
    4. 宛先サービス: 目的のサービスCIDRラベルオブジェクト・ストレージとOracle YUMリポジトリの両方にアクセスするには、「Oracle Services Networkのすべての<region>サービス」を選択します。
    5. IPプロトコル: TCPのままにします。
    6. ソース・ポート範囲: 「すべて」のままにします。
    7. 宛先ポート範囲: 443と入力します。
    8. 説明: ルールのオプションの説明。

セキュリティ・ルールの設定の詳細は、セキュリティ・ルールを参照してください。

タスク4: (オプション)オブジェクト・ストレージ・バケット・アクセスを制限するためのIAMポリシーの更新

このタスクを適用できるのは、サービス・ゲートウェイを使用してオブジェクト・ストレージにアクセスする場合のみです。オプションで、ネットワーク・ソースを作成し、特定のVCN内のリソースのみに特定のバケットへのオブジェクトの書込みを許可するIAMポリシーを記述することもできます。

重要

次のIAMポリシーの1つを使用してバケットへのアクセスを制限する場合、コンソールからそのバケットにアクセスすることはできません。特定のVCN内からのみアクセスできます。

また、IAMポリシーでは、オブジェクト・ストレージへのリクエストは、指定したVCNからサービス・ゲートウェイを介して送信される場合のみ許可されます。インターネット・ゲートウェイを経由するリクエストは拒否されます。

  • ネットワーク・ソースを作成して、許可されるVCNを指定します。ネットワーク・ソースの作成の詳細は、ネットワーク・ソースの管理を参照してください。
  • ポリシーを作成します。次の例では、ObjectBackupグループ例のリソースが、ABCというコンパートメントにあるdb-backupという既存のバケットにオブジェクトを書き込めるようにします。
    Allow group ObjectBackup to read buckets in compartment ABC
    
    Allow group ObjectBackup to manage objects in compartment ABC where
       all {target.bucket.name='db-backup', 
            request.networkSource.name='<VCN_NETWORK_SOURCE',
            any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}

ポリシーに複数のネットワーク・ソースを作成して指定することで、複数のVCNを指定できます。次の例には、2つのVCNのネットワーク・ソースがあります。VCNを介してOracleサービスにプライベート・アクセスできるオンプレミス・ネットワークを設定し、さらに各自のサービス・ゲートウェイを使用する他のVCNを1つ以上設定した場合は、これを行う可能性があります。詳細は、オンプレミス・ネットワークからOracleサービスへのプライベート・アクセスの概要を参照してください。

Allow group ObjectBackup to read buckets in compartment ABC

Allow group ObjectBackup to manage objects in compartment ABC where
   all {target.bucket.name='db-backup', 
        any {request.networkSource.name='<NETWORK_SOURCE_FOR_VCN_1>', request.networkSource.name='<NETWORK_SOURCE_FOR_VCN_2'},
        any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}