一般的にPublic AMIとして公開する必要があるケースは少ないです。そのため、AMIを公開する際の情報は少なく、どうしたものかなぁとなります。私も試しにしてみたかったので、公開してみたことがあります。その際の注意点をまとめておきます。今回の手順は、Redhat系OSを想定しています。
※実際、一度目は手順としてまとめておかなかったので、抜け・漏れが発生しました。
自分の痕跡を消す
- 公開鍵の消去
これ必須です。忘れるとAWSから注意が来ることもあるそうです。私は来たことありませんが。。。
echo "" > /root/.ssh/authorized_keys echo "" > /home/*/.ssh/authorized_keys
- ログの消去
接続元情報などが漏れるので、消去しておいてください。ここのログは稼働しているサービスによって可変ですので、任意のものを消してください。
echo "" > /var/log/boot.log echo "" > /var/log/btmp echo "" > /var/log/cron echo "" > /var/log/dmesg echo "" > /var/log/dmesg.old echo "" > /var/log/lastlog echo "" > /var/log/maillog echo "" > /var/log/messages echo "" > /var/log/secure echo "" > /var/log/spooler echo "" > /var/log/tallylog echo "" > /var/log/wtmp echo "" > /var/log/yum.log echo "" > /var/log/audit/audit.log echo "" > /var/log/httpd/access_log echo "" > /var/log/httpd/error_log echo "" > /var/log/httpd/ssl_access_log echo "" > /var/log/httpd/ssl_error_log echo "" > /var/log/httpd/ssl_request_log echo "" > /var/log/redis/redis.log echo "" > /var/log/mysqld.log
- コマンド履歴の消去
忘れがちなのが、コマンド履歴の消去です。特にbundleタスクなどセキュリティ・キーを引数に実行するものを実行していると、キーの漏洩のおそれがあります。
history -c
- シェル・スクリプトの置き忘れ
S3にバックアップ等のアクセス/セキュリティー・キーをつかって実行するシェル・スクリプトを置き忘れていないか注意してください。
AMI利用情報を記述する
今度は逆にAMIを利用する為の情報を、AMIページに記述しましょう。AWSアカウントでログインしている状態でAMIsのページからShare Your AMIで登録できます。フォームでAMIの詳細情報や使い方、サポートなど記入します。ある程度のHTMLタグが利用できます。登録後にAmazonの審査がありますが、即時公開されます。ちなみにどれだけページが見られたかとかダウンロードされたかは、解りません。(何か方法あるのでしょうか?)
まとめ
Chefの台頭もあって、AMIを公開するのではなくサーバの設定手順を公開するという考えもあります。しかし、AMIを直接公開する方がリーチ出来る人は多いと思います。AMIを公開することにより、フィードバックを受けられることもあるなど、意外にメリットもあります。興味がある方は挑戦してみては? Enjoy!!
See Also:
プライベートAMIを共有する方法と、リージョン間のAMIのコピー
GitLabのPublic AMIを公開しました。