0
0

More than 1 year has passed since last update.

YellowfinからAWSセッションマネージャーでEC2の踏み台サーバを経由してRDSのデータソースに接続する

Posted at

オンプレ環境にあるYellowfinから、AWSセッションマネージャーによる接続のみが許可されたAWS環境にあるRDSへ接続したい場合があるというお話をお聞きしたので、簡単に検証してみました。

image-ssm.png

SSM用ロールの作成

踏み台サーバに割り当てるためのIAMロールを作成します。

エンティティタイプはAWSのサービス、ユースケースはEC2を選択します。
ssm1.png

ポリシーからAmazonEC2RoleforSSMを選択します。
ssm2.png

ロール名やタグをつけてロールを作成します。
ssm3.png

アクセスキーの作成

セッションマネージャーを使用するユーザー用のアクセスキーを作成します。
ssm4.png

作成されたアクセスキーとシークレットアクセスキーをメモっておきます。
ssm5-mos.png

AWS CLIとSession Managerプラグインのインストール

以下を参考にして、それぞれインストールします。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html
https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html

AWS CLIの初期設定

ターミナルでaws configureを実行し、先ほどメモしたアクセスキーなどを設定します。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-quickstart.html

RDSの準備

今回は既存のRDS(PostgreSQL)を使用しました。
本記事中でエンドポイントはxxx.ap-northeast-1.rds.amazonaws.com、ポートは5432として記述します。

踏み台サーバの準備

踏み台サーバがすでに存在する場合は不要ですが、今回は新たに踏み台サーバ用のEC2インスタンスを起動しました。

上記で作成したIAMロールを指定します。
ssm6-mos.png

本記事中ではインスタンスID:i-999として記述します。

セッションマネージャーの接続

ターミナルで以下を実行してセッションマネージャーに接続します。

aws ssm start-session \
    --target i-999(踏み台サーバのインスタンスID) \
    --document-name AWS-StartPortForwardingSessionToRemoteHost \
    --parameters '{"host":["xxx.ap-northeast-1.rds.amazonaws.com(RDSのエンドポイント)"],"portNumber":["5432(RDSのポート)"], "localPortNumber":["15432(ローカル側のポート)"]}'

Yellowfinのデータソース設定

ローカルのYellowfinを起動し、データソースの設定を行います。
ssm8-mos.png

データベースホストはlocalhost、データベースポートはSSM接続で設定したローカル側のポート(上記の例では15432)を設定します。

SSM接続している状態で「テスト接続」をクリックすると、以下のようにローカルのYellowfinからRDSへ接続することができます。
ssm9-mos.png

参考にした情報

以下の記事を参考にさせていただきました。
https://qiita.com/comefigo/items/b705325d082018ab2348
https://dev.classmethod.jp/articles/aws-ssm-support-remote-host-port-forward/

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