🔐

[AWS SSM] セッションマネージャーでEC2に接続してみた

2022/08/09に公開

はじめに

これまでEC2への接続は、SSHクライアントを利用しておりました。EC2インスタンスへの接続方法は他にもEC2 Instance Connectセッションマネージャーがあります。EC2 Instance Connectは利用したことがありますが、セッションマネージャーは利用したことがなかったので、試しに接続してみようと思いました。

セッションマネージャーはポートを開けることなく接続可能な方法であり、セキュアな接続方法であると言えます。
今回はセッションマネージャーでの接続をやってみた!と各接続方法の使いどころについて調べてみました。

こちらの記事の内容はBlack Beltを視聴して実施しております。SSMの様々な機能について説明されているので、こちらの視聴もオススメです。
https://www.youtube.com/watch?v=UXSbh4Wsp7c

本題の前にEC2 Instance Connect

EC2 Instance Connectを利用するとマネジメントコンソールから簡単にEC2アクセスできます。(AWS CLIからも利用できます。)この接続方法は、コンソールでポチポチ操作して何かを試す際にはピッタリじゃないかなと思い、ハンズオンやチュートリアルを実施する際に利用していました。他にも何かしらのトラフィックが通らない場合にセキュリティーグループを触って、そのまま動作確認する。みたいな時にも素早く利用できるかな。と思いました。まあ、四の五の言わず、とりあえず一回接続してみてください。

実行手順

インスタンスを選んで

接続をクリックするだけで

ブラウザでローカルからSSH接続したような形で利用できます。

セッションマネージャーでEC2に接続してみた

利用には準備が必要です。

Amazon Linux2を無料枠で立ち上げると、セッションマネージャーによる接続はできず、下記の画面になります。セッションマネージャーを利用するには事前準備が必要です。

全体像


私個人がまずひっかかったのはIAM Roleをアタッチする点。なんとなく、SSMがEC2に対してアクションをする。という感覚でしたので、EC2にRole?と感じましたが、SSM AgentSSM APIの関係を知ることでRoleのアタッチを納得することができました!

事前準備

SSM AgentのインストールやIAMロールのアタッチなどの事前準備の方法はマニュアルQuick Setupの2種類があります。Quick Setupでは、新たに立ち上げるEC2に対して前述の準備を自動的に実行したり、複数のリソースを一括で管理するのに便利です。Black Beltで詳しく説明されているので、ぜひご覧ください。
今回は自動でやってくれる設定を体験するべく、マニュアルによる準備を行ってみました。

1.SSM Agentのインストール

SSM AgentはいくつかのAMIにはプリインストールされています。詳細はこちらに記載があります。(プリインストールAMI一覧)
以下の手順でインストール有無確認及びインストール実施、エージェントの起動を行います。

  1. インストールされているかどうか確認sudo systemctl status amazon-ssm-agent
  2. インストールされていない場合は、こちらのコマンドでインストールができます。sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
  3. SSM-Agentを起動する、sudo systemctl start amazon-ssm-agent

2. IAMロールのアタッチ

  1. IAMロールを作成します。ポリシーは推奨のAmazonSSMManagedInstanceCoreを利用する。
  2. 作成したIAMにロールをEC2にアタッチする。

3.接続テスト

  1. Systems Managerからセッションマネージャーを選択する
  2. 立ち上げたEC2を選択してセッションを開始するを選択する
  3. シェルが立ち上がる

999.AWS CLIの利用

AWS CLIを利用するにはローカルにプラグインをインストールする必要があるようです。
詳細はこちらに記載されているので、後日試してみようと思います。

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html#install-plugin-macos

接続方法の使いどころ

クラメソさんのブログに違いやユースケース別の使い分けがきれいにまとめられておりましたので、こちらを参照いただくと、理解が早いです。
https://dev.classmethod.jp/articles/choosing-the-right-shell-access-solution-to-aws-ec2/
各操作方法の差で印象的だったのは、操作履歴の記録です。セッションマネージャーを利用する一番の要因ではないかと感じました。

最後に

Black Beltで説明されているように、SSMには運用を効率化を中心に多くの機能が備わっています。セッションマネージャー以外の機能も少しずつ触っていきたいと思います。

以上。

Discussion