CloudTrailは、AWSクラウドでのユーザーアクティビティとAPIの使用状況を追跡するために使用されるサービスです。 AWSアカウントの監査とガバナンスを可能にします。これを使用すると、AWSアカウントで何が起こっているかを監視し、継続的に監視できます。リソースの変更を追跡するイベント履歴を提供します。 S3ですべてのイベントのロギングを有効にして、AthenaやCloudwatchなどの別のサービスを分析することもできます。
このチュートリアルでは、AWSアカウントのイベント履歴を確認します。また、「トレイル」を作成してイベントをS3に保存し、Cloudwatchを使用して分析します。
イベント履歴
すべての読み取り/書き込み管理イベントは、イベント履歴によってログに記録されます。過去90日間の最近のAWSアカウントアクティビティを表示、フィルタリング、ダウンロードできます。何も設定する必要はありません。
AWSコンソールの使用
サービス「CloudTrail」に移動し、ダッシュボードをクリックします。イベント名、時間、ソースを確認できます。 [イベント履歴全体を表示]をクリックすると、すべてのイベントを取得できます。
イベント履歴の詳細ページで、選択に応じてフィルターを適用できます。すべてのイベントを表示するには、上記のように読み取り専用とfalseを使用します。
AWSCLIの使用
AWSCLIを使用してイベントを確認することもできます。次のコマンドは、アカウントの終了インスタンスを表示します。
# aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=TerminateInstances
トレイル
それでは、アカウントのすべてのイベントをログに記録し、それらをS3バケットに保存する証跡を作成しましょう。
左側で[トレイル]を選択し、[トレイルの作成]をクリックします
次のページで、トレイル名を付け、新しいS3バケットを作成することを選択し、バケット名を付けます。 (すでにバケットがある場合は、既存のs3バケットを選択することもできます)
ページを下にスクロールして、CloudWatchLogsを有効にします。ロググループを作成し、名前を付けます。また、IAMロールを割り当て、名前を付けます。次に、[次へ]をクリックします。
すべてのタイプのイベントをログに記録する場合は、[イベントタイプ]セクションの下の[オプションの選択]をクリックします。管理イベントを行っています。だから、次へをクリックしてください。
次に、構成を確認して、[トレイルの作成]をクリックします。
次のAWSコマンドを使用して、作成されたトレイルのリストを表示することもできます。
# aws cloudtrail list-trails
次のコマンドを使用して、上記で作成したトレイルのすべてのイベントを表示します。
# aws cloudtrail describe-trails --trail-name-list management-events
Cloudwatchでログを分析する
CloudTrailの作成中に、ログをCloudwatchに送信するように定義しました。そのため、Cloudwatchサービスに移動し、「ロググループ」をクリックします。
デフォルトでは、ログは無期限に保持され、期限切れになることはありません。ここでは、フィルターを適用して目的の出力を取得することもできます。たとえば、AWSアカウントで実行中のすべてのインスタンスを確認します。これを行うには、以下に示すようにフィルター「RunInstances」を使用します。出力はJSON形式で表示されます。
CLIを使用して、すべてのログイベントを取得することもできます。次のコマンドを実行して、上記で定義したロググループのすべてのイベントを取得します。
# aws logs filter-log-events --log-group-name aws-cloudtrail-logs-20201229
この記事では、CloudTrailを使用してAWSアカウントのアクティビティを監査および検索する方法について説明します。読んでいただきありがとうございます。
また読む : AWSインスタンス(EC2)でEBSボリュームを作成および追加する方法