こんにちは。植松です。
AWSを利用する際、セキュリティ管理の一環として「誰が、いつAWSマネジメントコンソールにログインしたのか」を把握することは非常に重要です。AWSでは CloudTrail を利用することで、コンソールログインの履歴を記録し、確認することができます。今回は、CloudTrailを使ったログイン履歴の確認方法をご紹介します。
1. CloudTrailとは?
AWS CloudTrailは、AWSアカウント内の APIコールや管理イベントを記録するサービス です。これにより、
-
誰が(IAMユーザーやルートユーザー)
-
どのIPアドレスから
-
どの時間帯に
-
どのサービスを操作したのか
といった情報を取得することができます。CloudTrailを有効化することで、不正アクセスや設定変更の監査が可能になります。
特に設定は不要でデフォルト設定でイベント履歴を取得しています。
ただ、デフォルト設定だと90日分のイベント履歴の保存のみを行うため、永続的に保存したい場合、S3などに保存する設定を別途行う必要があります。
2. CloudTrailを使ったコンソールログイン履歴の確認方法
ステップ1:CloudTrailコンソールにアクセス
-
AWSマネジメントコンソールにログインします。
-
上部の検索バーで「CloudTrail」と入力し、CloudTrailコンソールを開きます。
ステップ2:イベント履歴の検索
-
[イベント履歴] タブをクリックします。
-
[イベント名] フィルターを「ConsoleLogin」に設定します。
-
必要に応じて、期間(例:過去7日間など)を選択します。
-
[発信元IPアドレス] や [ユーザー名] でログイン元を特定できます。
ステップ3:詳細情報の確認
検索結果の ConsoleLogin イベントをクリックすると、詳細な情報を確認できます。
イベント名をクリックすることでより詳細な情報が確認できます。
-
ログイン日時
-
ログインユーザー名
-
ログイン元のIPアドレス
-
ログイン成功/失敗の結果
-
MFAが使用されたかどうか
などが確認できます。
3. 注意点
確認するリージョンがいつも利用しているリージョン(例:東京 "ap-northeast-1")ではなく、シドニー "ap-southeast-2" など異なるリージョン に記録されることがあります。ユーザーの種類やサインイン方法によってログインで利用される認証システムが違うようです。
1. ルートユーザーでログインした場合
- CloudTrail の ConsoleLogin イベントは us-east-1(バージニア北部) に記録される。
- ルートユーザーは AWS全体に適用される管理ユーザー であり、認証処理が us-east-1 のグローバルな AWS 認証システム で行われるため。
2. IAMユーザーでログインした場合
- IAMユーザーでのサインインには グローバルエンドポイント と リージョンエンドポイント の2種類がある。
- グローバルエンドポイントを使用した場合(例:
https://signin.aws.amazon.com/
経由)- どのリージョンにログイン履歴が記録されるかは 「アカウントエイリアス Cookie」 の有無によって変わる。
(A) アカウントエイリアス Cookie がある場合
- AWSは、ユーザーの場所に応じて
- のいずれかにログを記録する。
- これはAWSの コンソールプロキシ(サインインを最適なリージョンにリダイレクトする仕組み)が、ユーザーの地理的位置に基づいてログイン処理を振り分けるため。
- アカウントエイリアス Cookie とは?
- AWSにログインするとき、ブラウザに「アカウントエイリアス(カスタムドメインのようなもの)」を記憶する Cookie が保存される。
- この Cookie がある場合、サインイン時に AWS のグローバルサインインページではなく、最適なリージョンのプロキシサーバーにリダイレクト される。
- その結果、ログが us-east-2、eu-north-1、ap-southeast-2 のいずれかに記録される。
(B) アカウントエイリアス Cookie がない場合
- ConsoleLogin イベントは us-east-1(バージニア北部) に記録される。
- 理由:AWSのコンソールプロキシがリダイレクト先を特定できないため、デフォルトで グローバルサインインページ(us-east-1) に転送される。
3. リージョンエンドポイントを使用してサインインした場合
https://ap-northeast-1.signin.aws.amazon.com/
(東京リージョン)などの リージョンエンドポイント を使ってログインした場合は、そのリージョンにConsoleLoginイベントが記録される。
4. まとめ
AWS CloudTrailを活用することで、AWSコンソールへのログイン履歴を簡単に確認できます。ただし、ログインイベントは必ずしも普段利用しているリージョンに記録されるわけではないため、CloudTrailのリージョンを切り替えて確認することが重要です。また、CloudWatchと連携することで、不審なログインをリアルタイムで検出し、管理者に通知することも可能です。監査目的としては、デフォルト90日だと少なすぎるので、S3に一旦蓄積することをお勧めします。