Techfirm Cloud Architect Blog

テックファーム株式会社クラウドインフラグループのブログ

【AWS】セッションマネージャーを使ったEC2接続の、接続OSユーザー指定方法

はじめに

前回、こちらの記事でAWS Systems ManagerのSession Managerを使った、AWSマネジメントコンソールからのEC2インスタンスアクセスを紹介しました。

techblog.techfirm.co.jp

簡単かつセキュアなコンソールアクセスを実現できるのですが、注意点として、アクセス時に使用されるOSユーザーが ssm-user になるという点があります。
コンソール画面、whoamiコマンドでOSユーザがssm-userであることを確認している

しかし、運用上の要件などで、作業者ごとに使用するOSユーザーを分けたい場合もあると思います。
そのため、こちらの記事では、AWS Systems Manager(以降、SSM)でのコンソールアクセスで、使用するOSユーザーを指定する方法を紹介します。

前提

前回の記事で前提とした環境を使用します。
また、前回の記事で行ったSSM接続の設定、およびEC2コンソールからの接続確認ができている状態とします。

設定の流れ

  • インスタンス内にOSユーザーを作成する
  • IAMユーザーにタグを追加する
  • SSMの設定でRun As supportを有効にする

設定手順

  • インスタンス内にOSユーザーを作成する

    1. インスタンスにアクセスする
    2. コマンドでOSユーザーを作成する(例としてtest-ssmユーザーを作成)
        sudo useradd -m test-ssm
    3. コマンドでパスワードを設定
        sudo passwd test-ssm
        ※パスワードを設定と確認で2回入力

  • IAMユーザーにタグを追加する

    1. IAM > ユーザー > IAMユーザーを選択 > タグタブからタグを追加する
    2. タグを追加して、保存する

      IAMコンソール画面、以下のタグを追加している

      タグキー:SSMSessionRunAs
      値:指定のOSユーザー名を入力(例ではtest-ssm)

  • SSMの設定でRun As supportを有効にする

    1. Systems Manager > セッションマネージャー > 設定タブ > 編集を選択

      セッションマネージャーの設定画面、編集ボタンを選択する

    2. Linux インスタンスの Run As サポートを有効にするにチェックを入れ、保存する

      セッションマネージャーの設定画面、Linux インスタンスの Run As サポートを有効にする、にチェックを入れている

設定確認

ここまで設定できましたら、EC2コンソールから接続し、ユーザーを確認します。

  1. EC2 > インスタンス > アクセス対象のインスタンスを選択(チェック)> 接続を選択
  2. セッションマネージャータブで接続を選択
  3. コンソール画面が表示されたら、以下のコマンドでログインしたユーザーを確認
    whoami

    コンソール画面、whoamiコマンドでOSユーザが指定されたものになっていることを確認している

IAMユーザーに設定したタグのユーザー名が表示されたら、SSM接続時のOSユーザー指定は完了です。

補足

  • 今回の設定を行うと、タグを付与していないIAMユーザーからのコンソールアクセスは失敗します。
  • SSM設定のOperating system user name欄にOSユーザー名を記載すると、タグ無しの場合にそのユーザーでアクセスするようになります。

おわりに

今回はSession Managerを使用したコンソールアクセス時の、接続OSユーザー指定方法を少し細かく書いてみました。
作業者ごとにOSユーザーを用意するパターンはよくあるので、SSMでのコンソールアクセスでも、IAMユーザーごとにOSユーザーを指定できるということを知っておくと、設定の幅が広がると思います。
ぜひ活用してみてください。

参考

  1. Linux と macOS のマネージドノードで "サポートとして実行" を有効にする(公式ドキュメント)
    https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-preferences-run-as.html