このセクションでは、セッションマネージャによるインスタンス接続で用いられる ssm-user の sudo パスワードの設定について紹介していきます。

EC2 インスタンスへの接続をセッションマネージャーで行っている場合、インスタンスでは ssm-user というローカルユーザーが作成されるようです。そして、デフォルトでは ssm-user では パスワード無ししで sudo が利用できる状態で、セキュリティ上好ましくない状態になっています。
ここでは、ssm-user で sudo を使用する場合にはパスワードを要求するようにしていきます。

sh-5.2$ sudo su -
Last login: Wed Aug 23 02:13:54 UTC 2023 on pts/0
[root@ip-172-31-4-114 ~]#

まず、ローカルユーザーに ssm-user が作成されていることを確認します。

[root@ip-172-31-4-114 ~]# cat /etc/passwd
ec2-user:x:1000:1000:EC2 Default User:/home/ec2-user:/bin/bash
ssm-user:x:1001:1001::/home/ssm-user:/bin/bash
[root@ip-172-31-4-114 ~]#

ssm-user の sudo に関する設置ファイルは以下にあり、パスワード無しで sudo が利用できる設定になっています。

sh-5.2$ sudo ls -la /etc/sudoers.d/
total 24
drwxr-x---.  2 root root    74 Aug 22 04:51 .
drwxr-xr-x. 77 root root 16384 Aug 22 06:13 ..
-r--r-----.  1 root root   128 Aug  9 12:29 90-cloud-init-users
-rw-r-----.  1 root root     0 Aug 22 04:20 cloud-init
-r--r-----.  1 root root    58 Aug 10 09:06 ssm-agent-users     ←ssm-userのsudo設定ファイル
sh-5.2$

sh-5.2$ sudo cat /etc/sudoers.d/ssm-agent-users
# User rules for ssm-user
ssm-user ALL=(ALL) NOPASSWD:ALL    ← パスワード無しでsudoが利用できる状態
sh-5.2$

sudo 利用はパスワードを要求するように、ssm-user の sudo 設定ファイルを編集します。

[root@ip-172-31-4-114 ~]# cd /etc/sudoers.d/
[root@ip-172-31-4-114 sudoers.d]#

[root@ip-172-31-4-114 sudoers.d]# echo “ssm-user ALL=(ALL) ALL” > ssm-agent-users
[root@ip-172-31-4-114 sudoers.d]#

[root@ip-172-31-4-114 sudoers.d]# cat ssm-agent-users
ssm-user ALL=(ALL) ALL
[root@ip-172-31-4-114 sudoers.d]#

正常であれば、この時点で sudo を利用する場合にはパスワードを要求されるようになります。

sh-5.2$ sudo su -

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

For security reasons, the password you type will not be visible.

[sudo] password for ssm-user:

この時点では、ssm-user のパスワードを設定しないため、パスワードを設定していきます。
パスワードを設定するために、root ユーザーでログインする必要があります。

sh-5.2$ su -
Password:
Last login: Wed Aug 23 02:16:15 UTC 2023 on pts/0
[root@ip-172-31-4-114 ~]#

[root@ip-172-31-4-114 ~]# passwd ssm-user
Changing password for user ssm-user.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@ip-172-31-4-114 ~]#

正常であれば、この時点で ssm-user で sudo コマンドを実行するとパスワードを要求されるようになります。

sh-5.2$ sudo su -

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

For security reasons, the password you type will not be visible.

[sudo] password for ssm-user:
Last login: Wed Aug 23 02:25:20 UTC 2023 on pts/0
[root@ip-172-31-4-114 ~]#