こんにちは!新入社員の泉です。このブログではAWSサービスの一つであるCloudTrailについてご紹介します。
目次
CloudTrailは、AWSアカウント内で行われた操作(APIの呼び出し)を自動で記録してくれるサービスです。「誰が・いつ・どんな操作をしたか」を確実に記録してくれる、AWSにおけるセキュリティと運用管理の要です。例えば『EC2を起動した』『S3にアクセスした』といった操作はすべてログに残ります。
CloudTrailの基本構成は以下のようになっています。
・トレイル:どのリージョンのログを記録するか、どこにログを保存するかを指定
・S3バケット:ログの保存先
・CloudWatch Logs(オプション):リアルタイムでログ監視をしたいときに使用する
CloudTrail単体ではアラート機能を持たないため、CloudWatchと連携することで異常検知やアラートが可能になります。また、CloudWatch Logsと連携することで、高度なログフィルタリングと検索を行うことができます。
例)ルートアカウントでのAWSマネジメントコンソールのログイン操作の監視
CloudTrailはAWSで行われた操作について、以下のような情報を記録します。
・実行したユーザ:例)IAMユーザ名
・実行したサービス:例)EC2、S3
・実装した操作:例)StartInstances、DeleteBucket
・実行日時
・操作結果:成功/失敗
・実行元のIPアドレス
これらのログ内容はJSON形式であとから確認したり検索したりできます。
AWS CloudTrailを利用するには、まずトレイルというログの保存ルールを作成する必要があります。ここではマネージメントコンソールからの設定手順をご紹介します。
①AWSマネジメントコンソールにログイン
②『CloudTrail』サービスを検索して開く
③トレイルを作成する
④トレイルの基本情報を入力
⑤ログの保存先(S3バケット)を指定:CloudTrailのログはS3に保存されます。
⑤イベントタイプの選択
イベントタイプ
|
内容
|
例
|
管理者イベント
|
リソースの管理操作
|
EC2起動、S3作成
|
データイベント
|
S3やLambdaのデータ操作
|
S3 GET/PUT、Lambda invoke
|
Insightイベント
|
API使用の異常を自動検出
|
急増API呼び出しなど
|
ネットワークアクティビティイベント
|
ネットワーク関連のAPI呼び出し
|
サブネット作成、VPC作成
|
⑥『次へ』ボタンをクリックし、設定を確認後、『作成』ボタンをクリックすると、CloudTrailのトレイルが有効になり、以降のAWS操作が記録されていきます。
①AWSマネジメントコンソールで『S3』サービスを開く
②CloudTrailで設定したログ保存先のS3バケットを選択
③ログファイルのダウンロード
④.json.gzのログファイルをダウンロードする
⑤④で展開された.jsonファイルを好みのエディタ(VS Codeなど)で開く
ここでは先ほどダウンロードしたJSONログを読み解いていきます。そもそもJSONとは軽量なデータ交換フォーマットであり、人間にも読みやすく、プログラムでも扱いやすい構造になっています。基本構造として、データはキーと値のペアで表現されます。ここではEC2インスタンスの開始を意味するStartInstancesイベントのログについて読み解いていきます。
UserIdentity:誰がその操作を行ったのかを示す情報源
type:アクションを実行したユーザの種類(IAMUser、Rootなど)
principalId:AWS内部で一意に割り当てられたユーザまたはロールのID
arn:実行者のARN(Amazonリソースネーム)形式の識別子
accountId:操作を行ったユーザが属するAWSアカウントのID
accessKeyId:操作に使われたアクセスキーID(APIリクエストの追跡に便利)
userName:IAMユーザ名
sessionContext:セッション情報やMFA使用状況
eventTime:操作が行われた日時(UTC)*UTCとは協定世界時のことで、このUTCに9時間を足すと日 本での時間となります。
eventSource:操作されたAWSサービス
eventName:実行された操作名
awsRegion:操作が行われたリージョン
sourceIPAddress:操作を実行したユーザのIPアドレス
このようにCloudTrailログを確認すると、AWSアカウント内での操作を確認することができます。
CloudTrailの利用料金は、S3に配信されたイベント数に応じた従量課金となります。S3バケットに保存されたログは自動では削除されないため、必要に応じてライフサイクルルールを設定し、削除またはアーカイブするのがおすすめです。
今回は、AWS CloudTrailの基本的な使い方から、実際のログの読み方、StartInstancesイベントの確認方法までを紹介しました。
CloudTrailは、「誰が・いつ・どんな操作をしたか」を確実に記録してくれる、AWSにおけるセキュリティと運用管理の要です。設定もシンプルで、S3バケットさえあればすぐに始められるため、すべてのAWSアカウントで有効化しておくサービスとも言えます。
また、CloudTrailはCloudWatch LogやSNSなど、ほかのAWSサービスと組み合わせることで、「特定操作を感知したら通知を飛ばす」「異常なアクセスパターンを監視する」といった高度な監査や自動対応も可能になります。