オフィス狛 技術部のHammarです。
最近はAWSで環境を作って開発する機会が多いですが、ここでセキュリティ的な部分や運用的な観点としてよく踏み台サーバー経由で目的のサーバーに接続するということがあると思います。
今回はその「踏み台サーバー(EC2)経由でSQLServer(RDS)に接続する」という目的で、接続したSQLServerをSQL Server Management Studio (SSMS) で操作したいと思います。
■利用環境
Windows(ローカルPC)AWS ES2(踏み台)
AWS RDS(SQL Server)
■利用ツール
SQL Server Management Studioteraterm
今回の目的を達成するには、「SSHポートフォワーディング」というテクニックを利用します。
ポートフォワーディングとは、SSHによって確立した通信経路を利用して、クライアントのポートを、クライアントが直接アクセスできないサーバのポートに転送してくれる仕組みを指します。
これを利用して今回の手順は簡単に書くと下記のようになります。
①踏み台サーバーにSSH接続
②踏み台サーバーからSQL Serverにポート転送(ポートフォワーディング)
③ポートフォワーディングした状態でSQLServerにログインしDB操作
②踏み台サーバーからSQL Serverにポート転送(ポートフォワーディング)
③ポートフォワーディングした状態でSQLServerにログインしDB操作
では上記手順を踏まえて、具体的な手順を書いていきます。
1.teratermでポートフォワード設定する
よくSSH接続につかわれるツールで有名なteratermには、デフォルトでポートフォワード設定機能がついていて、これを利用します。①teratermを起動し、メニューバーの「接続」→「SSH転送」を選択
②ポート転送画面で「追加」ボタンを押下
③ポート転送を行う向きの選択で「ローカルのポート」にチェックを入れ下記のように設定します
ローカルのポート:11433(何でもよい)
リモート側ホスト:接続するRDSのエンドポイント
ポート:1143
リモート側ホスト:接続するRDSのエンドポイント
ポート:1143
④OKを選択する
2.teratermで踏み台にSSH接続する
次に踏み台にSSH接続するのですが、このとき1で設定したポートフォワード機能が有効になり、踏み台に接続したと同時に目的のサーバーにも接続されることになります。(トンネルを掘った状態にするともいいます)①teratermメニューバーの「ファイル」→「新しい接続」で下記のように設定します
ホスト:EC2のエンドポイント
TCPポート:22
サービス:SSHにチェック
TCPポート:22
サービス:SSHにチェック
②SSH認証画面でEC2へ接続するための認証情報を設定する
※基本ユーザー名と鍵設定で行けると思います
③OKを選択してSSH接続する
3.SSMSでログインする
1、2まででポートフォワーディングは完了しているので、この接続をつなげたままであとはツール(今回はSSMS)で直接SQLServerにつなげるだけです。接続設定は下記のように設定します。
サーバー名:127.0.0.1,11433
認証:SQL Server認証
ログイン:ルート権限ユーザー名
パスワード:設定したパスワード
認証:SQL Server認証
ログイン:ルート権限ユーザー名
パスワード:設定したパスワード
サーバー名は[127.0.0.1]のローカルホストを指定し、カンマでポート指定できますので、先ほど1で設定したローカルのポート(11433)をここに設定することで、 ローカルから踏み台サーバー経由、ポートフォワーディングでSQL Server接続が可能になります。
あとはSSMSで操作が可能なので、ツール内でデータベース作ったりテーブル作ったりが簡単にできます。
今回のポートフォワーディングを利用することで、もちろんSQL Server以外でも接続可能ですし、いろいろ応用できると思いますので、ぜひ参考にしてみてください。
AWS , EC2 , RDS , SQL Server , SSH , windows
0 件のコメント:
コメントを投稿