AWS CloudTrailは、AWS上で実行されるアクションやイベントを記録し、さまざまな履歴を管理するために必要なサービスです。AWS環境のインフラ運用管理を行う際、誰が何をしたのか、どのリソースにどのような変更が加えられたのかを把握することは、セキュリティ管理やコンプライアンスの観点から非常に重要です。
この記事では、AWS CloudTrailの基礎知識を初心者向けに解説します。AWSを利用するインフラエンジニアにとって、CloudTrailの理解は必要不可欠な知識ですので一緒に基本をしっかりと押さえていきましょう。
CloudTrailとは
CloudTrailは、IAMの操作履歴を取得するサービスです。Trailには「跡、痕跡」といった意味があり、CloudTrailによってAWSアカウント内のいつ、誰が、どのリソースにどのような操作をしたかが記録されます。
たとえば、IAMユーザーがAWSコンソールやCLIを使ってEC2インスタンスを起動したとします。この操作はCloudTrailによって記録され、ログとして保存されます。
記録されたログには、操作を実行したユーザーのID、操作が行われた日時、対象となったEC2インスタンスのIDなどが含まれるため、後からその操作の内容が不正なものでなかったか確認することができます。
https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-user-guide.html
どんな時に役立つのか
CloudTrailを利用することで、「ユーザーの不正操作」や「システムの異常な動作」のトラブルシューティングに役立ちます。例えば、セキュリティインシデントが発生した場合、誰がどの操作を行ったかをCloudTrailで確認し、その情報をもとに問題解決に役立てることができます。
先ほどと別の例として、誰かがS3バケットを誤って削除してしまったとします。この操作もCloudTrailに記録されるため、記録されたログを確認することでどのユーザーが、どの時間に、どのバケットを削除したのかを把握できます。この情報を基に、削除されたデータの復元作業を始めたり、再発防止策を講じたりすることも可能になります。
CloudTrailのイベント記録
CloudTrailのイベント記録の種類には、以下の3つがあります。
それぞれどんな特徴があるのかを見ていきます。
Event history(イベント履歴)
Event historyは、直近90日間のイベント履歴を確認できる機能です。AWSマネジメントコンソールからアクセスすることができ、過去90日間に実行されたAPIの呼び出し内容を確認することができます。
具体的には、AWSアカウント内のIAMユーザーやAmazon EC2インスタンスなどの作成、変更、削除に関連するイベントをリージョン単位で調べることが可能です。
この機能はデフォルトで有効になっているため、作成などの作業は必要ありません。
また、Event historyを確認するのに料金はかからないのも特徴の一つです。
https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html
CloudTrail Lake
CloudTrail Lakeは2022年1月にリリースされた機能で、保存しているイベント履歴に対してSQLでクエリを実行できる機能です。
この機能はデフォルトでは利用できないため、Event data storesを作成する必要があります。
Event data storesには価格オプションがあり、1年間の延長可能なオプションを選択した場合は最大3,653日間(約10年間)、7年間のオプションを選択した場合は最大2,557日間(約7年間)データを保持することができます。
CloudTrail Lakeを利用することで、大量のイベントデータから特定の条件に絞ってログを検索することができるため、長期間のイベントデータを効率的に管理、確認することができます。
https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-lake.html
Trails(証跡)
Trailsでは、AWSアカウント内で発生したAPIイベントの内容をS3バケットに保存します。S3バケットにデータを保存するため、長期間保存することができます。
オプションを指定する必要がありますが、CloudWatch Logsにログイベントを送信することでアラームを設定したり、Amazon Athenaでログに対してクエリを実行することも可能となっています。
デフォルトでは利用することができないため、CloudTrail Lakeと同様、Trailsを作成する必要があります。
また、S3バケットに保存することになるため、S3のストレージ料金が発生してしまうことも理解しておく必要があります。
https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html
CloudTrailの料金
CloudTrailの料金はイベント記録の種類によって料金が異なります。
Event historyの料金
Event historyの機能は無料で提供されているため、料金は発生しません。過去90日間という制約はありますが、表示、検索、ダウンロードを実施してもコストが発生することはありません。
CloudTrail Lakeの料金
こちらは利用開始時に作成したEvent data storesに取り込まれるデータ量、データの保持期間、データに対してクエリを実行した際のスキャンしたデータ量によって料金が発生します。
Trailsの料金
Trailsを作成すること自体には料金は発生しません。
ただ、Trailsで記録されたデータはS3に保存されるため、ストレージ料金が発生します。
オプションを使用して、CloudWatch Logsにデータを送信する場合には、CloudWatch Logsへのデータ取り込みと保存に対して料金が発生するため注意が必要です。
それぞれの料金の詳細は、以下公式ドキュメントを参照ください。
https://aws.amazon.com/jp/cloudtrail/pricing/
CloudTrailの使い方
ここからは、CloudTrailの中でも一番基本的な、Event history(イベント履歴)の使い方をご紹介します。
はじめに、AWSコンソール、CloudTrail左ペインから「イベント履歴」をクリックします。
イベント名で検索
イベントソースで検索
リソース名で検索
ユーザー名で検索
まとめ
この記事では、AWS CloudTrailの基礎について解説しました。CloudTrailは、AWSアカウント内で行われた操作やイベントを記録し、セキュリティ管理やトラブルシューティングに役立つサービスです。
記事の後半ではCloudTrailのイベント履歴での検索方法を紹介しました。この記事を参考に、ぜひご自身のアカウントでどのような挙動になるのか実践していただきたいと思います。
参考資料
以下のリンクは、この記事で説明した手順や概念に関連する参考資料です。より詳しく学びたい方は、ぜひご参照ください。
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2024.01.28
Undifferentiated Heavy Liftingとは?重労働から解放されるクラウド時代の新戦略
クラウドコンピューティングの文脈でよく使われるこの用語は、企業や開発者が自社のコアビジネスやイノベーションに集中する代わりに、基本的でありながら重要なインフラストラクチャやシステム管理などの作業に多くの時間とリソースを費やしている状況を指します。
- AWS
- インフラエンジニア
2024.09.28
【Terraformハンズオン】Lambda関数にレイヤーを追加してみよう
この記事では、Lambda関数の中でも「レイヤー」について解説し、記事後半ではIaCツールのTerraformを使ってハンズオン形式でレイヤーの作成方法と利用方法を学びます。
- AWS
- ハンズオン
- Terraform
2024.03.03
【AWS】リージョンとAZについての詳しい解説
この記事では、クラウドサービスについてやデータセンターについての知識がある前提として、AWSにおける「リージョン」と「AZ」についての解説をしていきます。
- AWS