EC2インスタンスの初期ユーザはパスワードがかかっておらず、特権操作も可能だ。
もちろんパスワードを設定することも可能だが、パスワードを失念してしまいsudoが使えなくなってしまった。
この状態でsudoを使った操作をしたい場合は、大きく2通りのやり方があるようだ。
1.別のEC2インスタンスを新規で作成し、そこにパスワードの分からなくなったEBSをアタッチしてsudoersを編集してもとに戻す方法
2.EC2インスタンスのユーザデータにbootcmdをつけてsudoersを書き換える方法
根本的な対応としては1だろうが、テスト用だったりで使えればいいレベルであれば、2のやり方が簡単だ。
EC2
→ インスタンス
→ 対処したいインスタンスID
→ アクション(事前にインスタンスの停止が必要)
→ インスタンスの設定
→ ユーザデータを編集
以下のコマンドをコピペして保存し、インスタンスを起動すると、ec2-userのsudo権限が使えるようになる。
bootcmd:
- echo "ec2-user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/cloud-init
※すでにユーザデータを使っている場合は上書きされるためバックアップを取ること
参考