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

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


はじめに

おはよう。@bioerrorlogです。

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

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

関連記事

AWS CLIのs3 cpとs3 syncの違いをまとめました。 www.bioerrorlog.work


S3への特定オブジェクトのアップロードをトリガーに、CloudWatch Eventsを起動するやり方の備忘録を残しました。 www.bioerrorlog.work