はじめに
Amazon EC2を利用している方の中には、EC2インスタンスへのSSH接続に苦労した経験がある方も多いと思います。
これまではキーペア(秘密鍵)を使って接続する方法が一般的でしたが、AWSが提供する「EC2 Instance Connect」を利用すれば、ブラウザやCLIから手軽にインスタンスに接続できます。
この記事では、自分自身の備忘録も兼ねて、EC2 Instance Connectの概要や使い方、メリットについてまとめていきます。
EC2 Instance Connectとは?
EC2 Instance Connectは、AWSが提供するEC2インスタンスへの安全なSSH接続手段です。
従来のSSH接続では秘密鍵(キーペア)が必要でしたが、Instance Connectでは一時的な公開鍵を利用してインスタンスに接続できます。
AWS Management ConsoleやAWS CLIを使って、簡単に一時的なSSHアクセスを実現できます。
私とEC2 Instance Connectの出会い
SSMセッションマネージャを触っていた際、秘密鍵(キーペア)を設定していないEC2インスタンスを放置してしまったことがありました。
そのインスタンスの使い道を考え、「EC2 キーペア不要」で検索したところ、「EC2 Instance Connect」というサービスを発見しました!
普段はTera Termなどのソフトを使ってSSH接続することが多いのですが、興味が湧き、実際に試してみることにしました。
詳しく知りたい方は、以下の記事も参考にしてみてください。
EC2 Instance Connectの特徴
今回はEC2 Instance Connect エンドポイントではなく、インターネット経由でアクセスする「EC2 Instance Connect」に焦点を当てて解説します。
-
キーペアの管理が不要
キーペアの紛失や漏洩リスクを軽減し、一時的な公開鍵で接続できます。 -
簡単なアクセス
AWS Management ConsoleやCLIを使って、インスタンスへ直接SSH接続が可能です。
EC2 Instance Connect と EC2 Instance Connect エンドポイントの違い
まず、EC2 Instance ConnectとEC2 Instance Connect エンドポイントの違いを以下の表にまとめました。
項目 | EC2 Instance Connect | EC2 Instance Connect エンドポイント |
---|---|---|
接続経路 | インターネット経由 | VPC内のプライベート経路 |
ネットワーク要件 | インターネット接続必須(ポート22) | VPC内のプライベートエンドポイントのみ |
セキュリティ | SSHポート(22)の開放が必要 | SSHポートをインターネットに開放不要 |
使用シナリオ | 一時的なSSHアクセスや鍵管理簡略化 | インターネットを経由せずにSSHアクセス |
IAM権限 | 必要(ec2-instance-connect とVPC権限) |
|
インスタンスの公開IPアドレス | 必須 | 不要 |
今後、EC2 Instance Connect エンドポイントについても技術検証を行い、別の記事でまとめる予定です!
事前準備
ここでは、過去の記事で紹介したTerraformのコードを使い、シンプルなEC2インスタンスを1台構築して検証します。
補足事項として、ここで構築しているEC2インスタンスはパブリックIPv4アドレスをもっており、秘密鍵(キーペア)は割り当ててない構成となっています。
実際にEC2 Instance Connectでインスタンスに接続してみた
AWS Management ConsoleからEC2ダッシュボードにアクセスします。
対象のインスタンスを選択し、「接続」をクリックします。
接続方法で「EC2 Instance Connect」を選び、「接続」ボタンを押すと、ブラウザ上でSSH接続が開始されます。
ブラウザ上でSSH接続が開始され、EC2 Instance Connect専用のブラウザターミナルが起動します。
まとめ
EC2 Instance Connectを使えば、従来のSSH接続よりも安全かつ手軽にAmazon EC2インスタンスへアクセスできます。
特に、複数ユーザーが存在する環境や鍵管理を避けたい場合にめちゃくちゃ便利です!
AWS Management ConsoleやCLIを活用して、ぜひEC2 Instance Connectを試してみてください!この記事が、技術的な支えになれば嬉しいです!
おまけ:EC2 Instance Connect と SSM セッションマネージャの違い
AWSのEC2 Instance ConnectとSSMセッションマネージャは、どちらもEC2インスタンスに接続する方法ですが、使い方や要件に違いがあります。
違いのまとめ
特徴 | EC2 Instance Connect | SSM セッションマネージャ |
---|---|---|
接続プロトコル | SSH(ポート22) | SSM API経由(ポート不要) |
事前要件 | SSH接続許可、IAM権限 | SSM Agentのインストール、IAM権限 |
鍵管理 | 一時的なSSH公開鍵 | 鍵管理不要 |
セキュリティ | ポート22の開放が必要 | ポート不要。セキュアで安全 |
ログ記録 | なし | SSMセッションログをCloudWatch等に記録可能 |
対応OS | Amazon Linux 2, Ubuntuなど | Windows, Linux両対応 |
用途 | 手軽なSSH接続 | セキュアな接続と高度な監査・管理 |
SSHポートを開放したくない場合や、監査ログが必要な場合はSSMセッションマネージャがおすすめで、短時間のSSH接続や、鍵管理の手間を軽減したい場合はEC2 Instance Connectが便利です!
関連記事
SSMセッションマネージャについて詳しく知りたい方は、以下の記事も参考にしてみてください。