【AWS不正利用】1日で20万円以上の請求が届いてから免除されるまで


## 結果
結果からご報告すると

**AWSスタッフのご厚意で、不正利用された分の料金は免除になりました!!**

本当にAWSさんには感謝しているとともに二度とこういったことがないようにセキュリティを見直します…



ということでこれを見ている中にも心当たりがある方がいるかもしれないので、順を追って起こったことをお話致します。

## おかしなメールにて発覚

事の発覚は免除される約一週間前

**Your AWS account has been compromissed!**

という見慣れない件名のメールが届いたことから始まりました。

もともとcloudwatchを使用し使用料が予算に近づくとアラートメールが送信されるように設定していたためメールはよくチェックしていたのですが、こんな文面でのメールは初めてでした…

ん!?

不正利用!?やばいやばい!

と思いすぐさまAWSの請求額をチェック。

すると…



特に金額の増加は無しでした。

これが罠とも知らずに

一応念のためAWSルートユーザーを削除しシークレットキーを新しく発行しました。

## 【AWS Budgets: 月別 has exceeded your alert threshould】 メールが届く

**あなたの設定していた月別予算を越えています**という意味なのですが、**「あれっそもそも今まで一度も予算アラートなんて鳴っていないぞ」**と焦り再びAWSコンソール画面へログイン…

## 使用料$2000オーバーが発覚
請求画面を見て腰が抜けました。

![スクリーンショット (101).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536448/72055dcf-8f53-a7b5-07d1-89fed0801260.png)

![スクリーンショット (102).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536448/5b20ace8-9970-901a-afeb-feda5dca445b.png)

ん？
2000円か$2.000の間違えだよね…そうですよね…

流石にあり得ないと思い,の位置を確認し直したのですが…
何回数えても$2000だ…

流石に一日でこれだけ使用されてしまったため気づいたころにはもう駄目でした…

## サポートセンターに連絡するも返信来ず

かなり焦っていたのでサポートセンターに英語と日本語の二種類で速攻連絡。(AWSスタッフの方仕事を増やしていしまいすみません…)

しかし30分、1時間待っても一向に返信は帰ってこず…

このままだと精神が持たぬと判断したため**返信がi時間以内に帰ってくる**という**ビジネスプラン**に加入することに。


## AWSサポートスタッフからの返信あり

すると10分も経たないうちにスタッフの方から返信がありました。

内容は
「**請求免除を検討させていただくにあたって、まずはアカウントが安全な状態にあることを確認させていただく必要がある**」
というものです。

すぐさま書いてある指示に従いアカウントセキュリティ強化に移ります。

## いくつかのステップを経て免除申請へ



### 不正利用されたリソースの削除

請求画面の**cost explore**から不正利用されたリソースを割り出し、そのリソースを削除しました。
自分の場合ほぼすべてのリージョンでEC2インスタンスとVPC、そしてUSリージョンでRDSが立ち上がっていたようです。しかし発覚したときにはすでにAWS側ですべてのリソースは削除していてくれていたため、特に特別することはありませんでした。


### セキュリティ強化

IAMではが推奨されておりましたので、こちらをすべて有効にしました。
![スクリーンショット (105).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536448/ddeb609d-92ac-5ea5-ccb3-4e307ed7dec7.png)


#### ルートアクセスキーの削除

無限のアクセス権を持つルートユーザーのアクセスキーを削除してくださいというものですが、自分はもとから使っていなかったため特に変更は無し。

今後もセキュリティを考えると使うことはないと思います。

#### ルートアカウントの MFA を有効化

AWSのルートユーザーはメールアドレスとパスワードだけで簡単にログインできてしまうため、スマホと連動した多要素認証（MFA）を有効化します。

自分はgoogleAuthenticatorをし、それ以降ルートでコンソールにログインする際は活用しております。

登録の仕方はシンプルで、GoogleAuthenticatorをスマートフォンにインストール。
↓
**ルートアカウントの MFA を有効化**をクリック後に出てくるQRコードを読み込んだ後、**3回連続でトークン(アプリに出てくる6桁の数字)を入力する**と有効化できます。

あとはログインの際に多要素認証の入力画面が表れるので
![スクリーンショット (106).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536448/1906c4d1-c952-90cc-9e0b-ec19f56c586c.png)

該当するトークンを確認して入力するとログインができます。
![IMG_6398.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536448/d8e7a912-3ab6-d381-2174-0441e91c3f9b.png)


このトークンは一定時間毎に変更されるので万安心です。

####  個々の IAM ユーザーの作成

コンソールへログインする際もむやみやたらにルートユーザーを使わず、必要なユーザーでログインするようにしております。

####  グループを使用したアクセス許可の割り当て
ポリシーを直接アタッチするのではなくポリシーごとのグループにユーザーを登録し、権限を付与する方法が推奨されております。


自分の場合は

- EC2アクセス用
- リソース作成用(EC2,RDS,S3)

の2つを作成し、使用用途に合わせてグループを作り直しました。

#### IAM パスワードポリシーの適用

またパスワードも厳重化し**ユーザーにパスワードの変更を許可する**以外の項目をすべて有効化しました。

![スクリーンショット (104).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536448/d76c4e6a-4927-de7b-c3a3-c51182be3836.png)


## 約一週間で審議の結果が通知

それから何通か連絡をしているうちに約一週間が経ち、
**「ご事情を鑑みまして、EC2の請求金額から$2000.12を請求免除とさせていただきました」**
という知らせが。

なんとか免除になりました。


厳密にいうと請求金額が免除されるわけではなく**請求金額分のクレジットが付与されていて、それと相殺される形**で請求が減額されておりました。

本当に感謝しかないです。

## 原因はTerraform
どうやら原因はTerraformの学習中にawsのアクセスキーを張り付けたコードをアップしてしまったこようです。

今後は二度とコードにシークレットキー等を書き込まないよう徹底します…

## 対策

### IAMユーザーの権限を制限

いままでIAMユーザーにadminやfullアクセスの権限を与えていたのですが正直与えすぎだったため、ポリシーを自作し読み込み書き込みなど必要最低限の権限を与え使用するようにしました。


### 不要なユーザーの削除

さらにTerraformでリソースを作成し終わった後は使用済みユーザーを削除し、不必要に権限を持ったユーザーをAWSに残さないよう徹底しました。



### セキュリティ強化
上記の通りです。



## 心を支えられたブログ

最後に免除されるまで心の支えになったブログです。
自分と同じような境遇に合わせた方の話を聞くだけでもすごく気持ちが楽になったので、こちらの方々にも感謝です。

[AWSが不正利用され300万円の請求が届いてから免除までの一部始終](https://qiita.com/AkiyoshiOkano/items/72002409e3be9215ae7e)

[初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話。](https://qiita.com/mochizukikotaro/items/a0e98ff0063a77e7b694)

最後までお読みいただきありがとうございました。
もし自分と同じようなことが起こってしまった方がいれば参考にしていただけると幸いです。