1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【OCI】Bastionを使ってプライベートサブネットに配置したADBのDatabase Actionsにアクセスしてみる

Posted at

はじめに

今回はOracle Cloud Infrastructure(OCI)のBastionサービスを使って
プライベートサブネットに配置したAutonomous Database(ADB)の
Database Actionsにアクセスする方法を紹介したいと思います。
※ちょっとした小ネタです。

通常プライベートサブネットのリソースにアクセスするには
同じVCN内のパブリックサブネットに踏み台サーバを立てる
必要があるかと思いますが、Bastionを使えばSSHセッションや
ポート転送を使って踏み台サーバなしでもクライアントPCから
SSH(22)、RDP(3389)でリモートアクセスすることが可能です。

■参考
https://oracle-japan.github.io/ocitutorials/intermediates/bastion/

ただWebアクセスはどうなのか?
という疑問があるかと思います。

ADBにはDatabase ActionsというWebコンソール機能でSQLの実行や
データ変換、データロード、Machine Learning等の便利な機能が
ブラウザで使えるため、わざわざDB接続しないでも事足りるかと思います。

image.png

ですが、この機能はADBを「すべての場所からのセキュア・アクセスを許可」
という公開の状態にした時にしか外部(クライアントPCのブラウザ)からの
アクセスできないため、プライベートサブネット内のADBに対して
アクセスするには同じVCNのパブリックサブネットに踏み台サーバとして
Windows Serverを立てて、そこからブラウザでアクセスする形になります。

image.png

ただこのためだけにWindows Serverを立てるのもなんなので
Bastionを使ってアクセスしてみたらいいんじゃないかという話です。

■実行環境(クライアントPC)
OCI推奨のWebブラウザを使える環境ならなんでもOK
今回はWindows 11で実施

■構成
image.png

■事前準備
VCN、サブネット(プライベート、パブリック)、セキュリティリスト等を
作成しておき、ADBを作成しておきます。
BastionではSSHキーを使用しますのでこちらも準備します。

作成方法については以下を参考にしてください。

■VCNの作成
https://oracle-japan.github.io/ocitutorials/beginners/creating-vcn/

■ADBの作成
https://oracle-japan.github.io/ocitutorials/adb/adb101-provisioning/
※インスタンスはプライベートサブネットに立てます。

■SSHキーの作成
https://docs.oracle.com/ja/learn/generate_ssh_keys

◆目次
1.Bastionの作成
2.hostsファイルの変更
3.ADB Database Actionsの表示

1. Bastionの作成

左上メニュー[Ξ]からアイデンティティとセキュリティを選択し、
要塞(Bastion)を選択します。
image.png

そのまま要塞ボタンを選択します。
image.png

下記の項目を入力・選択して、要塞の作成ボタンを実行します。

VCN: ADBと同じVCNを選択
サブネット: 同VCN内のパブリックサブネットを選択
CIDR: 今回はどこからでもアクセスできるように0.0.0.0/0を入力
image.png

しばらくするとBastionの作成が完了するので名前を選択します。
image.png

続いてセッションの作成を実行します。
image.png

以下の項目を入力・選択して、セッションの作成を実行します。

セッション・タイプ: SSHポート転送セッション
セッション名: 任意
IPアドレス: ADBのプライベートエンドポイントIP(プライベートIP)
ポート: 443
SSHキーの追加: 事前に用意していたSSHキー
image.png

セッションの作成が完了したら右の詳細リンクからSSHコマンドの表示を選択します。
image.png

以下が画面に表示されるのでコマンドをコピーしておきます。
image.png

以上でBastionの設定は終了です。

2. hostsファイルの変更

プライベートエンドポイントに配置したADBのDatabase Actionsにアクセスするには
hostsファイルの変更が必要となります。

個々のPC環境にもよるかもしれませんが、
Windows 11の場合、hostsファイルは以下に保存されています。
C:\Windows\System32\drivers\etc\hosts

hostsファイルにはADBのアクセスURLのFQDNを登録します。

例としてアクセスURLが以下の場合、
https://*****.adb.ap-tokyo-1.oraclecloudapps.com/ords/sql-developer

hostsファイルは以下のようにします。

127.0.0.1    *****.adb.ap-tokyo-1.oraclecloudapps.com

以上でhostsファイルの修正は終了です。

3. ADB Database Actionsの表示

予め保存しておいたSSHコマンドを編集します

■変更箇所
privateKey: 保存されているSSHのフルパス
<localPort>: 443
※ローカル環境で443ポートを使用していないことが前提です。

■変更前サンプル

ssh -i <privateKey> -N -L <localPort>:10.0.21.75:443 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.amaaaaaa*****.oraclecloud.com

■変更後サンプル

ssh -i C:\Users\id_rsa -N -L 443:10.0.21.75:443 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.amaaaaaa*****.oraclecloud.com

後は修正したコマンドをコマンドプロンプトから実行します。
(パスフレーズが設定されている場合は入力)
image.png

コマンドを実行した(セッションを張った)状態でADB Database Actionsの
URLにアクセスすると普通にサインインのページが表示されます。
image.png

これで簡単にプライベートサブネットに置いてあるADBの管理が可能となります。

おわり

わざわざ踏み台サーバを立てなくてもBastionサービスがあれば
ローカル環境で簡単に作業することが可能です。

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?