こんにちは、中の人です。
今回は前回に引き続き、User Data活用法についてです。今回は「SSH等を使わずに設定変更を行う方法」を紹介いたします。
標準で決まった内容をインストールする方法
物理的な接続が出来ないAWSに対してsshでもログインできなくなってしまった場合にも利用する事が出来ます。
以前、他のアカウントから引き継いでEC2を管理する案件があり、そのEC2のsshd_configにIP制限がかかっており、権限も一部しか与えられていなかったために非常に苦労した事がありました。その時に行った内容をベースに記載しております。
※(その時は権限の問題で選択できませんでしたが)他のインスタンスにボリュームをAttachして設定ファイルを書き換えることも可能です。
前回と同じですが、注意点としては初回起動時のみ実行されます。
そのため、既に起動・作成済みのインスタンスについては一度AMI化してから起動させる必要があります。
今回は例として、sshd_configのAllowUserをコメントアウトしてみます。
なお、SSHの設定変更の場合、再起動があるのでsshd または 本体の再起動が必要です。
1. 対象のインスタンスからAMI(Create Image)を行います。
2. 対象AMIを選択しながら起動します。
AWSの起動画面の「Step 3: Configure Instance Details」の”Advanced Details”を表示させます。
3. フォームに以下の様に記述します。
1 |
#!/bin/bash –ex |
1 2 3 |
/bin/cp /etc/ssh/sshd_config /etc/ssh/sshd_config2 /bin/sed -i -e "s/AllowUser/###AllowUser/g" /etc/ssh/sshd_config /etc/rc.d/init.d/sshd restart |
2行目では念の為、設定ファイルを保存しております。
元に戻したい場合は
1 |
#!/bin/bash –ex |
1 2 |
/bin/cp /etc/ssh/sshd_config2 /etc/ssh/sshd_config /etc/rc.d/init.d/sshd restart |
で元に戻せます。
4. もしも上記で反映されない場合は、念の為インスタンスを再起動します。
■ それでは確認してみましょう。
設定が正しければ、sshでログイン出来る事が確認できます。
また、/etc/ssh/sshd_configのAllowHostの設定がコメントアウトされていることが確認できます。。
いかがでしたでしょうか?
User Dataを使うことで、SSH接続できなくなってしまった場合でも原因がわかれば対処することが出来ます。
次回も、お楽しみに!