株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

OCI Bastion経由でOracle Base DBにssh接続する

Oracle ACE Proの渡部です。

本記事は、「OCI Bastionを経由したOracle BaseDB (Oracle Base Database Service) へのssh接続」を構成する手順の説明を通じて、OCI Bastionの構成要素とその役割について理解を深めることを狙うものです。

Oracle BaseDBとは

Oracle Base Database Service (略称 "BaseDB") の概要については、以下の記事をご覧ください。

OCI Oracle BaseDBとは何か / Oracle Base Database Service

Oracle BaseDBの主なメリットとしては以下が挙げられます。

  • オンプレOracle同等の柔軟性: DB/OS管理権限の解放 など
  • 自動化: バックアップ、パッチ適用 など
  • 高いセキュリティ: デフォルトで暗号化 など
  • 低コスト
  • Oracle Databaseとの親和性の高さ : 充実したOracle関連サービス、ライセンス
  • OCIの周辺サービスを安価に使用できる: Object Storage、File Storage Service(NFS) など

Oracle BaseDBとOCI Bastionの関係

通常、セキュリティ上の理由からOracle BaseDBはプライベートサブネットに作成します。 ただ、当然ですが、このような構成とするとインターネット経由でBaseDBに直接接続できなくなります。

OCI Bastionを使用すると、インターネット経由でBaseDBに直接接続できます。 なお、"Bastion"とは「要塞」という意味です。

また、補足ですが、インターネット経由でプライベートサブネット内のBaseDBに直接接続する方法には、OCI Bastion以外にもいくつか方法があります。

  • 踏み台サーバ経由
  • ネットワーク・ロード・バランサ(NLB)経由
  • など

前提と概念図

以下を前提とします。

  • 手元のWindows PCのOpenSSHクライアントから、インターネット経由でBaseDBへssh接続します。
  • 手元のWindows PCでは以下のツールを使用します。★
    • sshクライアントには、OpenSSHクライアントを使用します。
    • コマンドの実行環境にはWSL上のOracle Linuxを使用します。★
  • BaseDBインスタンスはプライベートサブネット内に存在し、プライベートIPアドレスは10.0.1.183、短いホスト名はhost10です。
  • BaseDBインスタンスのsshdは、TCPポート22でssh接続を受け付けます(デフォルトの構成)。
  • Bastionのssh公開鍵/秘密鍵には、BaseDBに指定したものと同じものを使用しています(簡単のため。通常は異なるものを使用します。)

概念図を示します。

構成手順

「OCI Bastionを経由したOracle BaseDB (Oracle Base Database Service) へのssh接続」を構成する手順を示します。

0) 初期状態

1) プライベートサブネットにBastion(要塞) を作成

OCIコンソールでの操作は以下のようになります。

  • 簡単のため、CIDRブロック許可リストを "0.0.0.0/0" (=すべてのIPアドレスからの接続を受け付ける)にしています。本来はIPアドレス範囲をもっと限定すべきです。

2) BaseDBのプライベートIPアドレスを確認し、Bastionセッションを作成

BaseDBのプライベートIPアドレスを確認してから、BaseDBへsshを中継するBastionセッションを作成します。

OCIコンソールでの操作は以下のようになります。

3) Bastionセッションからsshトンネル作成用sshコマンドのひな形を得る

2) で作成したBastionセッションから、sshトンネル作成用sshコマンドのひな形を得ます。

OCIコンソールでの操作は以下のようになります。

以下のような文字列が得られます。

ssh -i <privateKey> -N -L <localPort>:10.0.1.183:22 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.a...q@host.bastion.ap-tokyo-1.oci.oraclecloud.com
  • OCIDの箇所を略記しています。

4) 手元PCでsshトンネルを作成

手元PCでOpenSSHクライアントを実行して、OCI Bastionに対してローカルフォワードのsshトンネルを作成します。 このsshトンネルは、2) で作成したBastionセッションと連携して動作し、BaseDBへsshを中継する役割を担います。

ローカルフォワードのsshトンネルを作成するコマンド例を以下に示します。

SSH_PRIV_KEY=/path/to/ssh-key-2025-08-21.key
LOCAL_PORT=10022
ssh -i ${SSH_PRIV_KEY} -N -L ${LOCAL_PORT}:10.0.1.183:22 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.a...q@host.bastion.ap-tokyo-1.oci.oraclecloud.com
  • ssh秘密鍵には、Bastion作成時に指定したssh公開鍵に対応するものを指定する必要があります。
  • コマンドの一部をシェル変数でパラメータ化しています。
  • OCIDの箇所を略記しています。
  • プロンプトは戻りません。

5) sshトンネルのローカルポートをめがけてssh接続 → BaseDBへのssh接続が確立

