Help us understand the problem. What is going on with this article?

AWS初心者がgithubとAWSを使用する際に気を付けたいこと

記事を書いた動機

誤ってawsのアクセスキーとシークレットキーをgithubに挙げてしまった際、とても肝を冷やしたため。
自分はおそらく運が良かった&awsの対応が手厚かったために被害自体はなかったのですが、他の事例を見ると何百万という請求が発生し得る、とんでもないミスなので多くの人が知って一人でもこういうミスをしないことと、自分のミスの戒めのためです。

なぜ高額請求が発生するか

①awsのアクセスキーとシークレットキーをgithubに挙げてしまう
②クローラー等で、githubに挙げられているawsのキーが検知されてしまう
③勝手にキーを使われてマイニング等のためにEC2を限度いっぱいまで使われるといった流れです。

今回助かった原因

僕が何かをした、ということではなくaws側が手厚く対策をしてくれていたからです。
githubにawsのアクセスキーとシークレットキーを挙げると、悪意のある人だけでなくawsも検知をしているみたいで、
事故が発生してから僕の場合は一時間前後でメールが届きました。

事前にこういった事故を防ぐためにしておきたいこと

①そもそもawsのアクセスキーとシークレットキーをどこかに書くといったことをしない

その代わりにIAMRoleを使いましょう。
localで使う時は.envに書いて、終わったら消せばいいです。

②githubのcommit時にアクセスキーやシークレットキーを検知するようにする

git-secretsというものを使います。
詳しい使い方は
クラウド破産しないように git-secrets を使う
Windowsにgit-secretsをインストール
を参考にすればよいでしょう。
これで①で.envやほかの場所に書きっぱなしでも検知してくれます。

③DBのパスワードとかIAMRoleでなんとかならない場合は?

awsのParameterStoreやSecretManagerを使いましょう。

①、②、③で共通することは、公開する場所にはapiKey等の大事な情報は書かないようにしようということです。
当たり前のことかもしれませんが、僕は全くといっていいほど気にも留めずgithubに挙げてしまっていました。
というのも、ローカル環境で実験しているネットの記事を元にそのままアクセスキーとシークレットキーを書いたまま、何も考えずにgithubに挙げるという考えなしの行為が原因でした。

もしやってしまった場合は

①rootUserのパスワードを変更する
②流出してしまったIAMUSERを削除
③全リージョンのEC2、EBS、セキュリティグループに不審な制作物が確認
をしましょう。
実際対応されていた体験談としてはこちらが参考になります。
初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話。
AWSが不正利用され300万円の請求が届いてから免除までの一部始終
AWSで不正利用され80000ドルの請求が来た話

おわりに

今回の事故の原因はそもそもアクセスキーとシークレットキーを何の疑問も持たずgithubに挙げてしまったことに起因するので、
IAMRoleを使うことを念頭に置いて、予防策としてgit-secretsを使えば自分から流出させてしまうような事故は防げるのではないかなと思います。
少しでも同じようなミスをして悲しいことになってしまう人が減ってくれることを祈ります...

stonelike8
laravel/vue.js/reactあたりが好きです。 最近興味があるのはクリーンアーキテクチャとかリファクタリング絡みです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした