0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Systems ManagerのSession ManagerでEC2インスタンスへの接続方法解説(画像付き)

Last updated at Posted at 2025-10-05

ご覧頂き、ありがとうございます。

この記事を書いた理由

 これまで以下のAWS資格を取得し、2024年12月から2社目のIT会社に転職成功。
今はAWSを活用したシステム構築の支援業務を行なっています。
業務で行った事の復習とアウトプットを兼ねて書きました。

既に合格済のAWS資格

 2024年04月11日「AWS Certified Cloud Practitioner(CLF)」
 2024年06月27日「AWS Certified Solutions Architect - Associate(SAA)」
 2024年08月13日「AWS Certified Sysops Administrator - Associate (SysOps)」
 2024年11月19日「AWS Certified Solutions Architect - Professional (SAP)」

この記事でわかること

 ▪️EC2インスタンスに直接SSHで接続する代わりに、
  AWS Systems ManagerのSession Managerを利用する方法。
  (画像を交えながら解説しています)

 ※AWS Systems ManagerのSession Managerを利用するの補足
  AWSマネジメントコンソール上からブラウザベースでターミナルを起動し、
  インスタンスにアクセスできる仕組み。
  ▪️メリット
   ▫️SSHポート(22番)の開放が不要の為、セキュリティが向上します。
   ▫️キーペア(秘密鍵)の管理が不要。
   ▫️セキュリティグループの設定が不要。

 ※AWS Systems ManagerのSession Managerの補足
  EC2インスタンスにマネージメントコンソールやAWS CLIからセッションを開始し、
 インスタンスにログインできるサービスです。
 セッションを開始する際にキーペア(秘密鍵)やポートの設定が不要で、
 安全な通信が行えるため、セキュリティを強化しながら管理作業を効率化できます。

対象読者

 ▪️AWSの資格試験を目指している方
 ▪️AWS Systems ManagerのSession Managerでの
 EC2インスタンスへの接続方法を学びたい方

ご注意

 画像は設定手順をイメージしやすくするための参考です。
細部の仕様や正確性についてはAWS公式ドキュメントをご確認ください。
また、一部個人情報などを削除しています。

事前準備

 ▪️EC2インスタンス作成済
 ▪️OS:amazon Linux 2023 AMI
 ▪️Amazon Linux 2023 にはデフォルトでSystems Manager agentがインストール済

 ※Systems Manager agentの補足
  AWS Systems Managerの一部機能を実現するために、
  インスタンスにインストールされるソフトウェア。
  イメージ:AWS Systems Managerとインスタンス間で通信するブリッジ役。

参考文献

「次のいずれかのオペレーティングシステムで AMI から作成された
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動すると、
SSM Agent がすでにインストールされている場合があります。」の部分

項番1_必要なIAMロールの作成と付与

手順1