4) で作成したsshトンネルのローカルポートをめがけてssh接続します。すると、3) で作成したsshトンネルと、 5) で作成したBastionセッション がssh通信を中継するため、BaseDBへのssh接続を確立できます。

4) で作成したsshトンネルのローカルポートをめがけてssh接続するためのコマンド例を以下に示します。

SSH_PRIV_KEY=/path/to/ssh-key-2025-08-21.key
LOCAL_PORT=10022
ssh -i ${SSH_PRIV_KEY} -p ${LOCAL_PORT} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no opc@localhost
  • ssh秘密鍵には、BaseDB作成時に指定したssh公開鍵に対応するものを指定する必要があります。
  • 接続先ホストがlocalhost、接続先ポートが10022である点に注意してください。sshトンネルのローカルポートをめがけてssh接続する必要があるためです。
  • 公開鍵関連のエラーを無視するため、オプション "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" を指定しています。
  • 上記コマンドは、4) とは別のターミナルで実行する必要があります(sshトンネルを作成するsshコマンドはプロンプトへ戻らないため)。

以下にコマンド実行例を示します。

$ SSH_PRIV_KEY=/path/to/ssh-key-2025-08-21.key
$ LOCAL_PORT=10022
$ ssh -i ${SSH_PRIV_KEY} -p ${LOCAL_PORT} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no opc@localhost
Warning: Permanently added '[localhost]:10022' (ED25519) to the list of known hosts.
Last login: Fri Sep 19 21:16:13 2025 from 10.0.1.19
[opc@host10 ~]$ uname -a
Linux host10 5.4.17-2136.326.6.el8uek.x86_64 #2 SMP Thu Nov 30 22:30:37 PST 2023 x86_64 x86_64 x86_64 GNU/Linux
[opc@host10 ~]$ ps -ef |grep smon
root     31511     1  0 13:47 ?        00:02:50 /u01/app/19.0.0.0/grid/bin/osysmond.bin
grid     44551     1  0 13:50 ?        00:00:00 asm_smon_+ASM1
opc      81388 81239  0 21:16 pts/0    00:00:00 grep --color=auto smon
oracle   90696     1  0 14:10 ?        00:00:00 ora_smon_dbasm
[opc@host10 ~]$

[宣伝] Oracle DBのOCI移行はコーソルへ!

Oracle DatabaseのOCI移行はコーソルへお任せ下さい。システムのクリティカルレベルや要件に応じた2つのサービスをご提供しています。

  • OCIシンプルDB移行: 定型化&自動化した移行方式による、スピーディーで安価な移行サービス
  • OCIプロフェッショナルDB移行: 大規模システムや厳しい移行要件に合わせた高品質且つきめ細かい移行サービス

コーソルはORACLE MASTER Platinum 累計取得者数No.1

コーソルからデータベース関連製品をご購入いただくと、ORACLE MASTER Platinum 単年取得者数7年連続No.1、2016年6月以降 累計保持者数No.1という指標に裏付けされた高い技術力により、安心してOracleを導入/利用いただけます。

ORACLE MASTER Platinumとは、2日間にわたる実技試験により認定されるOracle Database最高難度の資格です。 グローバルで有効な資格であり、海外では"Oracle Certified Master"と呼ばれます。

ORACLE MASTER Platinumとは何か / コーソルはPlatinum取得者数No.1!

多数のOracle関連書籍を執筆

Oracle DatabaseのDBAサービスを提供可能

Oracle Databaseについても製品販売、製品サポート、製品の導入を行います。また、リモート回線経由でスポット的なDBA実務を行うリモートDBAサービス、コンサルティングやベンダコントロールを含めたOracle Databaseプロフェッショナルサービスを時間制で提供する時間制コンサルサービスも提供しています。

データベース運用保守なら常駐しないリモートDBA

基幹系DB運用支援および製品サポートについては、3拠点体制による24時間365日対応が可能です。

コーソルは多数のデータベース関連製品を取り扱っています

コーソルは、Oracle Databaseをはじめとするデータベース製品に関する深い知識を活かし、多数のデータベース関連製品を取り扱っております。

  • オラクル製品全般 (Oracle Database, Oracle Cloud, Oracle GoldenGate, Oracle WebLogic Serverなど)
  • Dbvisit Standby
  • SharePlex for Oracle
  • CData Sync
  • Qlik Replicate
  • Solarwinds Database Performance Analyzer (DPA)
  • Toad for Oracle / Toad for SQL Server
  • MaxGuage
  • Spotlight for Oracle / Spotlight for SQL Server
  • SIOS LifeKeeper
  • Delphix
  • PISO
  • D'amo
  • Nutanix Database Service (NDB)

これらの製品について、販売・導入・運用を様々な形でご支援します。お困りの際はぜひ弊社にお声がけくださいませ。

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