AWSを触るようになって3年強となり、仕組みにもだいぶ慣れてきたし、より多くのサービスを使うようになった。IAM などはポリシーもロールもどんどん増えてきていている。
とはいえリソース群をコード化して管理するにも限界がある。新しく定義するにもコンソールから素早く立ち上げた方がいいときはやはりあるし、昔のリソースをコード化するのにもひどく労力がかかってしまう。それにコード化したところで管理するのは自分自身となり、いくら気をつけたところでヒューマンエラーが怖いのは変わらない。
さて、そんなところで『クラウド破産を回避するAWS実践ガイド』を読んだ。
[【書評】意図しない請求を防ぐためのノウハウが凝縮!「クラウド破産を回避するAWS実践ガイド」レビュー | Developers.IO (https://dev.classmethod.jp/articles/review-how-to-prevent-cloud-bankruptcy/)](https://dev.classmethod.jp/articles/review-how-to-prevent-cloud-bankruptcy/) |
著者ご本人さんの記事とクラスメソッドさんのレビューを読み、ちょうど気になっていた領域だったのですぐに購入して読んだ。結果として、手軽かつ網羅的にアカウントセキュリティ基盤を構築できた。以下は同書でも触れられていて、個人的にもっとも刺さった CIS AWS Foundations Benchmark というコンプライアンス基準の導入の項目について、少しだけ補筆する。
個人アカウントにセキュリティ/監査サービスを導入してみた
Security Hub で CIS AWS Foundations Benchmark v1.2.0 を導入する。なお、 CIS は Center for Internet Security と呼ばれる非営利組織で、こんな団体である。
CIS® (Center for Internet Security, Inc.) is a forward-thinking, non-profit entity that harnesses the power of a global IT community to safeguard private and public organizations against cyber threats. The CIS Controls® and CIS Benchmarks™ are the global standard and recognized best practices for securing IT systems and data against the most pervasive attacks. These proven guidelines are continuously refined and verified by a volunteer, global community of experienced IT professionals. 1
この CIS が AWS とその利用者のために用意してくれているセキュリティ・ベンチマークが、 CIS AWS Foundations Benchmark である。監査やセキュリティなどというと仰々しいが、要は注意点とベストプラクティスの一覧で、親切なことにどのような手順で AWS 上に実装すべきかの指示まで記述がなされている。つまりベンチマークを有効化し、検出されたリスクに機械的に対応するだけで、セキュリティ業界の権威が推奨してくれている指針を網羅的にカバーすることができるわけである。今回はこれを100%遵守できるようにもろもろの設定を行った。
多くは書籍通りの流れで対応できるが、いくらか自分で追加した点もある。
追加の CloudFormation テンプレート
CloudWatch アラームについては、書籍では AWS が用意してくれている CloudFormation テンプレート2を利用して設定した。しかしこれだけでは CIS AWS Foundations Benchmark の検証項目を網羅できないため、追加のログメトリクスやアラーム、SNSトピックを定義した CloudFormation テンプレートを作成した。
https://github.com/sato11/CloudWatchAdditionalAlarmsForCloudTrail
https://github.com/sato11/CloudTrailInsightsNotification
https://github.com/sato11/NotifySlackOfSecurityHubFindings
好みに応じてカスタマイズを
コンプライアンスに従って実装すると、たとえば IAM ポリシーの小さな変更があるたびにアラームが発動する。煩わしいという人もいるであろうから、少なくとも個人アカウントに適用するのであれば好みでオン/オフを切り替えるのがいいだろう。僕自身もたとえば「ルートアカウントに対するハードウェアMFAの有効化」の項目は無効化してしまっている。
おわりに
『クラウド破産を回避するAWS実践ガイド』で AWS の監査サービスを一通り触れることができた。この記事はそのうち、 CIS AWS Foundations Benchmark の有効化の部分にだけフォーカスして書いた。もちろんこれはひとつの総合的な書籍からほんの一部分だけをピックアップしたに過ぎないため、ぜひオリジナルの書籍の方を参照してほしい。
いずれにしても、この記事で紹介した CIS AWS Foundations Benchmark を利用することで、 AWS が提供するセキュリティサービス群を利用するように指示されるため、必然的に一通りのサービスに触ることになると思う。そのためまずはベンチマークを有効化し、そこで提示されるベストプラクティスに従うのがいいと思う。
使用料金としては200円/月くらいになりそうで、うちほとんどが AWS Config で発生しているようだ。ひとまずは納得できる料金であるので様子を見つつ、もう少し下げることができる手段がないかも調べていきたい。
最後に、同じ著者さんの『実践Terraform』も実は以前に読ませていただいていた。こちらもわかりやすい記述で、有益な入門書として繰り返し読ませていただいた。『クラウド破産を回避するAWS実践ガイド』は、読み終えたあとで同じ著者によるものと気づいたが、言われてみればどちらも丁寧かつ網羅的で、読みやすいにも関わらず読み応えもあった。両書ともためらいなくおすすめする。
追記(2020/06/19)
BOOTH で再販が始まっていたことを受けて、いくらか文章を変更した。
クラウド破産を回避するAWS実践ガイド - KOS-MOS - BOOTH (https://booth.pm/ja/items/1994587)