AWS CloudTrail の開始方法のチュートリアル
AWS CloudTrail を初めて使用するお客様向けに、このチュートリアルでは、その機能の使用方法について説明します。このチュートリアルでは、CloudTrail コンソールで、最新の AWS アカウントのアクティビティを確認し、イベントについて調べます。次に証跡を作成します。これは、Amazon S3 バケットに保存されている管理イベントアクティビティの継続的な記録です。イベント履歴とは異なり、この継続的な記録は 90 日間に限定されるわけではありませんが、すべての AWS リージョンでイベントを記録します。また、長期にわたってセキュリティおよび監査のニーズを満たすのに役立ちます。
前提条件
開始する前に、以下の前提条件と設定を完了する必要があります。
-
まだ持っていない場合は、AWS アカウントを作成してください。
AWS アカウント をお持ちでない場合は、以下の手順を実行してアカウントを作成してください。
AWS アカウント にサインアップするには
オンラインの手順に従います。
サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて確認コードを入力するように求められます。
-
CloudTrail を管理するための IAM ユーザーを作成します。詳細については、「CloudTrail 管理のためのアクセス許可の付与」を参照してください。
ステップ 1: イベント履歴で AWS アカウントのアクティビティを確認する
CloudTrailは、アカウントを作成すると AWS アカウントで有効になります。CloudTrail をサポートする AWS サービスでアクティビティが発生すると、そのアクティビティは [イベント履歴] の AWS の他のサービスのイベントとともに CloudTrail イベントに記録されます。つまり、証跡を作成する前に AWS アカウントの最近のイベントを表示、検索、およびダウンロードできますが、証跡を作成することは長期的な記録と AWS アカウントアクティビティの監査にとって重要です。証跡とは異なり、イベント履歴には、過去 90 日間に発生したイベントのみが表示されます。
-
CloudTrail 管理用に設定した IAM ユーザーを使用して AWS Management Console にサインインします。CloudTrail コンソールを開きます (https://console.aws.amazon.com/cloudtrail/home/
)。 -
AWS アカウントで発生した最新のイベントに関するダッシュボードの情報を確認します。最近のイベントは、
ConsoleLogin
イベントになっているはずで、これは、AWS Management Console にサインインしたことを示します。 -
イベントの詳細を表示するには、これを展開します。
-
ナビゲーションペインで [Event history (イベント履歴)] を選択します。最新のイベントが最初に表示された、フィルタリングされたイベントのリストが表示されます。イベントのデフォルトのフィルターは読み取り専用で、[false] に設定されています。このフィルターをクリアするには、フィルターの右側にある [X] をクリックします。
-
デフォルトのフィルターなしでさらに多くのイベントが表示されます。多くの方法でイベントをフィルタリングすることができます。たとえば、すべてのコンソールログインイベントを表示するには、[Event name (イベント名)] を選択して、[ConsoleLogin] を指定します。フィルターはユーザーが選択できます。
-
イベント履歴を保存するには、CSV または JSON 形式のファイルとしてダウンロードします。イベント履歴のダウンロードには数分かかることがあります。
詳細については、「CloudTrail Event 履歴でのイベントの表示」を参照してください。
ステップ 2: 最初の証跡を作成する
CloudTrail コンソールの [イベント履歴] に表示されるイベントは最近のアクティビティを確認するのに役立ちますが、それらは最近のアクティビティに限定されており、CloudTrail によって記録される可能性のあるすべてのイベントは含まれていません。さらに、コンソールのイベントの表示は、サインインしている AWS リージョンに限定されています。AWSアカウントにすべての AWS リージョンの情報をキャプチャする継続的なアクティビティ記録を作成するには、証跡を作成します。デフォルトでは、CloudTrail コンソールで作成した証跡が、すべてのリージョンのイベントをログに記録します。アカウント内のすべてのリージョンでイベントをログに記録することをベストプラクティスとしてお勧めします。
最初の証跡では、すべての AWS リージョンのすべての管理イベントを記録し、データイベントはログに記録しない証跡を作成することをお勧めします。管理イベントの例には、IAM CreateUser
や AttachRolePolicy
イベントなどのセキュリティイベント、RunInstances
や CreateBucket
などのリソースイベントが含まれています。CloudTrail コンソールで証跡を作成する一部として、証跡のログファイルを保存する Amazon S3 バケットを作成します。
このチュートリアルでは、最初の証跡を作成することを前提としています。AWS アカウントにある証跡の数、およびそれらの証跡の設定方法に応じて、次の手順で費用が発生する場合と発生しない場合があります。CloudTrail はログファイルを Amazon S3 バケットに格納します。これには料金が発生します。料金の詳細については、「AWS CloudTrail の料金
-
CloudTrail 管理用に設定した IAM ユーザーを使用して AWS Management Console にサインインします。CloudTrail コンソールを開きます (https://console.aws.amazon.com/cloudtrail/home/
)。[Region (リージョン)] セレクタで、証跡を作成する AWS リージョンを選択します。これは、証跡のホームリージョン です。 注記 証跡がすべての AWS リージョンのイベントを記録している場合でも、ホームリージョンは、作成後にトレイルを表示および更新できる唯一の AWS リージョンです。
-
CloudTrail サービスのホームページでは、[証跡] ページ、または [ダッシュボード] ページの [証跡] セクションで、[証跡の作成] を選択します。
-
[Trail name (証跡名)] で、証跡に
My-Management-Events-Trail
などの名前を付けます。ベストプラクティスとして、証跡の目的をすぐに識別できる名前を使用します。この場合、管理イベントをログに記録する証跡を作成しています。 -
AWS Organizations 組織の証跡は、デフォルトの設定のままにしておきます。このオプションは、Organizations でアカウントを設定しない限り、変更できません。
-
[ストレージの場所] で、[新しい S3 バケットを作成する] を選択すると、新しいバケットが作成されます。新しいバケットを作成すると、CloudTrail によって必要なバケットポリシーが作成され、適用されます。バケットに
my-bucket-for-storing-cloudtrail-logs
などの名前を付けます。ログを見つけやすくするために、新しいフォルダ (プレフィックスとも呼ばれます) を既存のバケットに作成して CloudTrail ログを保存します。プレフィックスを [プレフィックス] に入力します。
注記 Amazon S3 バケットの名前はグローバルで一意であることが必要です。詳細については、「Amazon S3 バケットの命名要件」を参照してください。
-
[ログファイル SSE-KMS 暗号化] を無効にするには、このチェックボックスをオフにします。デフォルトでは、SSE-S3 の暗号化を使用して、ログファイルが暗号化されます。この設定の詳細については、「Amazon S3 で管理された暗号化キーによるサーバー側の暗号化 (SSE-S3) を使用したデータの保護」を参照してください。
-
[Additional settings] はデフォルト設定のままにします。
-
ここでは、Amazon CloudWatch Logs にログを送信しないでください。
-
[タグ] で、1 つまたは複数のカスタムタグ (キーと値のペア) を証跡に追加します。タグは、CloudTrail ログファイルを含む Amazon S3 バケットなど、CloudTrail 証跡やその他のリソースを識別するのに役立ちます。例えば、
Compliance
という名前のAuditing
という値のタグをアタッチできます。注記 CloudTrail コンソールで証跡を作成するときにタグを追加でき、Amazon S3 バケットを作成して CloudTrail コンソールにログファイルを保存できますが、CloudTrail コンソールから Amazon S3 バケットにタグを追加することはできません。バケットへのタグの追加など、Amazon S3 バケットのプロパティの表示と変更の詳細については、「Amazon S3 ユーザーガイド」を参照してください。
タグの作成が完了したら、[Next] をクリックします。
-
[Choose log events] ページで、ログに記録するイベントタイプを選択します。この証跡では、[管理イベント] はそのままにしておきます。[管理イベント] 領域で、[読み取り] および [書き込み] イベントの両方をログに記録することをまだ選択していない場合は、選択します。[Exclude AWS KMS events] のおよび [Exclude Amazon RDS Data API events] のチェックボックスはオフのままにし、すべてのイベントを記録します。
-
[データイベント] および Insights イベントの設定はデフォルトのままにしておきます。この証跡は、データや CloudTrail Insights イベントを記録しません。[Next (次へ)] を選択します。
-
[確認と作成] ページで、詳細用に選択した設定を確認します。戻って変更するには、セクションの [Edit] を選クリックします。証跡を作成する準備ができたら、[Create trail] を選択します。
-
[証跡] ページには、新しい証跡がテーブルに表示されます。トレイルはマルチリージョン証跡に設定され、ログ記録はデフォルトで有効になっています。
ステップ 3: ログファイルの表示
最初の証跡を作成してから平均で約 15 分以内に、CloudTrail は最初のログファイルのセットを証跡の Amazon S3 バケットに配信します。これらのファイルを確認して、含まれる情報についての情報取得などを行えます。
CloudTrail は、通常、API コールから平均 15 分以内にログを配信します。この時間は保証されません。詳細については、「AWS CloudTrail サービスレベルアグリーメント
-
ナビゲーションペインで、[Trails (証跡)] を選択します。[証跡] ページで、先ほど作成した証跡の名前を探します (例では、
My-Management-Events-Trail
)。注記 CloudTrail 管理用に設定した IAM ユーザーを使用してサインインしていることを再度確認してください。それ以外の場合は、CloudTrail コンソールまたはその証跡のログファイルを含む Amazon S3 バケットに証跡を表示するための十分なアクセス許可がない可能性があります。
-
その証跡の行で、S3 バケットの値を選択します (この例では、
aws-cloudtrail-logs-08132020-mytrail
)。 -
Amazon S3 コンソールが開き、ログファイルの最上位レベルにそのバケットが表示されます。すべての AWS リージョンでイベントをログに記録する証跡を作成したため、各リージョンのフォルダを表示するレベルでディスプレイが開きます。このレベルでの Amazon S3 バケットナビゲーションの階層は、
bucket-name
/AWSLogs/account-id
/CloudTrail です。ログファイルを確認する AWS リージョンのフォルダを選択します。例えば、米国東部 (オハイオ) リージョンのログファイルを確認する場合は、[us-east-2] を選択します。 -
バケットフォルダ構造を、そのリージョンのアクティビティのログを確認する年、月、日に移動します その日には、多数のファイルがあります。ファイルの名前は、AWS アカウント ID で始まり、拡張子
.gz
で終わります。例えば、アカウント ID が123456789012
の場合、ファイル名は123456789012
_CloudTrail_us-east-2
_20190610T1255abcdeEXAMPLE
.json.gz のようになります。これらのファイルを表示するには、ダウンロードして、解凍し、プレーンテキストエディタか JSON ビューアーで表示します。ブラウザによっては、.gz および JSON ファイルを直接表示することもできます。CloudTrail ログファイルの情報の解析が容易になるため、JSON ビューアーを使用することをお勧めします。
ファイルの内容を参照しようとして、表示されている内容について疑問に思う場合があるかもしれません。CloudTrail は、イベントが発生した時点の AWS リージョンのアクティビティを経験したすべての AWS サービスのイベントをログに記録します。つまり、さまざまな AWS サービスのイベントは、時間のみに基づいて混合されています。そのサービスに対する API コールのログファイルエントリの例など、特定の AWS サービスが CloudTrail で記録する内容の詳細については、「CloudTrail でサポートされているサービスのリスト」とそのサービスの CloudTrail 統合についてのトピックを参照してください。また、CloudTrail ログファイルの内容と構成の詳細については、「CloudTrail ログイベントリファレンス」を参照してください。
また 米国東部 (オハイオ) のログファイルに表示されていないものにも気付くでしょう。具体的には、コンソールにログインしたことがわかっていても、コンソールのサインインイベントは表示されません。これは、コンソールサインインと IIAM イベントがグローバルサービスイベントであり、通常特定の AWS リージョンに記録されているためです。この場合、それらは米国東部 (バージニア北部) に記録され、[us-east-1] フォルダにあります。そのフォルダを開き、興味のある年、月、日を開きます。ログファイルを閲覧して、次のような
ConsoleLogin
イベントを見つけます。{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:user/Mary_Major", "accountId": "123456789012", "userName": "Mary_Major" }, "eventTime": "2019-06-10T17:14:09Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.67", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0", "requestParameters": null, "responseElements": { "ConsoleLogin": "Success" }, "additionalEventData": { "LoginTo": "https://console.aws.amazon.com/console/home?state=hashArgs%23&isauthcode=true", "MobileVersion": "No", "MFAUsed": "No" }, "eventID": "2681fc29-EXAMPLE", "eventType": "AwsConsoleSignIn", "recipientAccountId": "123456789012" }
このログファイルのエントリで、ログインした IAM ユーザーのアイデンティティ (Mary_Major) だけではなく、ログインした日時、およびログインが成功しました。彼女がログインした IP アドレス、使用したコンピュータのオペレーティングシステムとブラウザソフトウェア、および彼女が多要素認証を使用していなかったことも確認できます。
ステップ 4: 次のステップの計画
証跡を使用して AWS アカウントのイベントとアクティビティの継続的な記録にアクセスできます。この継続的な記録は AWS アカウントのための会計と監査のニーズを満たすのに役立ちます。ただし、CloudTrail と CloudTrail データを使用してできることはもっとたくさんあります。
-
証跡データの追加のセキュリティを追加します。証跡を作成すると、CloudTrail は自動的に特定のレベルのセキュリティを適用します。ただし、データ安全性を確保するために実行できる追加のステップがあります。
-
デフォルトでは、証跡の作成の一部として作成した Amazon S3 バケットには、CloudTrail がそのバケットにログファイルを書き込むことを許可するポリシーが適用されています。バケットはパブリックアクセス可能ではありませんが、自分の AWS アカウントのバケットを読み書きするアクセス許可がある場合は、AWS アカウントの他のユーザーがアクセスできる可能性があります。バケットのポリシーを確認し、必要に応じて変更を加え、特定の IAM ユーザーセットへのアクセスを制限します。詳細については、「Amazon S3 セキュリティのドキュメント」と「バケットを保護するためのチュートリアルの例」を参照してください。
-
CloudTrail によってバケットに配信されるログファイルは、Amazon の Amazon S3 で管理された暗号化キーによるサーバー側の暗号化 (SSE-S3) によって暗号化されます。直接管理可能なセキュリティレイヤーを提供するには、代わりに CloudTrail ログファイルのAWS KMS によって管理されたキー (SSE-KMS) を使用したサーバー側の暗号化 を使用できます。CloudTrail で SSE-KMS を使用するには、AWS KMS key とも呼ばれる KMS キーを作成して管理します。詳細については、「AWS KMS で管理されたキー (SSE-KMS) による CloudTrail ログファイルの暗号化」を参照してください。
-
追加のセキュリティ計画については、CloudTrail のセキュリティのベストプラクティスを確認します。
-
-
データイベントをログに記録する証跡を作成します。オブジェクトが 1 つ以上の Amazon S3 バケットで追加、取得、削除されたとき、DynamoDB テーブルで項目が追加、変更または削除されたとき、または 1 つ以上の AWS Lambda 関数が呼び出されたときのロギングに興味がある場合は、これらはデータイベントです。このチュートリアルの前半で作成した管理イベント証跡では、これらのタイプのイベントを記録しません。 リソースとサポートされたリソースの一部または全部のデータイベントをログに記録するために、個別の証跡を作成できます。詳細については、「データイベント」を参照してください。
注記 データイベントのログ記録には追加料金が適用されます。詳細については、AWS CloudTrail 料金
を参照してください。 -
CloudTrail Insights イベントを証跡に記録します。 CloudTrail Insights は、CloudTrail 管理イベントを継続的に分析することで、 ユーザーが
write
API コールに関連する異常または異例のアクティビティを特定し、それに応答するのに役立ちます。CloudTrail Insights は、数学的モデルを使用して、アカウントの API およびサービスイベントアクティビティの通常のレベルを決定します。これは、通常のパターンの外にある動作を特定し、Insights イベントを生成し、これらのイベントを証跡に選択した送信先 S3 バケットの/CloudTrail-Insight
フォルダに配信します。CloudTrail Insights の詳細については、「証跡の Insights イベントの記録」を参照してください。注記 Insights イベントの記録には追加料金が適用されます。詳細については、AWS CloudTrail 料金
を参照してください。 -
特定のイベントが発生したときに警告するように CloudWatch Logs アラームをセットアップします。CloudWatch Logs を使用すると、CloudTrail によってキャプチャされた特定のイベントに関するアラートをモニタリングおよび受信できます。例えば、セキュリティグループの変更、失敗した AWS Management Console サインインイベント、IAM ポリシーの変更など、主要なセキュリティおよびネットワーク関連の管理イベントをモニタリングできます。詳細については、「Amazon CloudWatch Logs による CloudTrail ログファイルをモニタリングする」を参照してください。
-
分析ツールを使用して、CloudTrail ログの傾向を識別します。イベント履歴のフィルタは最近のアクティビティで特定のイベントまたはイベントタイプを見つけるのに役立ちますが、アクティビティをより長い期間にわたって検索する機能を提供しません。より深い、より詳細な分析には、Amazon Athena を使用できます。詳細については、Amazon Athena ユーザーガイドの「AWS CloudTrail ログのクエリ」を参照してください。