メインコンテンツへスキップ
今回の記事では、MySQLなどのRDSのサービスに安全に接続するための仕組みについて解説します。 Xplentyでは、データベースへアクセスする方法として以下の2種類の方法が用意されています。 1. Direct connection 2. SSH Tunnel 3. Reverse SSH Tunnel

1. Direct connection

Direct Connectはユーザーとパスワードを利用してダイレクトに 接続する方法です。
onpremise-part01-jp image 1
Connect using SSLのオプションについて Xplentyから接続する際にSSLの証明書を登録せずに、なぜRDSに接続にSSLでアクセスできてしまうのでしょうか?その理由は以下のAWSのサイトにあるようにルート証明書というのをXplenty側でもあらかじめて保有しているためです。したがって接続先がRDSの場合は、チェックをつけるだけで簡単にSSLを利用してRDSに接続することが可能です。 Use custom SSL certificateのオプションについて Custom SSL certificateとは、データベースやファイルサーバーへ接続する際にデフォルトで提供される証明書ではなく、ユーザー自身(組織)が生成または取得した独自の証明書を使用してサーバーへの接続を暗号化する技術です。 Xplentyもこの機能を対応しているので、サーバーへの接続に該当技術を使いたい場合、このオプションをオンにしてからSSLファイルを登録後に接続してください。

2. SSH Tunnel

SSH Tunnelは、Bastionホスト(インターネットのような外部のネットワークから、プライベートネットワークへのアクセスを提供するためのサーバー)を介してXplentyをデータベースまたはファイルサーバーに接続することができます。この接続タイプは、データウェアハウスにインバウンドファイアウォールルールを追加できない場合や、データウェアハウスのIPアドレスがイントラネットワーク上にある場合(外部ネットワークアクセスがない場合)に使用されます。
onpremise-part01-jp image 2

1.Databaseコネクターの事前準備

SSH Tunnelを介してデータベースやファイルサーバに接続するためには、先にXplenty側からSSHクライアントとして顧客側にSSH接続(SSH Tunnel)を行います。このSSH接続が確立された後にデータベースやファイルサーバへの接続が行われます。 XplentyからSSH Tunnelを確立する時に必要なのがSSHキーペアであり、Xplentyが提供する公開キーを顧客側のSSHサーバーに置き、後にXplentyから秘密キーでSSH接続を確立されます。 下記の図のようにXplentyのコネクター作成画面でAccess TypeをSSH tunnel connectionを選択してから諸情報を入力します。
onpremise-part01-jp image 3
Create connectionをクリックしたら、XplentyのSSH公開キーが表示されます。
onpremise-part01-jp image 4
ユニークな公開鍵はXplentyのコネクション設定画面でコネクションごとに生成されます。この公開鍵はSSHトンネルセッションの認証に使用されます。 CopyボタンをクリックしてSSH公開鍵をコピーします。

2.Tunnel Host(Bastionホスト)側の準備

次にBastionホスト側で以下を実行します。
  1. xplentyというグループを作成します sudo groupadd xplenty
  2. xplentyというユーザーとHomeディレクトリを作成します sudo useradd -m -g xplenty xplenty
  3. ユーザーをxplentyにスイッチします sudo su - xplenty
  4. .sshディレクトリを作成し、パーミッションを変更します mkdir ~/.ssh && chmod 700 ~/.ssh
  5. authorization_keysファイルを作成し、パーミッションを変更します。 touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
  6. テキストエディタ等を使用して、先ほどコピーしておいた公開鍵をauthorized_keysに追加します
  7. XplentyのIPアドレスから用意したサーバーホストおよびポートにアクセスを許可する設定を行います。

3. 接続情報を入力し、「Save Connection」をクリックする

上記が完了したら、Xplentyのコネクション設定画面で「Test connection」をクリックしてSSH Tunnelを介して正常にデータベースやFTPサーバーへ接続が確立されるかとテストします。接続のテストが成功したら「Save connection」をクリックします。
onpremise-part01-jp image 5

