A5:SQL Mk-2

開発のこと、日々のこと

A5:SQL Mk-2 から AWS ssm session manager を経由してDB接続する

| 0件のコメント

AWS を使用してシステム開発するとき、bastion サーバーを立てて、そこから RDS に接続するのではなく、セキュリティ強化を目的として、AWS ssm session manager を使って接続するように構成することがあります。

A5:SQL Mk-2 から AWS ssm session manager を経由してDB接続する には、多段ssh と同様に、「ssh.exe コマンド(OpenSSH, Windows 10 1803 以降に付属)」を使います。

以下のような接続形態を想定します。

 [A5:SQL Mk-2] ── [AWS ssm session manager] ── [EC2 サーバー] ── [RDS]

まず、AWS ssm session manager の設定を一通り完了させます。(ステップ 8 まで)

追加で、C:\Users\<ユーザー名>\.ssh\config に以下の内容を記載します。

Host your_system
    HostName i-1234567890ABCDEF1
    User ec2_user
    ProxyCommand C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters portNumber=%p --profile aws_profile"
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes

AWSの設定例(ステップ 8の設定)と同様ですが、ProxyCommand の最後に --profile aws_profile としてプロファイル名を指定していることに注意してください。環境変数に AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY を設定していない場合や、複数のAWS環境を使い分けている場合はプロファイルのオプション指定は必須です。

他の設定項目も適宜書き換えてください。HostName パラメータは EC2サーバーのインスタンスIDを指定します。秘密鍵ファイルの設定などもここで書いておくと便利です。Host your_system の部分はEC2のインスタンスIDと一致させる必要はなく、わかりやすい設定名にしてください。

また、ssh.exe your_system でsshセッションが開始できることも確認してください。

A5:SQL Mk-2のデータベース登録の画面では、サーバー名はRDSのエンドポイント名を登録します。

SSH2トンネルのタブでは、接続方式に「ssh.exe コマンド(Open SSH, Windows 10 1803 以降に付属)」を指定し、SSH2ホスト名に .ssh\config に記載した接続先システムの名前を記載します。.ssh\config にユーザー名・秘密鍵ファイルが指定されていれば、ここでの入力は必要ありません。

これだけ入力して、「テスト接続」ボタンを押下すると、ssh.exe がコマンドプロンプトで起動され、SSHトンネルが作られてDBに接続できます。秘密鍵ファイルにパスフレーズが設定されている場合、このコマンドプロンプトで入力を行います。(ssh-agent を併用すると便利です。)

AWSの設定でワンタイムパスワードでの認証が設定されている場合もここで入力します。

コマンドプロンプトはパスフレーズを入力しない場合などは接続後にすぐに消えますが、パスフレーズを入力するなどすると、そのまま残り続けます。この場合は、A5:SQL Mk-2 でのDB接続を切断するまで閉じずに最小化したままにしておいてください。

コメントを残す

必須欄は * がついています