自分自身忘れないようにコンセプトを毎回書いておこうと思います。
コンセプト
・お金かけてまでやりたくないので基本的に無料でAWSを勉強する
→ちょっとしたサービスを起動すると結構高額になりやすい。
・高いレベルのセキュリティ確保を目指す
→アカウントを不正に使われるととんでもない額を請求されるので防ぐ
デフォルトのCloudtrail
前回はデフォルトのCloudtrailについて調べていました。相変わらずクラメソさんのページがわかりやすいのですが、
https://dev.classmethod.jp/cloud/aws/aws-cloudtrail-default-vs-custom/
結論からいうとデフォルトのCloudtrailだとコンソールログインを通知することはできないようです。もちろん、コンソールにアクセスすれば見ることはできますが、他のサービスと連携できない。つまり、メールとかで受信することができないということになります。
ならGuardDutyはどうよ?
さて、それじゃぁどうするかってことになるのですが、時代はGuardDutyでしょってことで少し調べてみました。ただ、大規模に使うのであれば良さそうですが、私のようにお勉強レベルではtoo muchな感じです。利用料も確認しましたが、
https://aws.amazon.com/jp/guardduty/pricing/
月に4.72USDかかりそうです。Cloudtrailの分析で100万件いけるみたいですが、そこまで使わないですしね。あくまでもお勉強用なので、100件単位とかで価格も0.05ドルから、みたいならいいんですが。ろくに使わないアカウントに毎月500円かかるのはもったいない。ってことでパスします。
そうなると、またしてもクラメソさんのサイトですが
https://dev.classmethod.jp/cloud/aws/aws-cloudtrail-cloudwatch-logs-badip/
このやり方になりそうです。ただ、ここでも問題があります。CloudtrailをS3に吐き出して連携するので、少なくともS3の料金とCloudWatchの料金がかかりそうです。
https://aws.amazon.com/jp/cloudwatch/pricing/
ただ、これを見る限りかなり安そうな感じはします。
とはいえですよ、そもそもの”無料”でってコンセプトに反してしまうんです。まぁ、AWSの環境を使っておいて無料でやらせろーって虫のいい話なんですが、自分としてはただ操作感を試すだけな訳で、本当はびた一文払いたくない訳ですよ(言い過ぎか(笑))勉強してるんだったら払ってもいいじゃないか、という気も少ししてしまうんですけどね。。。
そもそも要件ってなんだっけ?
方向性が見えなくなった時には当初の目的を考えるのが一番です。ってことで考えてみます。
・AWSの勉強で使いたい
・無料でやりたい
・アカウントの不正利用を検知したい(変な請求は避けたい)
これだったらMFA+課金アラームで十分か?という気もしますね。とはいえ、不正検知をするのも目的なのでもう少し考えます。検知するには結局Cloudtrailをトリガーにするしかないようです。デフォルトの無料のCloudtrailだと他のサービスに連携できません。Lambda連携できれば良かったんですが。で、それが無理ならCloudwatch連携するのがやはり王道で、その他の手としてはコンソールを定期的にseleniumとかでクロールする方法くらいしか思いつきません。ただ、仮にseleniumを使うにしても実行元のサーバーも必要ですし、そんなことをしたら寧ろ高コストになってしまいます。さらにMFAを導入しているので、技術的なハードルも高いです。
そう考えると、実行するならやはりCloudwatch連携するしかないかな、というのが現状の結論です。
なかなかいい方法ないけど、試してみようかな。もう既に無料縛りが達成できなくなるけど。。。