はじめに
突然ですが、EC2インスタンスにアクセスするとき皆様はどのような方法でアクセスしていますか。
私は今までキーペアを使ってローカルPCからSSH接続をする方法が当たり前だと思っていましたが、AWSマネジメントコンソールから直接アクセスできることを知って驚きました!
AWS Systems Managerの機能の1つであるSession Managerを使うと、キーペアを使うSSH接続よりもセキュアな接続を実現できます。具体的には次のようなメリットがあります。
- キーペアを使わないので、キーペアを紛失した際の情報漏洩を防ぐことができる
- インバウンドルールでSSHポート(ポート番号22)を開ける必要がなくなる
- プライベートサブネットにあるEC2インスタンスにも踏み台サーバーなしでアクセスができる
※これにはNat GatewayもしくはVPCエンドポイントが必要となる(詳細は後述)
本記事では、プライベートサブネットのEC2インスタンスにSession Managerを用いてマネジメントコンソールから接続するためのネットワーク経路についてご紹介します。
前提
今回はSession ManagerによるEC2接続の実装手順の中でも、ネットワーク経路にフォーカスしているので以下の手順は省略いたします。
- EC2インスタンスの起動
- アクセスするユーザーが使用するIAMユーザーの作成
- EC2に必要なIAMロールのアタッチ
接続経路の種類
今回はSession ManegerによるEC2接続 (以下ssm接続と記載)の実現に必要なネットワーク経路を2種類説明いたします。
ssm接続をするためには、プライベートサブネットからVPC外に出られる経路が必要になります。
ssm接続に必要な経路を作る方法は、NatGatewayを経由する方法と、Session manager用のVPCエンドポイントを経由する方法があります。
どちらを使うべきかはコストやセキュリティ要件を比較して、環境ごとに決めるのが良いかと思います。
1. NatGatewayを使用した経路
1つ目はNatGateway経由でssm接続をする方法です。
NatGatewayはプライベートIPアドレスをグローバルIPアドレスに変換する役割を持っています。こちらの構成では以下のメリットがあります。
- NatGateway1つでssm接続に必要な経路が作成される
- EC2をインターネットに出すことができる
2. ssm接続用のVPCエンドポイントを使用した経路
2つ目はssmエンドポイント経由でssm接続をする方法です。
この方法では、EC2インスタンスがインターネットに出ないのでとてもセキュアなssm接続を実現することができます。メリットは以下の通りです。
おわりに
必要な条件は満たしているはずなのに疎通ができない…と思ったときは、ネットワーク経路を視覚的に見てみると原因がわかるかもしれません。私自身ssm接続をはじめ、図に起こした事で原因を発見したことが何度もあるので皆様も是非、図で状況を整理してみてください。
今回は初投稿ということもあり、ssm接続に必要なネットワーク経路に関する説明にとどまりましたが、今後は具体的な構築方法なども記載していきたいと思います。