AWSマネージメントコンソールにログインし、(https://aws.amazon.com/jp/console/)
画面左上の黒い検索バーに「 IAM 」と入力します。

手順2

黒いポップアップが表示されます。「 サービス 」下の「 IAM 」を選び選択します。

手順3

画面左側のナビゲーションペインの「 ロール 」を選択します。
 ※IAMロールの補足
  AWSリソースに一時的なアクセス権を付与するための認証エンティティです。
 ユーザーやサービス(EC2インスタンスなど)に権限を一時的に委任する際に使用します。
 ▪️イメージ
  ▫️特定の操作に必要な権限を明示的に付与し、期限切れや使い捨てが可能です。
 ▪️具体例
  ▫️EC2インスタンスがS3バケットのデータを読み取るためにIAMロールを付与する。

 ※エンティティの補足
  AWSにおけるIAM認証の主体。
 ▪️AWSリソースへのアクセス権を持つユーザー、ロール、またはサービスプリンシパル。
  ▫️IAMユーザー: AWSコンソールに直接ログインする人間ユーザー。
  ▫️IAMロール: 他のサービス(EC2、Lambdaなど)が一時的に使用する権限の主体。
  ▫️サービスプリンシパル: AWSの内部サービス(例: ec2.amazonaws.com)が
   エンティティとして動作。

手順4

画面右上の「 ロールを作成 」を押下します。

手順5

▪️「 信頼されたエンティティを選択 」画面に遷移したら以下の操作を行います。
 ▫️「 信頼されたエンティティタイプ 」で「 AWSサービス 」を選択します。
 ▫️「 ユースケース 」でプルダウンから「 EC2 」 を選択し「 次へ 」を押下します。
  (EC2を選択しないと項番2_作成したロールをインスタンスにアタッチする_手順3で
  作成したロールが表示されません)

手順5.png

手順5_2.jpeg

手順6

▪️「 許可を追加 」画面に遷移したら以下の操作を行います。
 ▫️「 AmazonSSMManagedInstanceCore 」 ポリシーを
  許可ポリシー下の検索バーにコピーアンドペーストし、enter押下します。
 ▫️「 AmazonSSMManagedInstanceCore 」左横に☑︎を入れ、「 次へ 」を押下します。
   (許可の境界を設定はデフォルトのまま)
手順6.jpeg

手順6_2.jpeg

 ※AmazonSSMManagedInstanceCore
  AWSが提供する管理ポリシーで、AWS Systems Managerを使用するための
 基本権限を提供します。EC2インスタンスにアタッチすると、
 Session Manager経由でインスタンスに接続できます。

 ※IAMポリシー
  AWSリソースへのアクセス許可または拒否を定義するドキュメント(JSON形式)。
 ユーザー、グループ、またはロールにアタッチされる。
 ▪️イメージ
  ▫️どのアクション(例:アクセス許可)をどのリソースに対して
  許可または拒否するかを細かく設定可能です。
 ▪️具体例
  ▫️管理ポリシー: AmazonS3ReadOnlyAccess → S3バケットの読み取り専用権限を付与。

手順7

▪️「 名前、確認、および作成 」画面に遷移したら以下の操作を行います。
 ▫️ロール名入力:例「 イニシャル2文字-roll-01 」
  (複数有る場合に一意に区別がつく名前)
 ▫️ステップ 1: 信頼されたエンティティを選択する(編集せずそのまま)
 ▫️ステップ 2: 許可を追加する
  「 AmazonSSMManagedInstanceCore 」 ポリシーが表示されている事を確認します。
 ▫️ステップ 3: タグを追加する
  「 新しいタグを追加する 」を押下して以下2点を入力します。
  ・キー: 例 「 Resource 」
  ・値:  例 「 イニシャル2文字-resource 」
 ▫️上記が完了したら「 ロールを作成 」を押下します。

手順7.jpeg

手順7_2.jpeg

項番2_作成したロールをインスタンスにアタッチする

手順1

画面左上の黒い検索バーに「 EC2 」と入力します。

手順2

画面左側のナビゲーションペインの「 インスタンス 」を選択します。

手順3

▪️「 IAM ロールを変更 」画面に遷移したら以下の操作を行います。
 ▫️項番1_必要なIAMロールの作成と付与_手順8で作成したロールをアタッチする
   インスタンスを選択します。
 ▫️画面右上のアクション➡️セキュリティ➡️IAMロールを変更の順に選択します。
手順3.jpeg

 ※ロールをインスタンスにアタッチするの補足
  インスタンスが他のAWSリソースに対して許可された操作を実行できる様になります。

手順4

▪️「 IAM ロールを変更 」画面に遷移したら以下の操作を行います。
 ▫️IAMロール下のプルダウンから項番1_必要なIAMロールの作成と付与_手順8で
  作成したロールを選択します。
 ▫️「 IAM ロールの更新 」を押下します。

手順4.jpeg

項番3_AWS Systems Manager Session Managerの設定

手順1

画面左上の黒い検索バーに「 Systems Manager 」と入力します。

手順2

画面左側のナビゲーションペインの「 フリートマネージャー 」を選択します。
接続したいインスタンスの名前などが、画面下のカラムに表示されていればOKです。
手順1.jpeg

 ※フリートマネージャーの補足
  AWS Systems Managerの機能で、
 サーバーやインスタンスのリモート管理をGUIで提供するツールです。
 主にサーバー上のプロセスやサービスの状態確認ができます。

手順3

画面左側のナビゲーションペインの「 セッションマネージャー 」を選択します。
手順1.jpeg

 ※セッションマネージャーの補足
  AWS Systems Managerの機能で、
 EC2インスタンスやオンプレミスサーバーへのリモートシェルアクセスを提供します。
 AWSマネジメントコンソール上でブラウザターミナルを開けます。

項番4

▪️「 Session Manager 」画面に遷移したら以下の操作を行います。
 ▫️「 セッションの開始 」を押下。
 ▫️対象のインスタンスを選択し、「 セッションの開始 」を押下。
 ▫️画面が遷移した後、画面右下の「 startsession 」を押下。
  (Webベースのターミナルが開き、SSH接続不要でインスタンスにアクセスできます)

項番4.jpeg

項番4_2.jpeg

手順1.jpeg

項番4_Session Managerでの操作(テキストファイル作成)

手順1

AWSマネジメントコンソールからSession Managerを利用して接続すると、
自動的に ssm-user ユーザーでログインします。
カレントディレクトリは /usr/bin になるため、
必要に応じて sudo コマンドで適切なユーザーに切り替えてください。
切り替えないで、手順2を行うとエラーがでます。

エラー例
手順1_2.jpeg

 # ユーザー切り替えコマンド
sudo su
cd ~

管理者権限(root権限)を持つユーザーに切り替え
手順1_3.jpeg

 ※ssm-user ユーザーの補足
  AWS Systems ManagerがEC2インスタンスに接続する際に
 使用するデフォルトユーザーです。

 ※sudo コマンドの補足
  Linuxで管理者権限(root権限)を一時的に借りてコマンドを実行するための
 コマンドです。管理者権限が必要な操作を、通常ユーザーが実行できる仕組みです。

手順2

以下のコマンドを入力しenter押下し、<テキストファイル名>に任意の名前を入れます。
(試しに「 Qiita_test.txt 」と入力してみました。)

 # ファイル作成コマンド
 touch <テキストファイル名>.txt 

手順3

以下のコマンドを入力しenter押下し、作成したファイルの存在を確認します。

 # 現在のディレクトリにあるファイルやフォルダを一覧表示させるコマンド
 ls 

手順3.png

手順4

以下のコマンドを入力しenter押下し、エディタを起動させます。

 # エディタ起動コマンド
 vim Qiita_test.txt 

手順5

「 i 」キーを押下し、ターミナルソフト画面を編集モードに遷移させ、
必要な内容を入力します。 (試しに「 Qiita_test.txt 」と入力してみました)
手順5.png

手順6

編集が完了したら、「 Escキー 」を押下します。
そして、以下のコマンドを入力しenter押下して、ファイルを保存後に終了します。

 # 保存コマンド
 :wq! 

手順7

以下のコマンドを入力しenter押下し、ファイルの内容を確認します。

 # ローカルに保存したファイルの内容を表示するコマンド
 cat Qiita_test.txt 

手順7.png

手順8

作成と編集が完了したら、以下のコマンドを入力しenter押下しSSH接続を終了させます。

 # ログアウトコマンド
 exit 

項番5_EC2インスタンス終了

インスタンスを使用しない場合は、余計は料金を発生させないため停止させます。
作成したインスタンスを選択し、画面右上の「 インスタンスの状態 ▲ 」を押下します。
そして「 インスタンスの停止 」を押下します。
停止.jpeg

文章作成補助「 ChatGPT 4o 」

最後まで読んでいただきありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?