0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

踏み台サーバを使ってプライベートのOracle Base DB と ADBインスタンスに接続する方法

Last updated at Posted at 2025-02-04

本ブログは、オラクル・クラウドの個人ブログの1つです。

初めに

オンプレミス環境からOCI(Oracle Cloud Infrastructure)プライベートサブネット内のOracle Base DB / Autonomous DBインスタンスに接続する方法はいくつかあります。その中でも、踏み台サーバを経由する方法は最も一般的です。接続方法としては、主に以下の2つのパターンがあります。

方法-1. 二段階のログイン

  • 踏み台サーバはLinuxの場合:
    image.png
  • 踏み台サーバはWindowsの場合:
    image.png

メリット:
✅ 非常にシンプル。
✅ 踏み台サーバーへのログインが必要な作業に適している。

デメリット:

  • 2回のログインが必要で、手間がかかる。
  • 3389番ポートなどをパブリックに公開する必要がある。
  • 接続先の秘密鍵(或いはADBのウォレット)を踏み台サーバに配置する必要がある。

NSGの関連設定

紐づいているインスタンス 方向 ソース・宛先CIDR プロトコル 宛先ポート 説明
踏み台
(Linux)
Ingress ソース: Client Public IP TCP 22 接続端末から踏み台へのSSHを許可
踏み台
(Linux)
Egress 宛先: 接続先のPrivate IP TCP 22
1521
443
1522
踏み台から接続先へのアクセスを許可
踏み台
(Windows)
Ingress ソース: Client Public IP TCP 3389 踏み台から接続先へのアクセスを許可
踏み台
(Windows)
Egress 宛先: 接続先のPrivate IP TCP 22
1521
443
1522
踏み台から接続先へのアクセスを許可
ターゲット(Base DB) Ingress ソース: 踏み台のPrivate IP TCP 22
1521
踏み台からのアクセス(SSH,SQL)を許可
ターゲット
(ADB)
Ingress ソース: 踏み台のPrivate IP TCP 443
1522
踏み台からADBへのアクセスを許可
  • Base DBと異なり、ADBインスタンスにSSHログインはできませんので、ご注意ください。
  • ADBにはAPEXが実装されています。APEXを利用する場合は、443番ポートを許可する必要があります。SQLのみを利用する場合は、1522番ポートを許可するだけで問題ありません。

方法-2. SSHポート転送

踏み台サーバは Linux の場合、SSHポート転送の手段もあります。

image.png

メリット:
✅ 二段階のログインが不要になり、作業の手間を軽減できる。
✅ 公開する必要があるポートは22番のみで済むため、よりセキュアな接続が可能
✅ 接続先がLinuxの場合、秘密鍵を踏み台サーバに配置する必要がない。
✅ 踏み台サーバをLinuxで構築すれば、Windowsサーバを使用するよりコストを抑えられる。

a) Base DBにSSHで接続する場合

  • Step-1) 踏み台サーバとBase DBの秘密鍵をローカル端末に保存する。
    ※、Base DBの秘密鍵を踏み台サーバに保存しないことを推奨する。
  • Step-2) 踏み台サーバにSSHログインする。
ssh -L 22:<basedb_private_ip>:22 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key>
  • Step-3) 上記のステップが成功したら、別のセッションを開いて、次のコマンドでターゲットに接続する。
ssh localhost -l opc -i C:\Users\<username>\.ssh\<target_private_key>

b) Base DBにSQL Plusで接続する場合

  • Step-1) 踏み台サーバの秘密鍵をローカル端末に保存する。
  • Step-2) 踏み台サーバにSSHログインする。
ssh -L 1521:<basedb_private_ip>:1521 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key>
  • Step-3) 上記のステップが成功したら、別のセッションを開いて、次のコマンドでターゲットDBに接続する。
sqlplus <username>/<password>@localhost:1521/<db_service_name>

※、ローカルポート番号22や1521が既に使われている場合、次のように8222や11521の番号に置き換えてください。

  • step-2) ssh -L 11521:<basedb_private_ip>:1521 opc@<bastion_public_ip> -i C:\Users\<username>\.ssh\<bastion_private_key>
  • step-3) sqlplus <username>/<password>@localhost:11521/<db_service_name>

※、ADBにSQL Plusで接続する場合、上記の手順と同様ですが、ポート番号のところを1522に変更してください。

ウォレットを利用してADBに接続するのは一般的な方法です。アクセス・タイプがパブリック(VCNに所属しない)の場合、ウォレットは必須です。一方、ADBがVCN内に配置されている場合(今回のケース)は、ウォレットを使用せずに接続することも可能です。

NSGの関連設定

紐づいているインスタンス 方向 ソース・宛先CIDR プロトコル 宛先ポート 用途
踏み台 Ingress ソース: Client Public IP TCP 22 接続端末から踏み台へのSSHを許可
踏み台 Egress 宛先: Private Subnet CIDR TCP 22
1521
443
1522
踏み台から接続先へのアクセスを許可
ターゲット
(Base DB)
Ingress ソース: 踏み台のPrivate IP TCP 22
1521
踏み台からBase DBへのアクセスを許可
ターゲット(ADB) Ingress ソース: 踏み台のPrivate IP TCP 1522 踏み台からADBへのアクセスを許可
ターゲット(ADB) Ingress ソース: 踏み台のPrivate IP TCP 443 踏み台からAPEXへのアクセスを許可(オプション)

踏み台サーバを経由する方法以外にも、さまざまな手段があります(OCI Bastionサービス、ロード・バランサ、Cloud Shellなど)。詳細については、次の記事をご参照ください。
プライベート・サブネット内のOracle Base DB と ADBインスタンスに接続する方法のまとめ

以上


関連記事
踏み台サーバを使ってOCIプライベートComputeインスタンスに接続する方法

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?