セッションマネージャーを使って鍵ストレスの無いEC2アクセス!

2022.10.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

どうもGre212です。
みなさん、踏み台サーバーの管理やEC2インスタンスの鍵の管理など面倒に感じたことはありませんか?
その悩み、もしかしたらセッションマネージャーで解決できるかもしれません!

意外と便利なセッションマネージャー、設定も意外と簡単にできちゃいます。
今回は、セッションマネージャーのメリットと設定方法を紹介します。

セッションマネージャーとは

セッションマネージャーを使うと、ブラウザのAWSマネジメントコンソールから、
対象のEC2インスタンスに鍵認証の設定無しでアクセスすることができます。

つまり、鍵の管理から解放されます。やったー!

でも、設定とか使い方が大変だったりするんじゃないの?とお思いのあなた。
それも実は意外と簡単です。さっくり手順を紹介していきましょう。

セッションマネージャーを使うために必要な手順

  • EC2インスタンスにSSMエージェントをインストールする
  • EC2インスタンス用のIAMロールを作成する
  • EC2インスタンスに作成したIAMロールをアタッチする

なんとこれだけです。作業時間としてはおよそ15分程度で完了します。
では、具体的な手順の紹介です。

EC2インスタンスにSSMエージェントをインストール

手順として記述しましたが、実はAmazonLinux2にはSSMエージェントがプリインストールされています。 AmazonLinux2 を利用中の方はこの手順はスキップして問題ありません!

また、EC2で選択できるその他多くのOSにもSSMエージェントがプリインストールされています。
AmazonLinux2以外のOSを利用している方は、下記の記事より利用中のOSへインストールの必要があるかを確認、インストールしてください。
Session Manager を通して SSH 接続のアクセス許可を有効にして制御する - AWS Systems Manager

OSごとに細かく対応が異なるため、本記事では割愛します。

EC2インスタンスのIAMロールを作成する

このステップでは、必要なポリシーを付与したEC2インスタンス用のIAMロールを作成します。
※既にEC2インスタンスのIAMロールが存在する場合は、既存のIAMロールに下記のポリシーをアタッチしてください。

IAMロールの作成画面を開きます。

1つ目の画面では
信頼されたエンティティタイプは “AWSのサービス”
ユースケースは “EC2” を選択します。

次に、ポリシーを選択します。
AmazonSSMManagedInstanceCore というAWS管理のポリシーがあるので、これを選択します。

そのまま次の画面に進み、ロールの作成を完了します。
これで、ロールの作成が完了しました。

作成したIAMロールをEC2インスタンスにアタッチする

前のステップで作成したIAMロールをEC2インスタンスにアタッチします。
該当するインスタンスを選択し、
「インスタンスの変更」→「セキュリティ」→「IAMロールの変更」を選択します。

次に、プルダウンから先ほど作成したポリシーを選択し、更新ボタンを押します。

これだけで、必要な作業は完了です!

EC2インスタンスに接続する

ここまで設定が完了すると、マネジメントコンソールからEC2インスタンスにアクセスできるようになっています。

EC2を選択して、「接続」ボタンをクリックします。

そこから「セッションマネージャー」のタブを選択します。

「接続」ボタンを押すとシェルが立ち上がり、今までと同じように作業を行うことができます!
※ユーザーは ec2-user ではなく ssm-user になっています。注意してください。

※もし、下記のようなエラーが出る場合は、しばらく待ってからページをリロードしてみてください。IAMロールの反映に時間がかかっている可能性が高いです。

これで、晴れてssh鍵をいちいちサーバーに登録したりしなくても、EC2にアクセスして作業をすることができるようになりました! 「Aさんの公開鍵どれでしたっけ?」みたいな不毛なやりとりも無くせますし、起動時にダウンロードした秘密鍵の紛失に怯えなくても済みます。

以上がセッションマネージャーの紹介でした。 ぜひみなさんもセッションマネージャーを使って、ストレスフリーなEC2ライフを送ってください!