はじめる前に
- 必須AWS アカウントを持っていること
- 必須マネジメントコンソールにサインインできること
- あると良い「ログ(操作の記録)」という言葉のイメージがある
- あると良いルートユーザーと IAM ユーザーの違いをなんとなく知っている
※ コマンドラインや SSH などの操作は一切ありません。すべてブラウザのコンソール上で完結します。
参照する公式ドキュメント
手順に迷ったときや、用語の意味を確かめたいときに開きましょう。
※ リンク切れの場合は、ページタイトルで検索してください。
背景・シナリオ
AWS のマネジメントコンソールで何か操作をすると——リソースを 1 つ作る、設定を 1 つ変える、といった小さな操作も含めて——その記録は自動的に残っています。CloudTrail という仕組みが、コンソールや API 経由で行われた操作を「イベント」として裏側で記録しているからです。
普段はこの記録を意識する場面は少ないですが、「いつ・誰が・どこから、何をしたのか」を確認できることは、トラブルが起きたときや、身に覚えのない操作に気づいたときの大切な手がかりになります。今回は自分で何か 1 つ操作をしてみて、それが CloudTrail の「イベント履歴」にどう記録されているかを確かめます。
CloudTrail を有効にしないと、記録は残らないの?
いいえ。CloudTrail は各 AWS アカウントで最初から自動的に動いています。直近 90 日間の主な操作(管理イベント)は、何もセットアップしなくても「イベント履歴」としてすぐに確認できます。今回はこの、最初から使える機能だけを使います。
記録されるのは誰の操作?
ルートユーザーや IAM ユーザーなど、コンソールや API で AWS を操作した主体はすべて対象になります。イベントの中の「ユーザー名」にあたる項目に、操作した本人の情報が記録されます。
AWS コンソールで何か 1 つ操作を行い、CloudTrail のイベント履歴からその操作に対応するイベントを見つけ、いつ・誰が・どこから操作したかを確認できる状態にする。
つくる構成
何か特別な設定をするわけではなく、すでに動いている仕組みを「見に行く」だけのハンズオンです。操作からイベント履歴に記録されるまでの流れと、記録される内容のイメージを示します。
クリック・作成・変更
自動で記録
記録される主な項目(例)
要件
以下の要件を満たし、自分の操作がイベント履歴に記録されていることを確認してください。
| No | 要件 |
|---|---|
| 1 | リージョンは「東京(ap-northeast-1)」を使用する(イベント履歴は操作を行ったリージョンごとに記録されます)。 |
| 2 | 後から見つけやすい操作を 1 つ行う。名前を自由に決められる操作が分かりやすい(例:IAM ユーザーを 1 つ作成する。名前は自由、例:cloudtrail-test-user)。 |
| 3 | CloudTrail コンソールの「イベント履歴」を開き、手順 2 の操作に対応するイベントをイベント名またはリソース名で検索して見つける。 |
| 4 | 見つけたイベントの詳細から、イベント時刻・ユーザー名・送信元 IP アドレス・AWS リージョンの 4 項目を確認する。 |
| 5 | イベントの「イベントレコードを表示」(JSON 形式の詳細)を開き、コンソールの一覧で見た項目がどこに対応するかを見比べる。 |
構築の進め方
「何か操作する → CloudTrail を開く → その操作を見つける → 内容を読む」という、シンプルな順番で進みます。
-
マネジメントコンソールにサインインし、リージョンを合わせる
ブラウザで AWS マネジメントコンソールにサインインし、画面右上のリージョンが「アジアパシフィック(東京)ap-northeast-1」になっていることを確認します。
-
後から見返しやすい操作を 1 つ行う
IAM コンソールを開き、「ユーザー」→「ユーザーを作成」から、名前を自由に決めて(例:
cloudtrail-test-user)ユーザーを 1 つ作成します。権限などの細かい設定は今回は不要です。操作はこれだけで十分このハンズオンの目的は「記録されていることを確認する」ことです。操作そのものは、名前さえ分かりやすければ何でも構いません。
-
CloudTrail コンソールを開く
画面上部の検索バーに
CloudTrailと入力し、サジェストから選びます。左メニューの「イベント履歴」をクリックします。少し待つこともある操作してからイベント履歴に表示されるまで、数分かかることがあります。すぐに見つからなくても、少し時間を置いてから再読み込みしてみましょう。
-
自分が行った操作を検索する
イベント履歴の検索欄で、属性を「イベント名」に切り替え、
CreateUserと入力して絞り込みます。一覧に、手順 2 で行った時刻に近いイベントが表示されます。絞り込みの軸はいくつかあるイベント名のほかにも、「ユーザー名」や「リソース名」など、別の項目で絞り込むこともできます。見つからないときは検索の軸を変えてみましょう。
-
イベントの詳細を開いて、内容を確認する
見つけたイベントの行をクリックして詳細を開きます。イベント時刻・ユーザー名・送信元 IP アドレス・AWS リージョンを確認しましょう。
-
イベントレコード(JSON)を眺めてみる
詳細画面の「イベントレコードを表示」を開くと、同じ内容が JSON 形式で表示されます。コンソールの一覧で見た項目が、JSON の中のどの項目(例:
eventName、eventTime、sourceIPAddress)に対応しているかを見比べてみましょう。JSON は「同じ情報の別の見せ方」コンソールの読みやすい表示も、JSON の生データも、中身は同じ記録です。JSON の形に慣れておくと、他のサービスのログを読むときにも役立ちます。
つまずきポイント
初学者がよく引っかかる箇所を先回りでまとめました。答えそのものは載せていませんが、「どこを見直せばよいか」の手がかりとして使ってください。
「探しているイベントが、一覧に見つからない」
よくある原因がいくつかあります。①画面右上のリージョンが、操作したときと違うリージョンになっていないか、②記録の反映には数分かかることがあるので、少し時間を置いて再読み込みしたか、③検索の属性(イベント名など)の表記が、実際のイベント名と少し違っていないか——を順に見直してみましょう。
「自分の名前ではなく、見慣れない表示になっている」
ログインの方法によって、表示が変わることがあります。ルートユーザーで操作した場合と、IAM ユーザーで操作した場合とでは、イベントに記録される「ユーザーの種類」や表示が異なります。どのユーザーでサインインして操作したかを意識しながら見比べてみましょう。
完了チェック
要件の再確認ではなく、画面のどこを見れば達成を確認できるかをまとめました。CloudTrail コンソールを開いて、次を順に確かめましょう。
- 「イベント履歴」の一覧に、自分が行った操作に対応する行が表示されている。
- そのイベントのイベント時刻が、自分が操作した時刻とおおむね一致している。
- ユーザー名の項目が、自分がサインインしている IAM ユーザー(またはルートユーザー)になっている。
- 送信元 IP アドレスが表示されている。
- 「イベントレコードを表示」で、JSON 形式の詳細が開ける。
考えてみよう
手を動かすことに加えて、次の問いに自分の言葉で答えられるようにしておくと、理解がより深まります。
- CloudTrail は、何かを有効化したり設定したりしなくても、最初から操作を記録していました。これはどんな目的のために、最初から動いていると考えられるでしょうか。
ヒント
「何か問題が起きてから、過去に何が起きたかを調べたい」という場面は、事前に準備していないと手遅れになります。最初から記録されていることで、トラブルのあとからでも遡って調べられる、という安全網の役割から考えてみましょう。 - 今回見たイベント履歴は、直近 90 日分でした。それより前の操作履歴を残しておきたい場合、何が必要になりそうでしょうか。
ヒント
イベント履歴は、AWS が裏側で保持している短期間の記録です。長期間保存したり、リアルタイムで監視したりするには、自分で「証跡(Trail)」を作成し、ログの保存先(S3 バケットなど)を指定する設定が必要になります。 - もし自分のアカウントで、見覚えのない操作がイベント履歴に記録されていたら、何が起きたと考えられるでしょうか。どんな対応を取るべきでしょうか。
ヒント
パスワードやアクセスキーなどの認証情報が漏えいし、第三者に操作された可能性があります。心当たりのない操作を見つけたときに、まず何を変更し、何を無効化すべきか、初動対応の順番を考えてみましょう。
後片づけ
CloudTrail のイベント履行自体は、有効・無効を切り替える設定ではなく、常に動いている仕組みなので片づけは不要です。確認用に作成したリソースだけ整理しましょう。
- 確認用に作成した IAM ユーザーを削除する:IAM コンソールの「ユーザー」一覧から
cloudtrail-test-user(手順 2 で付けた名前)を選び、削除する。
削除するのは、このハンズオンで自分が作ったものだけ
IAM ユーザーの一覧には、すでに使っている他のユーザーも並んでいるかもしれません。間違えて削除しないよう、このハンズオンのために付けた名前のものだけを選んで削除してください。
コストに関する注意: CloudTrail のイベント履歴(直近 90 日間の管理イベントの参照)は無料です。長期保存のための「証跡(Trail)」を作成して S3 に書き出す場合は、S3 の保管料金などが別途発生しますが、今回の範囲では作成していません。確認用に作成した IAM ユーザーにも料金はかかりません。このハンズオンの範囲では課金されることはありません。