LoginSignup
0
0

More than 1 year has passed since last update.

XplentyからMySQL(RDSやFirewall越しのDB)に接続する際の手順

Last updated at Posted at 2020-07-13

今回の記事では、MySQLなどのRDSのサービスに安全に接続するための仕組みについて解説します。
Xplentyでは、データベースへアクセスする方法として以下の2種類の方法が用意されています。

1. Direct connection
2. SSH Tunnel 2020年10月新規追加
3. Reverse SSH Tunnel

1. Direct connection

Direct Connectはユーザーとパスワードを利用してダイレクトに 接続する方法です。
image.png
SSLのオプションについて:
Xplentyから接続する際にSSLの証明書を登録せずに、なぜRDSに接続にSSLでアクセスできてしまうのでしょうか?その理由は以下のAWSのサイトにあるようにルート証明書というのをXplenty側でもあらかじめて保有しているためです。したがって接続先がRDSの場合は、チェックをつけるだけで簡単にSSLを利用してRDSに接続することが可能です。

2. SSH Tunnel

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

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

ユニークな公開鍵はXplentyのコネクション設定画面でコネクションごとに生成されます。この公開鍵はSSHトンネルセッションの認証に使用されます。
CopyボタンをクリックしてSSH公開鍵をコピーします。
image.png

次にBastionホスト側で以下を実行します。
1. xplentyというグループを作成します。
sudo groupadd xplenty

  1. xplentyというユーザーとHomeディレクトリを作成します。
    sudo useradd -m -g xplenty xplenty

  2. ユーザーをxplentyにスイッチします
    sudo su - xplenty

  3. .sshディレクトリを作成し、パーミッションを変更します。
    mkdir ~/.ssh && chmod 700 ~/.ssh

  4. authorization_keysファイルを作成し、パーミッションを変更します。
    touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys

  5. テキストエディタ等を使用して、アカウントの公開鍵をauthorized_keysに追加します。

  6. XplentyのIPアドレスから用意したサーバーホストおよびポートにアクセスを許可する設定を行います。

上記が完了したら、Xplentyのコネクション設定画面で「Test connection」をクリックし、接続が成功したら「Create connection」をクリックします。

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

デフォルトでは、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. 接続情報を入力し、「Create Connection」をクリックする

image.png

3. Reverse SSH Tunnel(Unixの場合)

注)Windowsの場合はこちら
image.png

1. こちらの手順を参考にEC2側(autosshを動かすサーバー)でPrivateとPublic keyを生成し、publicキーのファイルをダウンロードする

2. Xplenty側の画面でSSH KeyメニューでPublic Keyを保存する

image.png
image.png
注意:公開鍵をエディタからコピペした場合、改行が入って、「Public key is invalid. It must begin with ...」エラーが表示される場合があるので、ご注意ください。
image.png

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

image.png

4. 以下の青い部分にXplenty側のサーバー情報が表示されるので、以下のxxxxxのポート番号部分をメモする。

**virginia-tunnel.xplenty.com:xxxxx*
image.png

5. EC2サーバー側で手順に沿ってSSH Server(autossh)をインストール

手順はこちらの「Reverse SSH Tunnel」の手順2を参照ください。

SSH疎通テスト時の注意:上記リンクにある手順6番のコマンドはそれぞれ以下の表を参考に設定ください。
image.png

設定箇所 説明
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の接続画面にて「Test connection」ボタンをクリックし、テスト接続できることを確認します。

image.png

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