AWS管理コンソールの不正ログインをCloudTrail と CloudWatch Logsで検知する
はじめに
最近セキュリティについての意識が高くなってきていますね。
AWS管理コンソールへの不正ログインも心配事のひとつです。
またAWS管理コンソールへのログインは現状IP制限をすることができません。
下記ブログでは閲覧や操作が一切できない状態にする方法が紹介されています。
「AWS管理コンソールへのアクセスをIPアドレスで制限したい | Developers.IO」
今回は違ったアプローチでAWS管理コンソールに不正ログインがあった場合に
CloudTrailとCloudWatch Logsを使って検知する方法を試してみました。
※特定のIP以外からログインがあった場合にCloudWatchでアラームを飛ばします。
■参考URL
[新機能]CloudTrailでサインインが記録出来るようになった | Developers.IO
CloudTrailとCloudWatch Logsの連携によるログのアラーム設定 | Developers.IO
どうやって検知するのか
CloudTrail と CloudWatch Logs の統合を使って設定していきます。
またCloudTrailの画面を見たところ東京リージョンでもサポートされたようです。
※検証した時は使用できなかったのですがいつの間に...
Q: CloudTrail と CloudWatch Logs の統合とは何ですか?
CloudTrail を CloudWatch Logs と統合すると、CloudTrail が取得した API アクティビティが、指定した CloudWatch Logs ロググループの CloudWatch Logs ログストリームに送られます。
CloudWatch Logsログストリームに送られたログに対しフィルターをかけてアラームを飛ばします。
それではやっていきましょう。
CloudTrailの設定
CloudTrailの管理画面から設定していきます。
CloudTrail Configurationの設定
LoggingをONにする
S3バケットを作成する
Save
こちらの画面からS3バケットやSNSトピックが作成できるのは簡単でいいですね。
log groupを作成します。
CloudWatchのLogsのこのグループにCloudTrailのログが入ってきます。
IAMロールの設定です。CloudTrailのログをCloudWatchのLogsに書き込むことができます。
Additional ConfigurationのInclude global servicesはYesのまま
これはIAMやAWS管理コンソールへのログインなどグローバルサービスからのAPIコールを記録したい場合にYesにします。
これでCloudTrailの設定は完了です。
CloudWatchの設定
CloudTrailの設定が終わるとCloudWatchのLogsに先ほど作成したlog group名ができています。
ログが記録されているか確認してみましょう。
ログが記録されたことが確認できたら今回の本題
AWS管理コンソールログインで特定のIP以外からログインがあったらアラーム設定を行っていきます。
フィルターを設定する
AWS管理コンソールログインで特定のIP以外からログインがあるかを確認するので下記のようなフィルターを設定します。
Filter Patternに下記フィルターを入れます。
{ $.responseElements.ConsoleLogin = "Success" && $.sourceIPAddress !="***.***.***.***" }
また今回の目的とは変わりますが下記のようにフィルター設定することでMFA対応していないユーザがログインしたら検知することも可能です。
{ $.responseElements.ConsoleLogin = "Success" && $.additionalEventData.MFAUsed = “No" }
Metric Nameを入力して「Create Filter」をクリックして完了です。
アラームの設定
今回は1回でも検知したらEmailにアラームを飛ばすように設定しています。
設定したEmailアドレスに下記メールが来ますので「Confirm subscription」をクリックしてメールを受けとるよにしてください。
To confirm this subscription, click or visit the link below (If this was in error no action is necessary):
Confirm subscription Please do not reply directly to this e-mail. If you wish to remove yourself from receiving all future SNS subscription confirmation requests please send email to sns-opt-out
View Alarmをクリックして設定は完了です。
実際に違うIPでログインしてアラームを検知するか確認してみます。
ちゃんとアラームを検知しましたね。
まとめ
AWS管理コンソールへの不正ログインを検知する方法を紹介しましたが
IAMユーザのMFA設定は確実に行っておきましょう!
今後はCloudTrailやCloudWatchLogsの統合を使用する機会が増えそうです。