OCI テナンシ間プライベート接続 (Part 3 - DRG RPC編)

OCI Core Services

初めに

ISV(SaaS提供者)とエンドユーザーのOCI環境は、コンパートメント単位ではなくテナンシ単位で分けられるケースが多くあります。そのような場合、ISV側の管理者がインターネットを経由せずに、エンドユーザーのインスタンスに対し、プライベート接続によるアクセスを実現したい、という要望はよく聞かれる要件です。

実現方法はいくつかあり、今回から全4回にわたって、さまざまな接続方式と差異比較をご紹介していきます:

構成図
Cross tenancy connection (via DRG RPC)

検証環境
Compute Instance (Linux 8 VM)

Computeインスタンス (VM) 同士の接続を例にして紹介しますが、この方法は、プライベート・サブネット内のOracle Base DB或いはADBへの接続にも適用します。

制限事項

  • 接続元と接続先のVCNのCIDRブログは、重複しないこと。
  • リージョンごと、最大5個のDRGが作れるというサービス制限がある(ソフトリミット)。
  • テナンシ間のリモート・ピアリング接続をするのに、レガシーDRGではなく、DRGv2(アップグレードされたDRG)は必要である。

1. 事前準備

1-1. IAMリソースの作成

テナンシリソース・タイプ名前コメント
ISVコンパートメントCompt-ISV接続元(Requestor)
ISVユーザーISV-AdminISV様の管理者
ISVグループISV-Admin-GrpISV様の管理者を入れる
User-AコンパートメントCompt-User-A接続先(Acceptor)

1-2. ポリシーの作成

テナンシポリシー名コメント
ISVPolicy-RPC-ISVrootコンパートメントの下に作成
User-APolicy-RPC-User-Arootコンパートメントの下に作成

ポリシーの詳細
設定箇所:接続元(Requestor)のテナンシ (ISV様より作成)
ポリシー名:Policy-RPC-ISV
ステートメント:

Define tenancy User-A as <OCID_of_Tenancy_User-A>
Allow group ISV-Admin-Grp to manage remote-peering-from in compartment Compt-ISV
Endorse group ISV-Admin-Grp to manage remote-peering-to in tenancy User-A

設定箇所:接続先(Acceptor)のテナンシ (エンドユーザ様より作成)
ポリシー名:Policy-RPC-User-A

Define tenancy ISV as <OCID_of_Tenancy_ISV>
Define group ISV-Admin-Grp as <OCID_of_ISV-Admin-Grp>
Admit group ISV-Admin-Grp of tenancy ISV to manage remote-peering-to in compartment Compt-User-A

1-3. ネットワーキング・リソースの作成

テナンシリージョンリソース・タイプ名前コメント
ISVTokyoVCNVCN-ISV10.0.0.0/16
Private SubnetPrivate Subnet ISV10.0.0.0/24
User-AOsakaVCNVCN-User-A192.168.0.0/16
Private SubnetPrivate Subnet User-A192.168.0.0/24

2. テナンシ間、リージョン間のプライベート接続

2-1. DRGの作成

ISVとエンドユーザのテナンシに、それぞれのDRGを作成します。
ISV様用:DRG-ISV (次のように)
エンドユーザ様用:DRG-User-A (画面を省略)
Create DRG

2-2. DRGアタッチメントの作成

ISV様とエンドユーザ様のVCNに、それぞれのDRGアタッチメントを作成します。

画面入口:ネットワーキング → 仮想クラウド・ネットワーク → 仮想クラウド・ネットワークの詳細 → 「DRGアタッチメントの作成」をクリック

DRGの場所は、デフォルトの「現在のテナンシ」を指定してください。
DRG location (Current tenancy)
エンドユーザ側も上記と同様に作成しますので、画面を省略します。

2-3. RPC(リモート・ピアリング接続)の作成

ISVとエンドユーザのテナンシに、それぞれのRPCを作成します。
ISV様用:RPC-ISV (次のように)
エンドユーザ様用:RPC-User-A (画面を省略)
Create RPC

作成後の状態:この時点のピア・ステータスは、「新規(ピアリングなし)」となります。
Peering status is new (not peered)

2-4. RPC接続の確立

次のように、エンドユーザのテナンシのRPC詳細画面で、OCIDをコピーします。
Copy RPC OCID

RPC OCIDの例:ocid1.remotepeeringconnection.oc1.ap-osaka-1.aaaa<中略>hahq
DRG OCID、或いは DRGアタッチメントのOCIDと間違いないようにご注意を。

ISVテナンシのRPC詳細画面で、「接続の確立」をクリックし、相手のリージョン(ap-osaka-1)とコピーしたRPC OCIDを入力してから、接続の確立を開始します。
Establish connection

ピア・ステータスは、Pending(保留中)から、Peered(ピアリング済)まで、約2~3分がかかります。
ISV側の確認結果:
Peered status is peered (ISV side)

エンドユーザ側の確認結果:
Peered status is peered (End-User side)

2-5. ルート表とセキュリティ・リスト(or NSG)の設定

テナンシタイプ項目コメント
ISVルート表ルールTarget: DRG-ISV
宛先: 192.168.0.0/24
ISV側のサブネットに紐づけ
SL/NSGIngressソース側のIP, TCP 22ISV側のサブネット或いはVMに紐づけ
Egress0.0.0.0/0、或いは
192.168.0.0/24 TCP 22
ルート表ルールTarget: DRG-User-A
宛先: 10.0.0.0/24
エンドユーザ側のサブネットに紐づけ
SL/NSGIngress10.0.0.0/24 TCP 22エンドユーザ側のサブネット或いはVMに紐づけ

2-6. 相手のVMにSSH接続してみる

コマンド: ssh <VM_Private_IP> (事前にプライベート・キーを用意しておく)

[opc@linux-isv ~]$ pwd
/home/opc
[opc@linux-isv ~]$ ll .ssh/id_rsa
-r--------. 1 opc opc 1819 Jun 16 06:59 .ssh/id_rsa
[opc@linux-isv ~]$ ssh 192.168.0.124
The authenticity of host '192.168.0.124 (192.168.0.124)' can't be established.
ECDSA key fingerprint is SHA256:<中略>.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.0.124' (ECDSA) to the list of known hosts.
Activate the web console with: systemctl enable --now cockpit.socket

[opc@linux-user-a ~]$

以上

オフィシャル・リンク
DRGピアリングに関連するIAMポリシー
Configure cross-region private connectivity between tenancies (英語)
How to connect in OCI between Tenancies and across Regions (英語)

タイトルとURLをコピーしました