今や、IT技術はビジネスに必要不可欠なものとなっており、システムやアプリケーションを日々の業務や販売活動に活用することは当たり前となっています。
そのシステムやアプリケーションの運用において、従来はオンプレミス方式が主流でしたが、現在はクラウド方式での運用が主流になりつつあります。
そのクラウドの中でも、オンラインECサイトを運営しているAmazonが展開しているAWS(Amazon Web Services)の存在感は非常に大きいです。
それに伴い、AWSの運用に関する知識や経験に対する需要も高騰しています。
本記事では、クラウドの運用において必要不可欠な操作ログの分析、それも前述したAWSの操作ログの分析について解説していきます。

【得意な分野・言語】QA(品質保証)/ テスト自動化開発(Python、Node.js)/ Google Apps Script【主な実績】20年のQA業界経験(現職)【役職】エンジニア / Developers Summit 2024 SummerとDevelopers Summit 2024 KANSAIで登壇
AWS操作ログとは?初心者にもわかりやすく解説
AWS操作ログとは、AWSアカウントと紐づいたEC2での操作をはじめ様々なAWSの操作を記録したものです。
具体的には、以下のように「いつ」「誰が」「何を」「どこで」「どのように」自社のシステムで行動したかがわかるようになります。
現在、サイバー犯罪やセキュリティインシデントが頻発していますが、一度サイバー犯罪やセキュリティインシデントに巻き込まれてしまうと、金銭的にも信用の面においても大きな損害を被ってしまいます。
従って、セキュリティ監査やコンプライアンス遵守、トラブルシューティングは自社を守るために非常に重要な業務となってきます。
AWS操作ログで自社のシステムの動向を監視することで、これらの業務を効率良く処理することができます。
いつ:操作が行われた日時
AWS操作ログには、操作が行われた日時が記載されています。
従って、何らかのバグやアクシデントが起こった場合、AWS操作ログに記載された日時を原因の調査や顧客への補償などの業務に役立てることができます。
オンプレミスであろうがクラウドであろうが、ログの量はかなり膨大になることが殆どです。
その膨大なログの中から目当ての事象を探し出し、詳細を調べることは非常に難しく、かかる労力や時間も半端なものではありません。
そのため、バグやアクシデントがシステムやアプリケーションで起こった場合は、まず時間を基にログファイルを絞って調査をすることが基本になります。
誰が:操作を行ったユーザーまたはIAMロール
AWS操作ログ、その中でもログイン履歴などと併用することで、誰が操作を行ったかがわかるようになります。
サイバー犯罪などに巻き込まれたり、システムのソースに不正な操作が行われた際、ログイン履歴をその後の調査に役立てることができます。
誰が操作をしたかわかる、ということは責任の所在が明確になり、従業員1人1人のセキュリティ意識が高まります。
また、セキュリティの脆弱な箇所もわかるようになります。
セキュリティ強化において、誰かが何とかしてくれる、自分には関係ないだろうという当事者意識の無さは致命傷になりかねません。
誰が操作をしたのかを特定できる環境づくりは極めて重要です。
何を:実行された操作の種類(作成、削除、更新など)
自社のシステムの中でどのような操作をしていたのかを調査することは、トラブルシューティングやセキュリティ監査において非常に重要なことです。
後述するリソースの件でも言えることですが、必要なリソースが削除されたり、データを不正に発信するプログラムなどが埋め込まれていないか、システムの監視者はAWS操作ログを使って常に監視する必要があります。
セキュリティ監査などにおいて、誰にどのような権限をつけるべきかは重要です。
運用を定期的に見直す時にも、AWSログを見てどのような操作が行われたかを見れば、より適切な判断ができるようになります。
どこで:操作されたAWSリソース
システムのリソースと言っても、データベースからプログラムのファイル、セキュリティの設定情報など、非常に多岐に渡ります。
これらのリソースに対して不正な操作がされていないかを調べることは、セキュリティ監査において非常に重要な業務です。
また、ほとんど使用される事のないリソースが格納されていないかもAWSログで調べることができます。
AWSログとリソースのリストなどを照らし合わせて、無駄なリソースを消去してコストの削減に役立てることも可能になります。
操作されたAWSリソースが記載されるAWSログには多様な活用方法があるのです。
どのように:操作の詳細情報
どのリソースにどのような操作をしたか、その詳細を明らかにすることで、もしセキュリティインシデントが起こった際にその被害の全貌や原因を明らかにすることができます。
例えば、一口にデータベースのデータを更新したと言っても、どのレコードにどんな値の更新を行ったかが明らかにならなければ、被害の全貌はわかりません。
被害の全貌がわからない、ということは企業が次にどのような対策を実行すれば良いかがわからない、ということになります。これでは自社の信用回復もおぼつきません。
近年では相次ぐ企業の不祥事もあって消費者からの視線も厳しくなっているため、不測の事態が起こった時は一刻でも早く信用回復に努めなければなりません。
AWS操作ログの種類
AWSでは様々なサービスや機能を展開しています。
データストレージサービスやデータベース、セキュリティ設定など、多様なサービスや機能があります。
それに合わせ、AWSの操作ログにも様々な種類があり、操作の内容によってログの名称などを使い分けています。
これらの名称と意味を熟知しておかなければ、日々の運用業務や初期設定時のやり取りに苦労する可能性が高くなります。
管理イベントログ
AWS操作ログの1つとして、まず管理ログをあげることができます。
これはIAMユーザーやロール、およびAWSサービスによって実行されたアクションです。
具体的には、セキュリティの設定変更やデバイスの登録などの操作が当てはまります。
セキュリティ設定などが不正に変更された場合は、こちらのログに出力されます。
デフォルトではログインなどの操作もログに記録されます。
AWSのマネージメントコンソールにログインし、AWS CloudTrailの設定を変更することで、ログへの記載の有無を決めることもできます。
管理イベントのログ記録については以下の公式ページに詳しいドキュメントがあります。
管理イベントのログ記録 – AWS CloudTrail (amazon.com)
データイベントログ
S3バケットへの操作やLamdaの関数の変更などの操作は、データイベントログとして記載されます。
このデータイベントログを常時確認することで、自社のシステムが使用しているデータやプログラムに不正な変更や予期しない削除が行われていないかを確かめることができます。
もし自社のシステムやアプリケーションが想定通りに動かない、若しくは以前格納したはずのデータが無いなどの事態に遭遇した場合は、まずはこのデータベースログを確認して不正な操作が行われていないかを確認することをお勧めします。
データログイベントのログ記録については以下の公式ページに詳しいドキュメントがあります。
データイベントをログ記録する – AWS CloudTrail (amazon.com)
AWS CloudTrailのイベントログとAWS CloudWatchログの違い
AWSには主に2種類の監視ログがあります。
ログの種類 | 内容 |
CloudTrail | 管理イベントログ、データイベントログ |
CloudWatch | システムログ |
CloudTrailが「誰が何をしたか」という行動記録を管理します。CloudWatchは「システムがどのような状態にあるか」という健康状態を監視する役割を担っています。
CloudTrailは、AWSアカウントの操作履歴を記録するサービスです。管理イベントログではリソースの作成や削除、IAMユーザーの追加など、AWS環境での重要な変更を追跡します。
データイベントログは、S3バケットでのファイル操作やLambda関数の実行といった、よりきめ細かな操作履歴を記録します。
CloudTrailのログは、セキュリティ監査やコンプライアンスの面で重要な役割を果たします。
CloudWatchログは、システムやアプリケーションの動作状況を監視するためのものです。
エラーメッセージやパフォーマンス指標、アクセスログなど、システムの健全性を示す情報を記録します。
例えば、アプリケーションでエラーが発生した際の詳細な状況や、システムリソースの使用状況などを確認することができます。
AWS操作ログの記録方法
AWS操作ログを記録するには、AWS CloudTrailを有効にする必要があります。
AWS CloudTrailとは、AWSアカウントそれぞれで利用されたAPI Call、つまり操作内容を記録する機能です。
逆にAWSでの直接操作ではない、SSHやリモートデスクトップを利用してのEC2インスタンスの操作のようなものは記録できません。
管理イベントログはAWSアカウントを作成した時点で有効になり、自動的に記録が開始されます。
記録されたログはCloudTrailのイベント履歴でログ管理されます。
データイベントログは手動で設定を行う必要があります。
ログを記録したファイルはAWS CloudTrail自体やS3バケットに出力され、保存される仕組みになっています。
また、ファイル名にはログが配信された時の年月日も記載されているため、ログの確認時に目当てのファイルが探しやすくなっています。
方法1. CloudTrailの設定
操作ログとして記録されCloudTailで管理されるものはCloudTailイベントと呼ばれ、以下の3つのイベントが記録されます
- 管理イベント
- データイベント
- Insights イベント
Insights イベントは通常の操作とは異なる異常なアクティビティなどを自動で検知し記録するものです。
Insights イベントのログ記録については以下の公式ページに詳しいドキュメントがあります。
Insight イベントのログ記録 – AWS CloudTrail (amazon.com)
この3つのイベントの中で、管理イベントのみデフォルトで記録されます。
データイベントとInsights イベントの記録には手動での設定が必要で、設定の手順は以下になります。
- CloudTrailの左メニューの「証跡」(もしくは「ダッシュボード」)をクリック
- 表示された画面内の「証跡の作成」をクリック
- 証跡属性の選択画面が表示されるので、証跡名やログを保存するS3バケットの設定などを行い、次へ
- ログイベントの選択画面が表示されるので、ログを残したいイベントタイプ(管理イベント、データイベント、Insights イベント)などを設定し、次へ
- 確認と作成画面が表示され、設定した内容が表示されるので問題がなければ「証跡の作成」をクリックし作成します
目的に合わせ証跡は複数作成することも可能です。
複数作られた証跡はCloudTrailで証跡管理することもできます。
ただし、複数の証跡を作成した場合は無料枠から外れる可能性もあるためコスト面で注意が必要です。
方法2. S3バケットへの保存
管理イベントはAWSアカウントを作成した時点から自動で記録され、記録されたログの閲覧はCloudTrailのイベント履歴で確認することができます。
しかし、イベント履歴には直近90日までの記録しか保持されず、イベント履歴上では複雑な検索が行えません。
また、データイベントとInsights イベントはイベント履歴では閲覧できません。
そのため、操作ログを長期で保存したい場合や管理イベント以外のイベントのログも記録したい場合はS3バケットへ保存する必要があります。
方法1. CloudTrailの設定の手順でS3バケットへの保存設定ができますが、はじめてCloudTrailで証跡を作成する場合はクイック証跡を利用することもできます。
- CloudTrailの最初の画面の「証跡の作成」をクリック
- 証跡名を設定して「証跡の作成」をクリック
この手順だけでS3バケット名もクイック証跡の作成画面で自動的に設定され証跡を作成できます。(S3バケット名は変更できません。)
この手順ははじめて証跡を作成する際の手順で、すでに証跡を作ってある場合は通常の証跡作成の手順(方法1)になります。
AWS操作ログの活用例
AWS操作ログには様々な用途があります。
前述した様に、セキュリティ監査やコンプライアンス遵守、トラブルシューティングだけでなく、コスト管理などの業務にも活用することができます。
どれも現代のビジネスに欠かすことのできない業務ですが、AWS操作ログの知識や経験が豊富なエンジニアがいれば、これらの業務の効率を飛躍的に上げることができます。
セキュリティ監査
AWS操作ログはセキュリティ監査ログとして活用することができます。
いつ、だれが、どのような操作をEC2などでやっていたかをはっきりさせることはセキュリティ監査の第一歩です。
もしも不審なユーザーや不審な操作が操作ログに見受けられていた場合は、原因の調査や今後の対策の実施が必要になります。
また、現在のセキュリティ犯罪は非常に精巧になっており、不正なプログラムが埋め込まれてからかなりの年数が経った後に作動してシステムやアプリケーションに危害を加える例もあります。
何かあってからではなく、常日頃から定期的にセキュリティ監査を行うことが重要です。
コンプライアンス遵守
セキュリティインシデントが起きなくてもコンプライアンス違反、つまり社内の規定に従わない操作をAWSで行われた場合も注意が必要です。
コンプライアンスに違反した操作がセキュリティインシデントに繋がる事例も多くあるからです。
コンプライアンスに違反している場合はどのような状況だったかを詳しく調べ、社内の規定などに新しく規則を盛り込むなどの対策を取る必要があります。
また、操作が行われた日時や、閲覧などをしたリソースが何かをAWS操作ログで確認することで、自社のコンプライアンスが遵守されているかを確認することができます。
トラブルシューティング
もしもセキュリティインシデントが起こった場合、少しでも早く解決をしなければなりません。
もしログなどを出力していなければ、膨大な量のファイルの中身を逐一確認したり、ファイルのタイムスタンプなどを確認して不審な点を探さなければならないため、膨大な労力が必要になります。
しかし、AWS操作ログには、何のリソースにどのような操作が行われたのか、その詳細な情報が記載されています。
どのような操作が行われたかを確認すれば、その後のリカバリー作業も早くすることができるため、AWS操作ログはトラブルシューティングに役に立ちます。
コスト管理
AWSには様々なサービスがありますが、それに応じて料金体系についても多彩です。
格納するデータの量に応じて金額が多くなるサービスもあれば、データへのアクセス回数によって料金が多くなるサービスもあります。
どちらのパターンにせよ、ITリソースを不適切に扱うことでセキュリティに支障をきたすだけでなく、無駄なコストを生じさせる場合もあります。
AWSの操作ログを確認することで、無駄に大きなデータを格納していないか、無駄に多くデータにアクセスしていないかを調べることで、無駄なコストを生じさせているプログラムがないかを明確にし、修正することができるようになります。
無駄なく目的に沿ったプログラム言語の選択について以下の記事も参考になります。
AWS操作ログの注意点
AWS操作ログは非常に便利なツールではあるものの、使用にあたって注意点も複数あります。
AWSはクラウド形式のサーバのサービスで、ハードウェアを目にする機会も殆ど無いため、物理的な制約は想像しにくいです。
しかし、クラウドであってもハードウェアを基にしている点はオンプレミスと変わらないため、物理的な制約はあります。
具体的には、使用期間や料金、格納可能なデータ量などの制限があります。
ログの保存期間は永久じゃない
Cloud Trailで保存されるログの保存期間は90日間となっており、90日以上経過したログは削除される仕組みになっています。
90日以上ログを保存したい場合はローカルのハードウェアか、もしくは同じくAWSのサービスであるS3などの他の場所に移さなければなりません。
それに応じて、自社の既存の業務フローや業務規定も見直しが必要です。
前述した様な、不正なプログラムを埋め込まれ時間が経ってから危害を加えるようなアクシデントが発生した場合、その発生までの期間が90日以上だと原因の究明ができなくなってしまいます。
その結果、自社のビジネスに大きな影響を与えてしまいます。
ログの量は無限じゃない
AWS操作ログを使用する際は、保存されたログの量にも注意が必要です。
AWS上にあるシステムが動いている限り、AWS操作ログも無制限に出力されます。
自社でシステム開発を行っている場合は、開発用の環境と、一般公開用の環境、合計2つ以上の環境を持っていることが殆どであるため、ログの総量は膨大になります。
特に開発用の環境ではテストなども行われ、ログの量も多くなるため、気を配る必要があります。
前述したS3は格納されたデータの量によって料金が加算されていくため、何の対策も施さなければログが無尽蔵に排出・保存され、それに応じてコストも雪だるま式に増えていきます。
さらに、最悪の場合は空き容量が無くなってシステムが動かなくなります。
無料枠を超えると有料になる
AWS Cloud Trailの料金体系には無料枠が存在していますが、その枠組みを超えてしまうと有料となってしまいます。
使用日数などによって、無料から有料に代わるため、予算を組む際には注意が必要です。
企業は経営に秩序を持たせるためにも、予め決められた枠組みの予算の中で支出をやりくりする必要があります。
これは資金が潤沢な大企業でさえそうですし、経営規模が小さな中小企業やスタートアップの企業であれば猶更のことです。
また、有料になった場合に料金の支払いも滞りなく行うためにも、使用可能なクレジットカードの会社や銀行についても、事前に把握しておく必要があります。
ログの暗号化を検討する
CloudTrailで記録される操作ログには、重要な情報が含まれているため、適切な暗号化を検討しましょう。
特に、機密性の高いデータや内部の操作履歴が含まれる場合、暗号化によって第三者からの不正アクセスに対するセキュリティを強化できます。
CloudTrailでは、AWS Key Management Service(KMS)を利用してログの暗号化が可能です。
KMSを利用することで、暗号鍵の管理やアクセス制御も一元化でき、セキュリティポリシーに沿った運用が容易になります。
ログの暗号化は企業セキュリティ対策として必須の検討事項です。
まとめ:AWS操作ログ活用で得られるビジネスメリット
この記事で書いたように、AWS操作ログはログの保存期間や容量などには注意が必要である一方、上手く使用することでセキュリティやコストに関連した業務の効率良く進めることができます。
ただ、上手く使用するためには相応の知識や経験が必要になってきます。
初期設定やログの確認は慣れていないと少し難しいですが、セキュリティやコストの問題が起きてからでは手遅れな場合が多いです。
仮にCloudTrailのログなしで調査ができたとしても、そのための調査コストは大きくなるでしょう。
それを防ぎ、効率良い運用をするためにはCloudTrailの活用がおすすめです。
AWSは公式で大量のドキュメントがあり、調べれば解決できることは多いですが、大量が故にそこに辿り着くまでに大変という一面もあります。
もしAWS操作ログでお困りの際は株式会社Jiteraに一度ご相談ください。
豊富な実績からあなたに最適なアドバイスを提供いたします。