プログラマでありたい

おっさんになっても、プログラマでありつづけたい

Public AMIを公開する場合のお作法


 一般的に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を公開しました。


参照:
AMI の安全な共有
suz-lab - blog: 公開AMIを作成する直前で行っていること