[レポート]SEC406: AWS CloudTrailを使用してアカウント間で監査の仕組みを実装する #reinvent

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、臼田です。

本記事はAWSの一大イベントであるre:Inventの下記セッションについてのレポートです。

SEC406 - Implement Auditing & Operational Oversight across Accounts Using AWS CloudTrail

In this session, learn how to set up CloudTrail to collect event information across accounts. This includes setting up a central definition for CloudTrail applied to multiple accounts, defining a central location where event data will be aggregated, and controlling access to the event data. Also learn different ways to explore the event data, including using CloudTrail Event history in the AWS Management Console and through direct access to events delivered to an Amazon S3 bucket.

Michael Borchert - Sr. Cloud Architect

CloudTrailの様々なアーキテクチャを紹介されたセッションでした。

レポート

このセッションではCloudTrailをどのようにマルチアカウントで構成して管理するかを紹介してディスカッションする。

ベーシックセットアップ

一番簡単な手法

マルチアカウントでベーシックなのは各アカウントのバケットにCloudTrailのログを保存して、リモートのTrailからチェックする方法

保存するS3バケットは費用的にはリージョンごと分けたほうがいいが、複数リージョンをまとめて管理できるallは閲覧する際にはいい。アカウントの利用状況や閲覧する場合の状況を考慮して選択する。

アドバンスドセットアップ1

全体を管理するCentralアカウントとリモートアカウントの構造

CentralアカウントからCloudFormationのStackSetでCloudTrailの仕組み(Trail設定2つとBucket)をデプロイ

各アカウントごとにログを保存しつつ、Centralアカウントにも保存

AthenaでSecOpsが分析する

場合によってはQuickSightにより可視化する

Ceentral側は分析用なのでS3のライフサイクルポリシーでログを早めに捨てるようにする

アドバンスドセットアップ2

さらにもう一歩Advanced

Amazon ES + Kibana

リモートからはCW LogsからCentralのESにログを突っ込む

ES + Kibanaは大量のログを取り込んで可視化することが可能なので、前のものよりも可視化や定常的なモニタリングを重視しているアーキテクチャ

デモ

アドバンスドセットアップ1のデモ

  • CloudTrailのコンソールからバケット作りながらTrailを作る
  • AthenaのDB作るのをTrailのダッシュボードからやる
  • userIdentityごとのカウントをするクエリを実行してみる
SELECT userIdentity.type, count(*) FROM "default"."cloudtrail_logs_demo_sec406" group by userIdentity.type;
  • Quick SightでAthenaを取り込む設定を実施
  • SPICEは使わない

アドバンスドセットアップ2のデモ

  • CloudTrail詳細画面の下部からCWLogsを作成
  • CW LogsのコンソールでActionからStreamでAmazon ESを選択

おまけ

余談だけど、新しく実装されたCWLogs InsightでサンプルクエリからCloudTrailの分析ができるよ。今だとこの機能を使えば簡単な分析はできるよ

Amazon CloudWatch Logs Insightsでログの高速な分析が可能になりました #reinvent

まとめ

CloudTrailのマルチアカウントでの管理戦略について聞くことができました。これらのパターンはそれぞれのアカウントの状況によって適切に使い分けるといいでしょう。

もう少し選択肢を増やすと、ES + Kibanaなども含めCloudTrailの解析はクエリを覚えたりどのようなステータスを取得するかの目的の明確化が難しかったりします。

そんな時は下記を見てみると、いっぱい幸せになれるかもしれません。Sumo LogicならSaaSなので運用管理も簡単で、デフォルトのCloudTrailを監視するためのダッシュボードが非常に充実しています。

CloudTrailのセキュリティ監視をちょー簡単にやってみた【Sumo Logic】