LoginSignup
0
0

OCIテナンシを跨いでプライベート・インスタンスに接続する (Part 2 - DRGの利用)

Last updated at Posted at 2023-05-23

初めに
ISV様(SaaS提供者)と各エンドユーザ様のOCI環境は、コンパートメント単位ではなく、テナンシで分けるケースがよくあります。この場合、ISV様の管理者から、インターネットを経由せず、エンドユーザ様のプライベート・インスタンスにアクセスしたいのは、一般的な要件です。

やり方は、いろいろありますので、4回連載で接続方法を紹介したいと思います。

  • Part 1: LPG(ローカル・ピアリング・ゲートウェイ)の利用
  • Part 2 (本文): DRG(動的ルーティング・ゲートウェイ)アタッチメントの利用
  • Part 3: DRG RPC(リモート・ピアリング接続)でリージョン間の接続
  • Part 4: 各方法の差異比較

構成図
image.png

検証環境
Computeインスタンス (Linux 8 VM)

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

制限事項

  • 接続元と接続先のVCNのCIDRブログは、重複しないこと。
  • DRGアタッチメントを利用する場合、接続元と接続先のVCNは、同一のリージョン内にあること。
  • リージョンごと、最大5個のDRGが作れるというサービス制限がある(ソフトリミット)。
  • 1個のDRGを複数のVCNにアタッチするのに、レガシーDRGではなく、DRGv2(アップグレードされたDRG)は必要である。

※、テナンシ間、リージョン間で接続したい場合、DRGリモート・ピアリングの方法で実現できます。

接続方法

1. 事前準備

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

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

1-2. ポリシーの作成

テナンシ ポリシー名 コメント
ISV Policy-DRG-ISV rootコンパートメントの下に作成
User-A Policy-DRG-User-A rootコンパートメントの下に作成

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

define tenancy User-A as <OCID_of_Tenancy_User-A>
define group User-A-Admin-Grp as <OCID_of_User-A-Admin-Grp>
endorse group ISV-Admin-Grp to manage drg-attachment in tenancy User-A
admit group User-A-Admin-Grp of tenancy User-A to manage drg in tenancy 

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

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 drg-attachment in tenancy
endorse group User-A-Admin-Grp to manage drg in tenancy ISV

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

テナンシ リージョン リソース・タイプ 名前 コメント
ISV Tokyo VCN VCN-ISV 10.0.0.0/16
Private Subnet Private Subnet ISV 10.0.0.0/24
User-A Tokyo
(同リージョン)
VCN VCN-User-A 192.168.0.0/16
Private Subnet Private Subnet User-A 192.168.0.0/24

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

2-1. DRGの作成 (ISV側のみ)

ISV様のテナンシに、1個のDRGを作成します。エンドユーザ側には作成不要です。
image.png

作成後、DRGのOCIDをコピーします。
image.png

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

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

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

デフォルトの「現在のテナンシ」を指定します。一覧から作成したDRG-ISVを選択し、アタッチメントを作成します。
image.png
作成後の状態:
Cross-Tenancy: No
image.png

エンドユーザ側
次のようにDRGアタッチメントを作成します(画面の入口は上記と同じ)。
image.png
別のテナンシ」を指定します。コピーしたDRG-ISVのOCIDを入力し、アタッチメントを作成します。

作成後の状態:
Cross-Tenancy: Yes
image.png

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

テナンシ タイプ 項目 コメント
ISV ルート表 ルール ターゲット: DRG-ISV
宛先: 192.168.0.0/24
ISV側のサブネットに紐づけ
SL or NSG Ingress ソース側のIP, TCP 22 ISV側のサブネット或いはVMに紐づけ
Egress オール・ゼロ、或いは192.168.0.0/24 TCP 22
User-A ルート表 ルール ターゲット: DRG-ISV
宛先: 10.0.0.0/24
エンドユーザ側のサブネットに紐づけ
SL or NSG Ingress 10.0.0.0/24 TCP 22 エンドユーザ側のサブネット或いはVMに紐づけ

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

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

[opc@linux-isv ~]$ pwd
/home/opc
[opc@linux-isv ~]$ ll .ssh/id_rsa
-r--------. 1 opc opc 1819 May 18 07:25 .ssh/id_rsa
[opc@linux-isv ~]$ ssh 192.168.0.74
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Thu May 18 12:54:13 2023 from 10.0.0.230
[opc@linux-user-a ~]$

サマリー
ここまで、DRGアタッチメントで、異なるテナンシのVMに接続できましたが、同一リージョン内の接続という制限事項があります。この問題を解決するため、次回は、DRGリモート・ピアリングの方法を紹介したいと思います。

以上です。


関連記事
オラクル・クラウドの個人シリーズ・ブログ
OCIテナンシを跨いでプライベート・インスタンスに接続する (Part 1 - LPGの利用)
OCIテナンシを跨いでプライベート・インスタンスに接続する (Part 3 - リージョン間)
OCIテナンシを跨いでプライベート・インスタンスに接続する (Part 4 - 差異比較)


オフィシャル・リンク
DRGピアリングに関連するIAMポリシー
Cross-Tenancy VCN peering using DRG Attachment (英語)
Configure cross-region private connectivity between tenancies (英語)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0