プライベート・エンドポイントのユースケース
データ・フロー・アプリケーションは、プライベート・ネットワーク内でホストされているデータ・ソースにアクセスするように構成できるため、セキュアでシームレスな接続を実現し、潜在的な違反や不正アクセスへの機密データの露出を減らすことができます。
パブリック・ネットワークへの露出を制限することで、このアプローチにより、機密情報を扱う業界にとって重要な関心事であるデータ漏洩や不正アクセスのリスクが軽減されます。たとえば、EUの一般データ保護規則(GDPR)などの規制の対象となる組織は、制御された環境内で個人データを保護し、コンプライアンス違反のリスクを最小限に抑えることができます。同様に、米国の医療保険の相互運用性と説明責任に関する法律(HIPAA)に拘束されている医療提供者は、プライベート・ネットワーク構成を通じて保護医療情報(PHI)を安全に処理し、患者の機密性を保護できます。このアーキテクチャは、データ・セキュリティとプライバシーに関するSOC 2などの他の規制フレームワークへの準拠もサポートしているため、組織は高パフォーマンスのデータ処理を維持しながら義務を果たすことができます。
プライベート・ネットワーク・アクセスを使用してデータ・フロー・アプリケーションを構成すると、次の機能が提供されます。
- プライベートOracle Cloud Infrastructure (OCI)データ・ソースへのアクセス: プライベート・ネットワーク内でのみアクセス可能なOCIデータ・ソースに接続します。
- オンプレミス・データ・ソースとの統合: サイト間VPNまたはFastConnectを介して、OCI Virtual Cloud Network (VCN)に接続されたオンプレミス・データにアクセスします。
- Oracle RACデータベースのサポート: SCANプロキシ機能を使用して、Oracle RACデータベースにアクセスします。
次の図は、データ・フロー・ネットワーク構成の簡略化された図を示しています。その中で、データ・フロー・サービス・テナンシ内で実行されているサーバーレス・アプリケーションを確認します。そのため、この図から一部のネットワーク・コンポーネントを理解する必要があります。
セキュアなプライベート・ネットワークで実行されている他のアプリケーションと同様に、データ・フロー・アプリケーション・クラスタは、NAT Gateway (ネットワーク・アドレス変換)を介してインターネットに接続し、サービス・ゲートウェイ(SGW)を使用してOracle Service Network (OSN)に接続し、インターネットからアプリケーション・クラスタへのアクセスを制限します。データ・フロー・プライベート・アクセス・ゲートウェイ(データ・フロー・プライベート・エンドポイント)が構築され、データ・フロー・アプリケーションは、プライベート・サブネットに存在するADBインスタンスなどのOCIリソース、およびFast-Connectまたはサイト間VPNを使用してOCIに接続されている顧客のオンプレミス・リソースにアクセスできます。
次のユース・ケースでは、ネットワーク設定および一部の追加構成によってプライベート・サブネットを介したセキュアなアクセスがどのように可能になるかを分析する方法を示します。
プライベート・エンドポイント・アクセスのみで構成されたADBインスタンスへの接続
これは、データ・フローおよびプライベート・エンドポイントの最も一般的なユースケースです。
- ADBインスタンスのネットワーク・アクセス・タイプは
Virtual cloud network
に設定され、プライベート・サブネットが選択されます。Autonomous Databaseの詳細に移動し、「ネットワーク」でプライベート・エンドポイントURL (FQDN)をコピーします。次に例を示します:
<podID>.adb.<region>.oraclecloud.com
- したがって、プライベート・エンドポイントはVCNですでに解決されているため、データ・フロー構成に転送できます。そのため、データ・フロー・プライベート・エンドポイントの詳細で:
「編集」を選択し、DNSゾーンを更新して、前のステップで収集したADBインスタンスのFQDNを解決して貼り付けます。
許可されたIPおよびVCNsからのセキュア・アクセス
データ・フロー・プライベート・エンドポイントは、実装設定には必要ありません。
Oracle Cloud Infrastructure Object Storageでプライベート・エンドポイントおよびリージョン制限を使用するためのデータ・フロー・アプリケーションの移動
「インターネット・アクセス」タイプで実行されているデータ・フロー・アプリケーションは、異なるリージョンのバケットにアクセスするためにカウントされる場合があります。たとえば、IADリージョンで実行されているアプリケーションは、OCI IAM認可によってそのようなアクセス権が付与されている場合、PHXリージョンに格納されているオブジェクトにアクセスできます。
このアプリケーションが最終的に「プライベート・アクセス」実行に移行すると、別のリージョンのパブリック・オブジェクト・ストア・サービスへのアクセスが失われます。サービス・ゲートウェイは、前のイメージに示すようにオブジェクト・ストア・サービスとの通信を維持するため、ドメイン名の解決(DNS)でリージョナル・アクセスが適用されます。
これがシナリオの場合、データ・フロー・プライベート・エンドポイントを使用したリージョン間アクセスに従います。
その他のOracle Services制限へのアクセス
oracle.com
oracle-ocna.com
oraclegoviaas.com
oraclegovcloud.com
oracleiaas.com
grungy.us
oraclecorp.com
oraclecloud.net
oraclegha.com
oc-test.com
oracleemaildelivery.com
ocir.io
oracledx.com
一般に、次のOracleサービスは、データ・フローのプライベート・エンドポイントを使用して制限されます:- 分離されたIAMアクセス・ポリシーを持つオブジェクト・ストア・バケット。
- OCIリソースのクロスリージョン・アクセス。
- IPアドレスを直接使用して、顧客テナンシのプライベート・リソースにアクセスします。
オンプレミス・リソースへの接続
プライベート・エンドポイントを介してデータ・フローをオンプレミスのデータ・ソースと統合することで、ハイブリッド環境全体でセキュアで効率的なデータ処理を実現します。
サイト間VPNやFastConnectなどのプライベート・ネットワーク接続オプションを使用して、データ・フロー・アプリケーションをオンプレミス・インフラストラクチャでホストされているデータ・リポジトリにシームレスに接続できます。これにより、厳密なセキュリティ境界を維持しながら、堅牢で低レイテンシな通信が可能になります。クラウド環境とオンプレミス環境でセキュアなデータ・アクセスと処理を必要とするユース・ケースに使用します。
この設定の重要な要素は、プライベート・アクセス・ゲートウェイ内で行われるDNS解決です。この構成では、プライベートIPアドレス自体ではなく、プライベート・エンドポイントのDNS名(完全修飾ドメイン名またはFQDN)が提供されます。DNSのネットワーク設定を構成している場合、ホストはFQDNを使用してプライベート・エンドポイントにアクセスできます。データ・フローでは、ネットワーク・セキュリティ・グループ(NSG)とそのリソースがサポートされます。データ・フロー・サービスがVCN内のNSGにプライベート・エンドポイントを設定するようにリクエストできます。NSGによって、プライベート・エンドポイントに割り当てられたプライベートIPアドレスを知らなくても、プライベート・エンドポイントへのアクセスを制御するセキュリティ・ルールを記述できます。
OCIカスタマVCNとオンプレミス・ネットワーク間の接続が確立されている場合、データ・フロー・アプリケーションを正しく動作させるには、オンプレミス・ネットワーク内のプライベートIPをOCIカスタマVCN内のプライベート・ドメイン・リゾルバに関連付ける必要があります。
この部分を説明するために、OCIネットワーク・ビジュアライザを使用して接続された2つのネットワークを使用しています。hdi-dataflow-VCNプライベート・サブネットは、disdemo-DRG動的ルーティング・ゲートウェイ・アタッチメントに接続されています。
この時点以降、関連する部分は、DNS解決がどのように行われるかを決定することです。この例では、2つのDNSリゾルバを作成しました:
- hdi-dataflow-vcn標準ビューに接続されているもの(industrial.com)
- customer-private-viewの別のドメインoraclevcn.comの解決があり、これがOCI VCN内のプライベート・サブネットであることを示します。
選択したVCNの「プライベート・リゾルバの詳細」で、「プライベート・ビューの管理」を選択します。次の2つのオプションがあります。
- 保護されたプライベート・ビューでは、hdi-dataflow-vcnプライベート・ビューを作成します(順序1)。
- プライベート・ビューの管理を再度使用して、customer-private-view(Order 2)を作成します。
「プライベート・ゾーン」の下の最初のプライベート・ビューhdi-dataflow-vcnにナビゲートし、Primary Zone
タイプのindustrial.com
ゾーンを作成しました。
同様に、customer-private-viewに移動し、参照されるVCNのプライベート・サブネット内にプライベート・ゾーンがすでに作成されていることを確認します。
プライベート・ビューのindustrial.comゾーンで、「レコードの管理」を選択して、顧客のオンプレミス・ネットワークで実行されている外部MySQLServerのIPの新規レコードを作成します。例:
名前: MySQL_Customer_OnPremises(.industrial.com)
タイプ: A - IPv4アドレス
TTL (秒単位): 3600
RDATA/回答
アドレス: 10.xx.xx.xx (オンプレミス・リソースのIPアドレス)。
同様に、現在のVCNとピアリングされている別のOCIプライベートVCN内のプライベート・アクセス(前のイメージのプライベート・アクセスなど)についても、ローカル・ピアリング・ゲートウェイ(LPG)を介して同じ操作を行います。したがって、内部ゾーンprivatesubnet.dfarchitecture.oraclevcn.comで、ピアリングされたVCNのプライベート・サブネットで実行されている別のMySQLインスタンスのIPにレコードを追加します。例:
ドメイン: mysql-private.privatesubnet.dfarchitecture.oraclevcn.com
タイプ: A - IPv4アドレス
TTL (秒単位): 3600
RDATA/回答
アドレス: 12.xx.xx.xx (ピアリングされたVCN内のリソースのIPアドレス)。
ここでも、DNS解決は、データ・フロー・プライベート・エンドポイントの使用時に対処される重要な要素です。ダウンストリーム・ネットワークに適したレコード・タイプを使用して解決します。これらのタイプと構成については、DNSゾーンの管理のドキュメントに従ってください。
データ・フロー・プライベート・エンドポイントのテスト
この構成が動作していることをテストおよび検証するために、Github Dataflow Samplesでは、コード本文が最初の反復でDNS解決をテストし、正の場合は2番目の反復で構成されたレコードとの接続を確立しようとします。詳細は、READMEを参照してください。
FQDN 'MySQL_Private_DB.industrial.com' resolved to IP '255.33.36.2'. Testing connectivity...
Success: Able to connect to MySQL_Private_DB.industrial.com (255.33.36.2) on port 3306.
データ・フロー・プライベート・エンドポイントを使用したリージョン間アクセス
データ・フローは、アップグレードされたDynamic Routing Gateway (DRG)を介したリモートVCNピアリングを使用した、リージョン間のシームレスなデータ・アクセスのためのプライベート・エンドポイント統合をサポートしています。
この構成により、あるリージョンのデータ・フロー・アプリケーションは、次のイメージに示すように、別のリージョンのVCNでホストされているデータ・ソースに安全に接続できます:
アップグレードされたDRGの高度な機能(推移的ルーティングや一元化された接続など)を使用して、堅牢なセキュリティ体制を維持しながら、高パフォーマンスで低レイテンシのデータ転送を保証できます。
また、OCIのマルチクラウド・ネットワーキング機能を使用すると、この設定を拡張して、Microsoft Azureなどの接続を行うことができます。次の図に示すように、OCI-Azure Interconnectまたは同様のマルチクラウド接続フレームワークを使用して、データ・フローでAzure Blob StorageやAzure SQL DatabaseなどのAzureリソースに格納されているデータを処理できます:
このアーキテクチャは、厳格なセキュリティとコンプライアンス基準を維持しながら、OCIとAzure間の一元化された接続性、推移的なルーティング、低レイテンシのデータ転送をサポートします。
データ・フロー・プライベート・エンドポイントの場合、オンプレミス・リソースへの接続に示すように、プライベート・リゾルバを使用してDRGの前にDNS名をどのように解決するかが重要になります。具体的な利点は、サービス内のプライベート接続用のインスタンスであるVCNが、インターネットを横断することなく、コンシューマ指定のワークロードにアクセスできることです。それ以外にも、データ・フロー・プライベート・エンドポイントは、サービスVCN内のインスタンスからコンシューマのオンプレミス・ネットワークおよびコンシューマVCNを介してアクセス可能なその他のネットワークへのプライベート接続を拡張できます。ユーザビリティの観点からは、サービス・コンソール(またはAPI)のみとの対話を続行でき、プライベート・アクセスを有効にするために別のインタフェースは必要ありません。データ・フロー・プライベート・エンドポイントを使用する操作の柔軟性にもかかわらず、いくつかの制限があります:
- データ・フロー・プライベート・エンドポイントのデフォルト制限は、リージョンごとにテナンシ当たり5以下です。
- プライベート・エンドポイントを有効にしてSparkアプリケーションを実行するためにインターネット接続が必要な場合は、対応するDNSゾーン(GoogleのAPI/google.zoneなど)を、アプリケーションのプライベート・エンドポイントのパラメータ(ゾーン)の項に記載する必要があります。そのため、ゾーンが許可リストに登録されている場合、トラフィックは解決のために顧客のVCNにルーティングされます。顧客ネットワークは、パケットがコンシューマ・ゲートウェイVCNに到達した後、インターネット接続を担当します。パラメータ(DNSゾーン)に記載されていない他のすべてのゾーンのネットワークトラフィックが削除されます。
Oracle Databaseクラスタ(RACまたはExadata)への接続
データ・フローは、SCAN (単一クライアント・アクセス名)を使用して、クライアント・アプリケーションとしてRAC (実際のアプリケーション・クラスタ)またはExadataマシンに接続できます。
SCANは、仮想IPアドレスに使用されるものと同様の仮想名です。ただし、仮想IPと異なり、SCAN仮想名は、1つのみではなく、個別のノードおよび複数のIPアドレスではなく、クラスタ全体に関連付けられています。
SCANプロキシ機能を有効にすると、IPベースのリダイレクトを処理するためにリバース接続エントリ・ポイント(RCE)が確立されます。次の図に示すように、プライベート・エンドポイントVNIC (プライベート・エンドポイント仮想ネットワーク・インタフェース・カード)が顧客VCNに作成されます。RCEプライベート・エンドポイントVNICは、データ・フロー・プライベート・エンドポイント設定ごとに一意です。データベース・クラスタへのTLS接続に関する重要な考慮事項の1つは、データベースSCANリスナーがネットワーク・トラフィックをIPアドレスに直接ではなくFQDNにリダイレクトすることです。TLSを有効にするのは、SCANリスナーからのFQDNリダイレクトのみです。したがって、TLSが必須の場合は、FQDNにリダイレクトするようにデータベース・クラスタを構成します。
SCANプロキシ機能を作成するためのバックグラウンドで実行される構成ステップ:
- ユーザーは、データ・フローのプライベート・エンドポイント構成でSCANプロキシを構成します
- データ・フローは、RCEを更新してSCAN構成(SCANリスナーのDNS名およびポート)を含めます。これにより、同じSCANポートへのサービスVCNバインディングに新しいIP (SCANプロキシIP)が提供されます
- その後、データ・フローはSCANプロキシIPを使用して、元のSCANリスナーDNS名およびSCANプロキシIPを使用して、サービス・ネットワーク内にDNSマッピングを作成します
前の図は、顧客VCNのプライベート・サブネット内のRAC Oracle Databaseシステムの例を示しています。図のフローは、接続の識別に使用されるシーケンスを示します。
- データ・フローは、DNS名を使用して、サービスVCN内のSCANプロキシ・エンドポイントへの接続を開始します。データ・フローでは、特定のポートを選択して、SCANプロキシを介して顧客のRAC接続を定義します。RCE SCANプロキシは、リクエストを顧客ネットワーク内の基礎となるプライベート・エンドポイントVNICリスナーに転送します。次に、基礎となるデータベース・クラスタ・インスタンスのIPに対するSCANリスナー・レスポンスを調べ、クラスE NAT IPを作成し、SCANプロキシ・レスポンスでクラスタ・インスタンスIPをNAT IPに置き換えます。
- プライベート・アクセス・ゲートウェイは、SCANリスナーからリダイレクト・リクエストを受信し、顧客のVCN内のローカル・リスナーIPをマップされたIPアドレスに自動的に変換し、この情報をデータ・フロー・コンポーネントに戻して、ローカル・リスナーのいずれかに接続リクエストを作成します。
データ・フロー・プライベート・エンドポイント構成で、「SCAN詳細」セクションにスキャン・ホストのDNS名とその関連するポート番号を入力します。例:
DNS名: oracleDB-scan-sub0911000090.dfarchitecture.oraclevcn.com
ポート: 16001
ネットワーク・トラフィックおよび分離に関する考慮事項
Sparkサーバーレス実行を実行する場合、最高のパフォーマンス、セキュリティおよびコンプライアンスを確保するために、ネットワーク・トラフィックのパターンと分離を考慮することが重要です。
サーバーレスSparkジョブは、ネットワーク・トラフィックがアプリケーション、データ・ソースおよび外部サービス間で流れる管理対象環境内で実行されます。レイテンシを最小限に抑え、トラフィックを制御するには、可能なかぎりデータ・ソースが同じリージョンとVirtual Cloud Network (VCN)内にコロケーションされていることを確認します。次に、データ・フロー・プライベート・エンドポイントの設定に関するその他の考慮事項と情報を示します:
- アプリケーションがデータ・フロー・プライベート・エンドポイント・リソースとともに実行されると、プライベート・エンドポイントの作成中にDNSゾーンが許可リストされているかぎり、インターネットへのネットワーク・トラフィックはプライベート・エンドポイント・インフラストラクチャを介してVCNサブネットにルーティングされます。VCNにインターネット・ゲートウェイがアタッチされていない場合、失敗します。DNSゾーンが許可リストに登録されていない場合、ネットワーク・トラフィックは削除されます。OCIサービスへのネットワーク・トラフィック(Oracle Services Networkのオブジェクト・ストレージなど)は、引き続きデータ・フローのVCNを介してルーティングされます。
- データ・フローの実行中、テナントに割り当てられた任意のノードから実行されているSparkデータ・フロー・アプリケーションは、DNS名(customer1.instance1.subnet.oraclevcn.comなど)でプライベート・リソースへのネットワーク接続を開始します。これには、プライベート・リソースに割り当てられたDNSプロキシIPのDNSルックアップが含まれ、プライベート・エンドポイント/リバース接続エンドポイントの設定中に作成されます。逆接続では、サーバーはクライアントへの接続を開始し、ネットワーク内の指定されたエンドポイントに接続することでデータ・フローがリソースにプライベートにアクセスできるようにします。
- プライベート・ビューのDNSゾーンでは、特定のCIDR範囲(255.33.36.2など)から割り当てるcustomer.instance.subnet.oraclevcn.comのクラスE IPアドレス(240.0.0.0-255.255.255.255)を返すプロキシが作成されます。これは、データ・フロー・プライベート・エンドポイントのテストのテスト・スクリプトに示されます。この例では、ジョブを実行しているデータ・フロー・ノードが255.33.36.0/24へのネットワーク接続を確立でき、その宛先CIDR範囲でステートフル・エグレス・ルールが作成されます。つまり、データ・フロー・インスタンスが別のホストへのトラフィックを開始し、そのトラフィックがエグレス・セキュリティ・ルールによって許可される場合、後でインスタンスがそのホストから受信する一定期間のトラフィックは、レスポンス・トラフィック(イングレス)とみなされ、許可されます。ルート表ルールも追加され、宛先CIDR範囲のデータ・フロー・プライベート・エンドポイントを、そのリソースに割り当てられた255.33.36.0/24として適切にルーティングします。
サマリー
データ・フローのプライベート・エンドポイント機能は、多様なデータ・ソースおよび環境にアクセスするための堅牢で安全な接続を提供します。
プライベート・エンドポイント・アクセスを使用すると、プライベート・アクセス専用として構成されたAutonomous Database (ADB)インスタンスにシームレスに接続できるため、データベースをパブリック・ネットワークに公開することなく安全な対話が可能になります。同様に、プライベート・エンドポイントは、サイト間VPNまたはFastConnectを介してオンプレミス・リソースへの安全な接続を可能にし、ハイブリッド・クラウドのユース・ケースを提供します。
リージョン間のアクセスは、リモートVCNピアリングとアップグレードされたDynamic Routing Gateways (DRG)を使用した分散ワークロードでサポートされ、リージョン間の低レイテンシのデータ処理を実現します。また、データ・フローは、RACやExadataなどのOracle Databaseクラスタへの接続をサポートし、SCANプロキシ機能を活用して効率的で高可用性なアクセスを実現します。これらの機能は、サーバーレスSpark実行に最適なパフォーマンス、セキュリティおよびコンプライアンスを確保するために、プライベートIP、セキュリティ・ルール、DNS構成など、厳格なネットワーク分離およびトラフィック管理プラクティスによって支えられています。