本ブログは、オラクル・クラウドの個人ブログの1つです。
初めに
ISV様(SaaS提供者)と各エンドユーザ様のOCI環境は、コンパートメント単位ではなく、テナンシで分けるケースがよくあります。この場合、ISV様の管理者から、インターネットを経由せず、エンドユーザ様のプライベート・インスタンスにアクセスしたいのは、一般的な要件です。
やり方は、いろいろありますので、4回連載で接続方法を紹介したいと思います。
- Part 1 (本文): LPG(ローカル・ピアリング・ゲートウェイ)の利用
- Part 2: DRG(動的ルーティング・ゲートウェイ)アタッチメントの利用
- Part 3: DRG RPC(リモート・ピアリング接続)でリージョン間の接続
- Part 4: 各方法の差異比較
検証環境
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側
ネットワーキング → 仮想クラウド・ネットワーク → 仮想クラウド・ネットワークの詳細 → ローカル・ピアリング・ゲートウェイ
エンドユーザ側
画面の入口は、上記と同様です。LPGの名前(LPG-User-A
)を入力して作成します。作成後、OCIDをコピーします。
2-2. LPG間ピアリング接続の確立
ISV側で実施します。作成したLPG-ISV
を指定し、メニューから「ピアリング接続の確立」」をクリックします。
コピーしたLPG-User-A
のOCIDを入力し、接続を立てます。
接続を立てると、以下の状態となります。(Cross-Tenancy:Yes)
※、上記「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 (英語)