BioErrorLog Tech Blog

試行錯誤の記録

Session Managerでec2-userやrootとして作業する | AWS Systems Manager

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

はじめに

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

ただ、SSHでec2-userとしてログインした時とは微妙な違いがあります。

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

環境

EC2インスタンス: Amazon Linux 2
SSMエージェントのバージョン: 2.3.714.0

Session Managerでec2-userやrootとして作業する

現状: 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


同様に、以下のようにしてrootユーザーに切り替えることもできます。

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

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

おわりに

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

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

[関連記事]

www.bioerrorlog.work