ノート:

VCNからOracle Servicesに安全にアクセスするためのOracle Cloud Infrastructureでのプライベート・サービス・アクセス(PSA)の構成

はじめに

Oracle Cloud Infrastructure(OCI)は、プライベート・サービス・アクセス(PSA)を導入しています。これは、Virtual Cloud Network(VCN)内でOCIサービス(API、Object Storage、Yumリポジトリを含む)へのプライベートIP接続を提供する新しいネットワーキング構造です。PSAにより、ワークロードはパブリック・インターネットを経由せずにOCIサービスに安全にアクセスでき、同じ使い慣れたFQDNを引き続き使用できます。

これまで、お客様にはプライベート接続のための2つの主要なオプションがありました。サービス・ゲートウェイ(SGW)により、プライベートVCNからOracle Services Network (OSN)にアクセスできましたが、パブリックIPアドレス指定に依存し、広範かつオール・アンド・ナッシングのアクセスを提供します。一方、多くのサービスでは、より分離されたアクセスを実現するためにプライベート・エンドポイントが導入されましたが、これらはサービスごとに構成する必要があり、大規模な複雑さが生じます。

PSAは、両方の長所を組み合わせることで、これらのアプローチを橋渡しします。

このチュートリアルでは、VCNでPSAを構成する方法、OCI Service API (Object Storage、Oracle Yum、ZPR APIなど)へのアクセスをテストしてプライベート接続を検証する方法、およびトラフィックがパブリック・インターネットを使用するのではなくプライベートIPにとどまることを確認する方法を学習します。最後に、PSAがサービス・ゲートウェイおよびプライベート・エンドポイントとどのように比較され、セキュアで最新のOCIネットワーキング戦略の一部としてPSAを採用するかを理解します。

なぜこのチュートリアルは必須ですか?

OCIでは、Oracleサービスへのプライベート接続は常に可能でしたが、オプションにはトレードオフが付属しています。Service Gatewayは、お客様がOracle Services Networkにアクセスする簡単な方法を提供しましたが、それでもパブリックIPに依存し、広範なアクセスのみを許可しました。サービス固有のプライベート・エンドポイントは、より強力な分離を提供していましたが、それらを個別にデプロイおよび管理し、スケーリング時に運用オーバーヘッドを追加する必要がありました。

プライベート・サービス・アクセス(PSA)は、OCIサービスAPIにアクセスするための統合されたVCNネイティブ・ソリューションを提供することで、ギャップを埋めます。これにより、トラフィックがプライベートIPに留まり、サービスごとのアクセス制御が適用され、アプリケーションがすでに使用しているのと同じFQDNが維持されます。

このチュートリアルでは、PSAをエンドツーエンドで構成する方法を示し、パブリック・インターネットにアクセスすることなくワークロードがOCI Service APIに接続することを検証し、PSAが既存のアプローチとどのように比較されているかを理解するため、不可欠です。これを完了することで、独自のOCI環境でPSAを自信を持って採用するための基盤を構築できます。

アーキテクチャ

このアーキテクチャは、PSAインスタンスと呼ばれるクライアント仮想マシン(VM)を示しており、インターネット・アクセスのないプライベート・サブネット(IGWまたはNAT GW経由)で実行され、サービス・ゲートウェイを介したOCIサービスへの接続はありません。かわりに、VMはプライベート・サービス・アクセス(PSA)を使用してOCIパブリック・サービスにアクセスします。パブリック・サブネットのジャンプ・サーバーは、テスト中にssh経由でPSAインスタンスに接続するために使用されます。

PSAエンドポイントが作成されると、サービスは、ターゲットOCIパブリック・サービスの完全修飾ドメイン名(FQDN)をプライベート・ビューに追加し、PSAサービスのプライベートIPアドレスにマップすることで、VCNのプライベートDNSリゾルバを自動的に更新します。同様に、PSAエンドポイントが削除されると、それらのFQDNは削除されます。例として、yum.eu-madrid-1.oci.oraclecloud.com、network-load-balancer-api.eu-madrid-1.oci.oraclecloud.comなどがあります。

アーキテクチャ

目的

このチュートリアルの最後には、次のことを行います。

前提条件

タスク1: ネットワーキング・コンポーネント(VCN、サブネットおよび仮想マシン)のデプロイ

1.- 選択したIPv4 CIDRを使用するか、推奨アーキテクチャに従って、テナンシに少なくとも2つのサブネット(パブリックおよびプライベート・サブネット)があるVirtual Cloud Network (VCN)をデプロイします。詳細は、次の各トピックを参照してください:

2.- 2つのlinux VM (Jump Server in public、PSA instance in private)をサブネットごとに1つデプロイします。詳細は、次の各トピックを参照してください:

タスク2: PSAインスタンスにアクセスするためのJump Server VMのテスト

Linux Jump Server VMをアクセス・ポイントとして使用して、プライベート・サブネット(PSAインスタンス)でホストされているVMに到達します。ご存知のように、プライベート・サブネット内の仮想マシンは、プライベートIPを介してのみアクセスでき、インターネット接続はありません。アクセスを有効にするには、PSAインスタンスのSSH秘密キーをジャンプ・サーバーにアップロードする必要があります。ここから、PSAインスタンスへのSSH接続を開始できます。SFTPを使用してキーを安全にアップロードすることをお薦めします。

秘密キーをSFTP経由でジャンプ・サーバーにアップロードすると、ジャンプ・サーバーにsshし、次のことを行います。

ssh -i private_PSA_instance_ssh.prv 10.200.20.X ( your vm PSA instace ip)

