Oracleサービスへのアクセス: サービス・ゲートウェイ
このトピックでは、サービス・ゲートウェイを設定および管理する方法について説明します。サービス・ゲートウェイを使用すると、パブリックIPアドレスを持たないクラウド・リソースがOracleサービスにプライベート・アクセスできます。
Oracleサービスへのアクセス
Oracle Services Networkは、Oracleサービス用に予約されているOracle Cloud Infrastructure内の概念ネットワークです。これらのサービスには、通常はインターネットを介してアクセスするパブリックIPアドレスがあります。ただし、インターネット経由のトラフィックを発生させずにOracle Services Networkにアクセスすることもできます。どのホストからアクセスする必要があるかによって、方法は異なります:
-
オンプレミス・ネットワーク内のホスト:
- FastConnectプライベート・ピアリングまたはサイト間VPNを使用した、VCNを介するプライベート・アクセス: オンプレミス・ホストはプライベートIPアドレスを使用し、VCNおよびVCNのサービス・ゲートウェイを経由してOracle Services Networkに到達します。
- FastConnectパブリック・ピアリングを使用したパブリック・アクセス: オンプレミス・ホストはパブリックIPアドレスを使用します。
- VCN内のホスト:
- サービス・ゲートウェイを介するプライベート・アクセス: これがこのトピックで説明するシナリオです。VCNのホストはプライベートIPアドレスを使用します。
ハイライト
- サービス・ゲートウェイを使用すると、Virtual Cloud 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ゲートウェイに送信されます。
宛先CIDR | ルート・ターゲット |
---|---|
0.0.0.0/0 | インターネット・ゲートウェイ |
宛先CIDR | ルート・ターゲット |
---|---|
リージョン内のOSNサービス | サービス・ゲートウェイ |
0.0.0.0/0 | NATゲートウェイ |
サービス・ゲートウェイは、そのゲートウェイ自身のVCN内のリソースが使用できます。ただし、VCNが他のVCNとピアリングされている場合、両方のVCNでサービス・ゲートウェイが構成されていないかぎり、もう一方のVCN内のリソースはサービス・ゲートウェイにアクセスできません。スポークを起点としOracle Services Networkを宛先とするトラフィックを、ハブ内のネットワーク仮想アプライアンス(NVA)を経由してからハブのサービス・ゲートウェイを経由するように構成できます。詳細は、ルート・ターゲットとしてのプライベートIPの使用およびOracleサービスへのプライベート・アクセスを参照してください。
また、サービス・ゲートウェイのVCNにFastConnectまたはサイト間VPNを使用して接続されているオンプレミス・ネットワーク内のリソースも、サービス・ゲートウェイを使用できます。詳細は、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ラベルは次のとおりです:
- OCI <region>オブジェクト・ストレージ: このサービスの詳細は、オブジェクト・ストレージの概要を参照してください
- Oracle Services Networkのすべての<region>サービス: サポートされているサービスのリストは、サービス・ゲートウェイ: Oracle Services Networkでサポートされているクラウド・サービスを参照してください。
サービス・ゲートウェイのサービス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ポリシーを参照してください。
コンソールでのサービス・ゲートウェイの設定
「サービス・ゲートウェイの作成」の手順を参照してください。
「サービス・ゲートウェイの作成」の手順を参照してください。
特定のサービスCIDRラベルにサービス・ゲートウェイを構成する場合は、そのラベルを宛先とし、サービス・ゲートウェイをターゲットとして指定したルート・ルールを作成する必要もあります。ゲートウェイにアクセスする必要があるサブネットごとに、これを行います。
- VCN内のどのサブネットがサービス・ゲートウェイにアクセスする必要があるかを決定します。
-
これらのサブネットごとに、サブネットのルート表を更新し、次の値を使用して新しいルールを含めます:
- ターゲット・タイプ: サービス・ゲートウェイ。
- 宛先サービス: ゲートウェイに対して有効になっているサービスCIDRラベル。
- コンパートメント: サービス・ゲートウェイが配置されているコンパートメント。
- ターゲット: サービス・ゲートウェイ。
- 説明: ルールのオプションの説明。
ルールに一致する宛先のサブネット・トラフィックは、サービス・ゲートウェイにルーティングされます。ルート・ルールの設定の詳細は、VCNルート表を参照してください。
その後、サービス・ゲートウェイが不要になってNATゲートウェイを削除する場合は、そのサービス・ゲートウェイをターゲットとして指定しているVCN内のすべてのルート・ルールを最初に削除する必要があります。
必要なルーティングがない場合、トラフィックはサービス・ゲートウェイを通過しません。ゲートウェイを介するトラフィック・フローを一時的に停止する必要がある状況が発生した場合は、トラフィックを有効にするルート・ルールを削除するだけです。また、ゲートウェイに対する特定のサービスCIDRラベルを無効化することもできます。あるいは、サービス・ゲートウェイを介するすべてのトラフィックを完全にブロックすることもできます。ゲートウェイを削除する必要はありません。
サービスCIDRラベルにアクセスするようにサービス・ゲートウェイを構成するときは、必要なトラフィックを許可するようにセキュリティ・ルールが構成されていることを確認する必要もあります。セキュリティ・ルールですでにこのトラフィックが許可されている場合もあるため、このタスクはオプションになっています。次の手順では、セキュリティ・リストを使用してセキュリティ・ルールを実装することを前提としています。この手順では、サービスCIDRラベルを使用するルールを設定する方法について説明します。ゲートウェイにアクセスする必要があるサブネットごとに、これを行います。
セキュリティ・リストは、VCNのリソース内外のトラフィックを制御する1つの方法です。また、ネットワーク・セキュリティ・グループを使用すると、すべて同じセキュリティ体制を持つ一連のリソースにセキュリティ・ルールのセットを適用できます。
- VCN内のどのサブネットが目的のサービスに接続する必要があるかを決定します。
-
それらの各サブネットのセキュリティ・リストを更新して、特定のサービスとの間の必要なエグレス・トラフィックまたはイングレス・トラフィックを許可するルールを含めます
たとえば、サブネットからオブジェクト・ストレージとOracle YUMリポジトリの両方へのエグレスHTTPS (TCPポート443)トラフィックを有効化するステートフル・ルールを追加するとします。ルールの追加時に選択する基本オプションは次のとおりです。
- 「エグレスのルール許可」セクションで、「+ルールの追加」をクリックします。
- 「ステートレス」チェック・ボックスは選択を解除したままにします。
- 宛先タイプ: サービス。
- 宛先サービス: 目的のサービスCIDRラベル。オブジェクト・ストレージとOracle YUMリポジトリの両方にアクセスするには、「Oracle Services Networkのすべての<region>サービス」を選択します。
- IPプロトコル: 「TCP」のままにします。
- ソース・ポート範囲: 「すべて」のままにします。
- 宛先ポート範囲: 443と入力します。
- 説明: ルールのオプションの説明。
セキュリティ・ルールの設定の詳細は、セキュリティ・ルールを参照してください。
このタスクを適用できるのは、サービス・ゲートウェイを使用してオブジェクト・ストレージにアクセスする場合のみです。オプションで、ネットワーク・ソースを作成し、特定の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'}}