1. Direct connection
Direct Connectはユーザーとパスワードを利用してダイレクトに 接続する方法です。
2. SSH Tunnel
SSH Tunnelは、Bastionホスト(インターネットのような外部のネットワークから、プライベートネットワークへのアクセスを提供するためのサーバー)を介してXplentyをデータベースまたはファイルサーバーに接続することができます。この接続タイプは、データウェアハウスにインバウンドファイアウォールルールを追加できない場合や、データウェアハウスのIPアドレスがイントラネットワーク上にある場合(外部ネットワークアクセスがない場合)に使用されます。
1.Databaseコネクターの事前準備
SSH Tunnelを介してデータベースやファイルサーバに接続するためには、先にXplenty側からSSHクライアントとして顧客側にSSH接続(SSH Tunnel)を行います。このSSH接続が確立された後にデータベースやファイルサーバへの接続が行われます。 XplentyからSSH Tunnelを確立する時に必要なのがSSHキーペアであり、Xplentyが提供する公開キーを顧客側のSSHサーバーに置き、後にXplentyから秘密キーでSSH接続を確立されます。 下記の図のようにXplentyのコネクター作成画面でAccess TypeをSSH tunnel connectionを選択してから諸情報を入力します。

2.Tunnel Host(Bastionホスト)側の準備
次にBastionホスト側で以下を実行します。-
xplentyというグループを作成します
sudo groupadd xplenty -
xplentyというユーザーとHomeディレクトリを作成します
sudo useradd -m -g xplenty xplenty -
ユーザーをxplentyにスイッチします
sudo su - xplenty -
.sshディレクトリを作成し、パーミッションを変更します
mkdir ~/.ssh && chmod 700 ~/.ssh -
authorization_keysファイルを作成し、パーミッションを変更します。
touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys - テキストエディタ等を使用して、先ほどコピーしておいた公開鍵をauthorized_keysに追加します
- XplentyのIPアドレスから用意したサーバーホストおよびポートにアクセスを許可する設定を行います。
3. 接続情報を入力し、「Save Connection」をクリックする
上記が完了したら、Xplentyのコネクション設定画面で「Test connection」をクリックしてSSH Tunnelを介して正常にデータベースやFTPサーバーへ接続が確立されるかとテストします。接続のテストが成功したら「Save connection」をクリックします。
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エンドポイントを提供します。
- FirewallでSSH接続がインバウンドのみの許可になっている
- 顧客側のサーバー接続情報をセキュリティ・ポリシによって露出したくない
1. 顧客側でSSHクライアントを準備
こちらの手順を参考にEC2側(autosshを動かすサーバー)でSSHキーペア(PrivateキーとPublicキー)を生成し、Publicキーのファイルをダウンロードしておきます。2. PublicキーをXplentyに保存
Xplenty側の画面でSSH Keyメニューに先ほどのPublicキーの内容をコピペで登録します。


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

4. Xplenty側のSSHエンドポイントを取得
以下の赤い四角にXplenty側のエンドポイント(サーバー情報)が表示されるので、それをメモする。
5. データベースやファイルサーバーの情報を設定
EC2サーバー側で手順に沿ってSSH Server(autossh)をインストール 手順はこちらの「Reverse SSH Tunnel」の手順2を参照ください。- SSH疎通テスト時の注意:上記リンクにある手順6番のコマンドはそれぞれ以下の表を参考に設定ください。

| 設定箇所 | 説明 |
|---|---|
| connection port | 上記手順4でメモしたポート番号をセットください。(太字の部分の番号) |
| my server | RDSもしくはFirewall越しにある(MySQLなど)サーバーのホスト名を指定ください。 |
| local port | RDSもしくはFirewall越しにある(MySQLなど)サーバーのポート番号を指定ください |
| Xplenty server | コネクション作成時にXplentyの画面に表示されるホスト名を設定します。例)手順4の画面を例にした場合、virginia-tunnel.xplenty.comを設定します。 |
| private key file | secret keyのパス 例)~/.ssh/id_rsa |
6.Xplentyのコネクター画面上で疎通テストと保存
ここまで手順が完了したら、Xplentyの接続画面にて「Test connection」ボタンをクリックしてテスト接続が通る事を確認します。 問題なければ「Save connection」ボタンにて保存します。