4.トンネルセキュリティに関する注意事項

デフォルトでは、SSHアクセスを開くと、XplentyとSSHトンネルを終了しているデータベースホスト間のファイアウォールを巧みに回避することで、任意のポートの転送も可能になります。より良いセキュリティのために、ポート転送とトンネルサーバへのログインを制限してください。これを行うには、アカウントの公開鍵に対して ~/.ssh/authorized_keys エントリを適切に設定することで制御することができます。 例えば、以下のテキストを authorized_keys ファイルのSSH鍵の前に追加することができます。このテキストは、あなたの環境に合わせて、必ずカスタマイズしなければならないことに注意してください。 no-pty,no-X11-forwarding,permitopen="localhost:5432",permitopen="localhost:3306", command="/bin/echo Login Not Permitted"

3. Reverse SSH Tunnel(Unixの場合)

Reverse SSH Tunnelは、下記の図のようにSSH接続の確率がSSH Tunnelとは真反対です。顧客がSSHクライアントになってSSH接続を行い、それによって確立されたSSHトンネルを介してXplenty側が顧客のデータベースやファイルサーバーを利用します。 つまり、Xplenty側がSSHサーバーになって顧客側のSSH接続を待つ必要があるので、Xplenty側からSSHエンドポイントを提供します。
onpremise-part01-jp image 6
この方法は、下記の2つの理由でよく使われております。
  1. FirewallでSSH接続がインバウンドのみの許可になっている
  2. 顧客側のサーバー接続情報をセキュリティ・ポリシによって露出したくない
顧客のクライアントがLinux/Unixの場合、下記の手順で設定を行います。(Windowsの場合はこちらをご参考ください)

1. 顧客側でSSHクライアントを準備

こちらの手順を参考にEC2側(autosshを動かすサーバー)でSSHキーペア(PrivateキーとPublicキー)を生成し、Publicキーのファイルをダウンロードしておきます。

2. PublicキーをXplentyに保存

Xplenty側の画面でSSH Keyメニューに先ほどのPublicキーの内容をコピペで登録します。
onpremise-part01-jp image 7
onpremise-part01-jp image 8
注意:Publicキーをエディタからコピペする際に改行が入っていると、「Public key is invalid. It must begin with …」エラーが表示されるのでご注意ください。改行を削除すればエラーがなくなります。
onpremise-part01-jp image 9

3. 接続情報を入力し、「Create Connection」をクリック

onpremise-part01-jp image 10

4. Xplenty側のSSHエンドポイントを取得

以下の赤い四角にXplenty側のエンドポイント(サーバー情報)が表示されるので、それをメモする。
onpremise-part01-jp image 11

5. データベースやファイルサーバーの情報を設定

EC2サーバー側で手順に沿ってSSH Server(autossh)をインストール 手順はこちらの「Reverse SSH Tunnel」の手順2を参照ください。
  • SSH疎通テスト時の注意:上記リンクにある手順6番のコマンドはそれぞれ以下の表を参考に設定ください。
onpremise-part01-jp image 12
設定箇所説明
connection port上記手順4でメモしたポート番号をセットください。(太字の部分の番号)
my serverRDSもしくはFirewall越しにある(MySQLなど)サーバーのホスト名を指定ください。
local portRDSもしくはFirewall越しにある(MySQLなど)サーバーのポート番号を指定ください
Xplenty serverコネクション作成時にXplentyの画面に表示されるホスト名を設定します。例)手順4の画面を例にした場合、virginia-tunnel.xplenty.comを設定します。
private key filesecret keyのパス 例)~/.ssh/id_rsa

6.Xplentyのコネクター画面上で疎通テストと保存

ここまで手順が完了したら、Xplentyの接続画面にて「Test connection」ボタンをクリックしてテスト接続が通る事を確認します。 問題なければ「Save connection」ボタンにて保存します。
onpremise-part01-jp image 13
最終更新日 2026年7月13日