LoginSignup
0
0

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

Last updated at Posted at 2023-05-18

初めに
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ブログは、重複しないこと。
  • LPGを利用する場合、接続元と接続先のVCNは、同一のリージョン内にあること。
  • 一つのVCNに対し、最大10個のLPGが作れるというサービス制限がある(ソフトリミット)。

ステップ

1. 事前準備

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

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

1-2. ポリシーの作成

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

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

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

ポリシー名:Policy-LPG-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 local-peering-to in compartment Compt-User-A
Admit group ISV-Admin-Grp of tenancy ISV to associate local-peering-gateways in tenancy User-A with local-peering-gateways in compartment Compt-User-A

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. LPGの作成

ISV側とエンドユーザ側の両方のVCNに、LPGを作成します。

ISV側
ネットワーキング → 仮想クラウド・ネットワーク → 仮想クラウド・ネットワークの詳細 → ローカル・ピアリング・ゲートウェイ
image.png

LPGの名前 (LPG-ISV)を入力して作成します。

エンドユーザ側
画面の入口は、上記と同様です。LPGの名前(LPG-User-A)を入力して作成します。作成後、OCIDをコピーします。
image.png

2-2. LPG間ピアリング接続の確立

ISV側で実施します。作成したLPG-ISVを指定し、メニューから「ピアリング接続の確立」」をクリックします。
image.png

コピーしたLPG-User-AのOCIDを入力し、接続を立てます。

接続を立てると、以下の状態となります。(Cross-Tenancy:Yes)
image.png
※、上記「Route Table」の情報欄は空白のままでよいです。

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

テナンシ タイプ 項目 コメント
ISV ルート表 ルール ターゲット: LPG-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 ルート表 ルール ターゲット: LPG-User-A
宛先: 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
The authenticity of host '192.168.0.74 (192.168.0.74)' 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.74' (ECDSA) to the list of known hosts.
Activate the web console with: systemctl enable --now cockpit.socket

[opc@linux-user-a ~]$

サマリー
ここまで、LPG間のピアリングで、異なるテナンシのVMに接続できました。接続方法は簡単ですが、エンドユーザの数が増えてくると、LPGのサービス制限(10個)はボトルネックになります。この課題を解決するため、次回は、引き続き別の方法を紹介したいと思います。

以上です。


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


オフィシャル・リンク
ローカル・ピアリング・ゲートウェイを使用したローカルVCNピアリング
Inter-TENANCY VCN peering using LPGs (英語)
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