AWS

AWS Systems ManagerでLinuxサーバーにアクセスできるようにする

AWS Systems Manager(以後SSM)では、VPSやオンプレミスのサーバーに対してSSM Agentをインストールする事でアクセス管理対象とする事が可能となっています。

今回は自分で運用しているVPSに対して、SSMでアクセスできるようにしてみました。

構成イメージ

このような構成でアクセスできるようにやってみました。

Step1. アクティベーションの作成

1-1. アドバンスドインスタンス層の有効化

オンプレサーバーでSession Managerを使用するには、アドバンスドインスタンス層への変更が必要です。

  1. AWSコンソールにログイン
  2. Systems Manager を開く
  3. 左メニュー → Fleet Manager
  4. 右上の「設定」→「インスタンスティアの設定を変更」をクリック
  5. 「アドバンスド」を選択して保存

1-2. Hybrid Activationの作成

  1. Systems Manager → 左メニュー → ノード管理 → ハイブリッドアクティベーション
  2. 「アクティベーションを作成」をクリック
  3. 以下を入力して作成
設定項目入力値
説明任意(例: bastion-server-activation)
インスタンス制限登録するサーバー台数(例: 1)
IAMロールデフォルト(自動作成)でOK
有効期限デフォルトでOK(1日)

⚠️  作成後に表示される Activation ID Activation Code は必ずメモしてください。画面を閉じると二度と確認できません。

取得する情報
Activation IDxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Activation Codexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Step2. サーバー(Linux)にSSM Agentをインストール

2-1. 対象サーバーにログイン

2-2. SSM Agentのインストール

以下コマンドを順に実行

① SSM Agentパッケージのインストール

sudo dnf install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm

② Hybrid Activationの登録(ACTIVATION_CODE・ACTIVATION_IDをStep1のメモした値に置き換える)

sudo amazon-ssm-agent -register \
-code "ACTIVATION_CODE" \
-id "ACTIVATION_ID" \
-region "ap-northeast-1"

③ SSM Agentの起動・自動起動設定

sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent

④ 起動確認

sudo systemctl status amazon-ssm-agent

# 以下のように表示されれば成功です:
amazon-ssm-agent.service - amazon-ssm-agent
Active: active (running)

Step3. マネージドインスタンスの確認

3-1. AWSコンソールで確認

  1. Systems Manager → Fleet Manager → マネージドノード を開く
  2. 登録したサーバーが一覧に表示されることを確認
  3. Pingステータスが「Online」になっていることを確認

Step4. IAM Identity Centerでユーザーを追加

① IAM Identity Center → Users → 「ユーザーを追加」

以下を入力:

項目入力値
ユーザー名例: user-1
メールアドレスユーザーのメールアドレス
名(First name)名前
姓(Last name)苗字
表示名任意

② グループへの追加

  • 該当グループ(SSMUsersなど)を選択してユーザーを追加

③ 「ユーザーを追加」で保存

④ 招待メールからパスワード設定

  • 「Accept invitation」リンクをクリック
  • パスワードを設定

⑤ MFAデバイスの登録

  • IAM Identity Centerポータルにログイン
  • 右上のユーザー名 → 「MFAデバイス」→「MFAデバイスを登録」
  • AuthenticatorアプリでQRコードをスキャン

⑥ AWS CLIのSSO設定

aws configure sso
aws sso login --profile {プロファイル名}

Step5. ログイン確認

5-1. Session Manager Pluginの確認(ユーザーPC)

未インストールの場合は以下でインストールします。

brew install --cask session-manager-plugin
session-manager-plugin --version

5-2. SSOログイン

aws sso login --profile SSMAccess-{ユーザー名}-{アカウントID}

ブラウザが開き、IAM Identity CenterのポータルでMFA認証を行います。

5-3. SSMセッション接続

Step3でメモしたノードIDを使って接続します。

aws ssm start-session \
--target mi-XXXXXXXXXXXXXXXXX \
--profile SSMAccess-{ユーザー名}-{アカウントID}

以下のプロンプトが表示されれば接続成功です:

Starting session with SessionId: xxxx
sh-5.1$