はじめに
前回、こちらの記事でAWS Systems ManagerのSession Managerを使った、AWSマネジメントコンソールからのEC2インスタンスアクセスを紹介しました。
簡単かつセキュアなコンソールアクセスを実現できるのですが、注意点として、アクセス時に使用されるOSユーザーが ssm-user
になるという点があります。
しかし、運用上の要件などで、作業者ごとに使用するOSユーザーを分けたい場合もあると思います。
そのため、こちらの記事では、AWS Systems Manager(以降、SSM)でのコンソールアクセスで、使用するOSユーザーを指定する方法を紹介します。
前提
前回の記事で前提とした環境を使用します。
また、前回の記事で行ったSSM接続の設定、およびEC2コンソールからの接続確認ができている状態とします。
設定の流れ
- インスタンス内にOSユーザーを作成する
- IAMユーザーにタグを追加する
- SSMの設定でRun As supportを有効にする
設定手順
インスタンス内にOSユーザーを作成する
- インスタンスにアクセスする
- コマンドでOSユーザーを作成する(例としてtest-ssmユーザーを作成)
sudo useradd -m test-ssm
- コマンドでパスワードを設定
sudo passwd test-ssm
※パスワードを設定と確認で2回入力
- インスタンスにアクセスする
IAMユーザーにタグを追加する
IAM
>ユーザー
> IAMユーザーを選択 >タグ
タブからタグを追加する- タグを追加して、保存する
タグキー:SSMSessionRunAs
値:指定のOSユーザー名を入力(例ではtest-ssm)
SSMの設定でRun As supportを有効にする
Systems Manager
>セッションマネージャー
>設定
タブ >編集
を選択
Linux インスタンスの Run As サポートを有効にする
にチェックを入れ、保存する
設定確認
ここまで設定できましたら、EC2コンソールから接続し、ユーザーを確認します。
EC2
>インスタンス
> アクセス対象のインスタンスを選択(チェック)>接続
を選択セッションマネージャー
タブで接続
を選択- コンソール画面が表示されたら、以下のコマンドでログインしたユーザーを確認
whoami
IAMユーザーに設定したタグのユーザー名が表示されたら、SSM接続時のOSユーザー指定は完了です。
補足
- 今回の設定を行うと、タグを付与していないIAMユーザーからのコンソールアクセスは失敗します。
- SSM設定の
Operating system user name
欄にOSユーザー名を記載すると、タグ無しの場合にそのユーザーでアクセスするようになります。
おわりに
今回はSession Managerを使用したコンソールアクセス時の、接続OSユーザー指定方法を少し細かく書いてみました。
作業者ごとにOSユーザーを用意するパターンはよくあるので、SSMでのコンソールアクセスでも、IAMユーザーごとにOSユーザーを指定できるということを知っておくと、設定の幅が広がると思います。
ぜひ活用してみてください。
参考
- Linux と macOS のマネージドノードで "サポートとして実行" を有効にする(公式ドキュメント)
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-preferences-run-as.html