Systems Manager: Session Managerでec2-userとして作業する

AWS Systems ManagerのSession Manager (以下、セッションマネージャー) でec2-userとして作業するやり方の備忘録です。


はじめに

Systems Managerのセッションマネージャーは、いちいちSSHでログインすることなく、EC2インスタンスでシェル操作を行うことのできる便利なサービスです。

しかし、SSHでec2-userとしてログインした時との微妙な違いには、少々手惑いました。

今回は、Systems Managerセッションマネージャーでユーザーec2-userとして作業するやり方を簡単にメモします。


環境

EC2インスタンス:
Amazon Linux 2

Systems Managerエージェントのバージョン:
2.3.714.0


現状: ssm-userとしてシェルアクセス

セッションマネージャーでEC2インスタンスに入ると、ssm-userとしてシェルアクセスされます。

$ whoami
ssm-user

しかし、ssm-userのままだと、EC2にデフォルトで作成されるユーザーec2-userのファイルにアクセスできません。

# ssm-userのホームディレクトリへ行く
$ cd ~

# ec2-userのホームディレクトリにアクセスする
$ cd ..
$ ls
ec2-user  ssm-user
$ cd ec2-user
sh: cd: ec2-user: Permission denied

ここでssm-userのままec2-userのファイルにアクセスしようと思えば、sudoを使うことになるでしょう。

しかし、毎回sudoを使うのは面倒です。


解決策: sudo su --login ec2-user

気付いてしまえばあまりに簡単なことなのですが、sudoの権限を用いてec2-userにログインしてしまえば、ec2-userとしてSSHした時に近い感覚で作業が出来ます。

# ec2-userにログイン
$ sudo su --login ec2-user
Last login: Thu Mar 12 13:44:03 UTC 2020 on pts/0

# ec2-userに切り替わったことを確認
$ whoami
ec2-user

もちろん、ec2-userと言わずにrootに切り替えることもできます。

# rootにログイン
$ sudo su --login
Last login: Thu Mar 12 13:43:50 UTC 2020 on pts/0

# rootに切り替わったことを確認
$ whoami
root


おわりに

sudo権限を用いてユーザーを切り替えればよい、というのはあまりに単純な話なのですが、私はそれに気付かないばかりに、セッションマネージャー少し使いづらいなあ等と思っていました。

同じように思った方の参考になれば幸いです。