AWSでEC2インスタンスを建てると、デフォルトで"ec2-user"という名前のユーザが作成されます。公開鍵認証なので高いセキュリティレベルが担保されており、ユーザ名が知られていても特に問題はないと思います。しかし、より安全にEC2を使用するためにデフォルトのec2-userを削除し、新しいユーザでアクセスできるように設定したいと思います。よくこの設定方法を忘れてしまうので、備忘録として残しておきたいと思います。

ちなみに公式でもこんな風に書かれています。

デフォルトのユーザーを使用するのが多くのアプリケーションに適しています。ただし、個人が自分のファイルとワークスペースを持つことができるように、ユーザーを追加することを選択できます。さらに、新しいユーザー用にユーザーを作成することは、デフォルトユーザーへのアクセス権を複数のユーザーに (経験のないユーザーも含めて) 与えるよりも、はるかに安全です。これはデフォルトのユーザーが不適切に使用された場合、システムにさまざまな損害を与える可能性があるためです。

ec2-userを削除するまでの流れ

useraddコマンドを使い新しくユーザを追加します。追加したユーザにsudo権限を付与します。また、追加したユーザのパスワードも登録します。

ssh -i ~/.ssh/秘密鍵の名前 ec2-user@EC2インスタンスのパブリックIP
sudo su -
useradd -m ユーザ名
usermod -aG wheel ユーザ名
passwd ユーザ名

追加したユーザのホームディレクトリにauthorized_keys(公開鍵の情報)をコピーし、適切な権限を付与します。

mkdir /home/ユーザ名/.ssh
cp /home/ec2-user/.ssh/authrized_keys /home/ユーザ名/.ssh
chown -R ユーザ名:ユーザ名 /home/ユーザ名/.ssh
chmod 700 /home/ユーザ名/.ssh
chmod 600 /home/ユーザ名/.ssh/authorized_keys

その後新しく追加したユーザで接続し直し、接続できることを確認したら、ec2-userを削除します。

exit
ssh -i ~/.ssh/秘密鍵の名前 ユーザ名@EC2インスタンスのパブリックIP
sudo userdel -r ec2-user