自由気ままに書いちゃおう

好きなことをつらつらと・・・

AWS SessionManager(セッションマネージャ)でポートフォワーディング1

AWSのセッションマネージャでポートフォワーディングができるようになったので、検証してみたいと思います。
今回は設定に伴う、前提知識を整理し、次回に具体的な手順を記載致します。


↓AWS記事はこちら↓

AWS System Manager Sessions Manager を使用した新しい機能 – Port Forwarding | Amazon Web Services ブログ

 

■前置き


「踏み台サーバ」と記載していますが、踏み台サーバにも種類があります。

① 踏み台サーバに直接ログインして、踏み台サーバから目的のサーバにログイン(SSHやRDP)する方法
  ⇒ 踏み台サーバにログインし、踏み台サーバ上でリモートサーバを操作するケース

f:id:guri2o1667:20200501135014p:plain

② Clientと踏み台サーバ間でSSHセッションを確立した状態で、ポートフォワーディングを利用し、ローカルPCから直接接続しているように見せる方法  ⇒ ローカルPC上でリモートサーバを直接操作する(操作しているようにみえる)ケース
  ※リモートサーバからみると、接続元は踏み台サーバである点に注意!!!

f:id:guri2o1667:20200501135434p:plain




SessionManagerを利用した場合は、上記②が該当します。

■ポートフォワーディング(Port Frowarding)とは?


一般的によく使われるのは、SSHポートフォワーディングです。
文章だとイメージしづらいのと若干語弊がありますが、
「ローカルPCの任意のポートにアクセスした際に、事前に通信先を設定した踏み台サーバが通信を中継し、リモート(サーバ)の接続したいポート(SSHなら22番、RDPなら3389番)に接続することができます」

図だと以下のような感じです。

f:id:guri2o1667:20200501141111p:plain

■セッションマネージャを利用したポートフォワーディングについて


踏み台サーバの構成とセッションマネージャの構成を比較してみると以下のような感じです。

f:id:guri2o1667:20200501145756p:plain



大きく変わっているのは、
・Publicセグメントが不要
・踏み台サーバの代わりとして、SystemsManger(=セッションマネージャ)を使用
・セッションマネージャ用のVPC Endpointsが必要
・EndpointsとInstanceに専用のセキュリティグループが必要
といった感じです。

詳細な通信フローは次回に記載致します。
今は構成イメージのみ認識してもらえばと思います。

■セッションマネージャを利用したポートフォワーディングの前提事項について

【Client】
・Clientにはawscliが必要です。※なるべく実施時の最新版を推奨
・Clientにはsession-manager-pluginが必要です。 ※なるべく実施時の最新版を推奨

【Instance】
・接続するInstanceにはSSM Agentが必要です。※なるべく実施時の最新版を推奨
・接続するInstanceには事前にIAMロールの割り当てが必要です。

f:id:guri2o1667:20200501150523p:plain

 

■SSM Agentの対象OSについて


公式サイトに対象OSについて記載されております。
まずは、こちらを確認下さい。

サポートされるオペレーティングシステム - AWS Systems Manager



以上です。
次回は実際に手順を紹介します。

 

www.guri2o1667.work

 

www.guri2o1667.work

www.guri2o1667.work