ノート: OCIで生成されたSSH秘密キーの使用時に互換性の問題が発生した場合は、PuTTYgen (Windowsの場合)またはOpenSSL (Linux/macOSの場合)などのツールを使用して、必要な形式に変換できます。これらのツールを使用すると、SSHクライアントとシームレスに使用できるように、形式間で鍵を変換できます。

puttyGenについては、次のドキュメントを参照してください: PuttyGen

タスク3: PSAインスタンスへのOCI cliのインストール

PSAインスタンスにログインしたので、OCI CLIをインストールする必要があります。

OCI CLIのインストールについては、このドキュメントを参照してください: OCI CLIのインストール

プライベート・サブネットでホストされているこのPSA VMには、一時的にインターネット・アクセスが必要になることに注意してください。VCNにNAT Gatewayを追加し、それを指す0.0.0.0/0ルートを作成することをお薦めします。

NAT Gatewayの構成および使用については、次のドキュメントを参照してください: OCI Nat Gateway

インストール後、プライベート・サブネットからNAT Gatewayを削除することは非常に重要です。目的は、イングレスまたはエグレスというパブリック・アクセスのない厳密なプライベート・サブネットからOracle serviceをテストすることです。

タスク4: テストするPSAサービスの追加

このタスクでは、OCI CLI APIを介してプライベートPSAインスタンスから後でテストする一連のPSAサービスを追加します。

1.- OCIコンソールに移動: Networking-VCN
ネットワークPSA構成1

2.- 「Virtual Cloud Networks」をクリックし、PSAプライベート・インスタンスが存在するVCNを選択します。
ネットワークPSA構成2

3.- VCN内で、プライベート・サービス・アクセスを選択します。
ネットワークPSA構成3

4.- 「PSAエンドポイントの作成」ボタンを押します。
ネットワークPSA構成4

5.- 「PSAの作成」メニューで、PSAサービスの名前、PSAサービスが作成されるコンパートメント、作成するPSAタイプのサービス、エンドポイントが作成されるサブネット・コンパートメントおよびサブネットを選択する必要があります。また、プライベートIPの自動割当てまたは手動割当ても選択できます。最後の選択肢はセキュリティです。ZPRセキュリティ属性またはNSGを割り当てて、そのエンドポイントへのトラフィックを許可することを強くお薦めします。
ネットワークPSA構成5
ネットワークPSA構成6
ネットワークPSA構成7

PSAが作成されると、次のリストに表示されます。
ネットワークPSA構成8

PSAには、それが作成されたサブネットからプライベートIPアドレスが割り当てられます。このプライベートIPは、自動的に割り当てるか、サブネットから手動で選択でき、コンソールでは「IPv4アドレス」として表示されます。PSAには、プライベート・サービスに関連付けられたFQDN (ドメイン名)もあり、コンソールには同じプライベートIPにマップされる'IPv4 FQDN'として表示されます。

タスク5: PSAエンドポイントのテスト

次に、PSAエンドポイントをテストする必要があります。この例では、YUMサーバーとZero Trust Packer Routing Control Plane APIをテストします。

1.- まず、SSH経由でジャンプ・サーバーに接続します。

2.- ジャンプ・サーバーから、プライベートPSAインスタンスにSSHで接続します。

ノート: このインスタンスにはインターネット・アクセスがなく、サービス・ゲートウェイまたはNAT Gatewayのいずれにも接続されていません。」

[opc@jumpserver ~]\$ ssh -i private_OCI_v2_ssh.prv 10.200.20.67

[opc@privateinstace-psa-test ~]\$

事前チェックとして、IPv4 FQDNが実際にプライベートIPを指しているかどうかをテストします

dig +short yum.eu-madrid-1.oci.oraclecloud.com 
10.200.20.172

プライベートIPではなくパブリックIPが表示された場合は、何か問題が発生しました。IPv4の詳細は、IPv4を参照してください。

次に、yum updateを呼び出します。

yumの更新

Yumサービスは、PSAプライベート・エンドポイント'yum.eu-madrid-1.oci.oraclecloud.com'(10.200.20.172)を経由します。

ZPR Oneより:

dig +short zpr.eu-madrid-1.oci.oraclecloud.com
10.200.20.128

次に、特定のテナンシ内のZPRポリシーの数をリストします

oci zpr zpr-policy list  --compartment-id ocid1.tenancy.oc1..aaaaaaaabh2affulc4dt4tqs7lbojyhqi6hzXXXXXX  --region eu-madrid-1

zprリスト・テスト

まとめ

このチュートリアルでは、プライベート・サービス・アクセス(PSA)を使用して、プライベート・サブネットのワークロードが、インターネットまたはサービス・ゲートウェイの接続を必要とせずに、Oracle Cloud Infrastructureパブリック・サービスに安全に到達する方法について学習しました。ここでは、PSAエンドポイントの構成、サービスFQDNをプライベートIPにマッピングする際のVCNのプライベートDNSの役割、およびジャンプ・サーバーを介してプライベート・インスタンスにアクセスする方法について説明します。

PSAは、どのサービスがプライベート・エンドポイントを介して公開されるかをより柔軟に制御できるため、重要です。幅広いアクセスを開く代わりに、どのOCIパブリック・サービスにアクセスできるかを正確に定義して、アクセス制御の観点からアーキテクチャをよりセキュアかつ細かくすることができます。

設定および検証ステップを完了することで、PSAがVCN内にトラフィックを完全に保持しながらセキュリティを強化するシンプルで強力な方法を提供する方法を確認しました。これらの基盤を導入することで、PSAをより複雑なシナリオに統合できるようになりました。

確認

その他の学習リソース

docs.oracle.com/learnの他のラボを調べるか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、Oracle Learning Explorerになるには、education.oracle.com/learning-explorerにアクセスしてください。

製品ドキュメントについては、Oracle Help Centerを参照してください。