Amazon CloudWatch
ユーザーガイド

AWS CloudTrail での Amazon CloudWatch API 呼び出しのログ作成

AWS CloudTrail は、AWS アカウントによって、または AWS アカウントの代わりに行われた API 呼び出しをキャプチャするサービスです。この情報が集められ、指定した Amazon S3 バケットに保存されるログファイルに書き込まれます。API 呼び出しは、API、コンソール、または AWS CLI を使用するたびに記録されます。CloudTrail によって収集された情報を使用して、どのようなリクエストが行われたかを判断することができます。リクエストの作成元のソース IP アドレス、リクエストの実行者、リクエストの実行日時などです。

設定して有効化する方法など、CloudTrail の詳細については、AWS CloudTrail User Guideの「AWS CloudTrail とは」を参照してください。

CloudTrail 内の CloudWatch 情報

CloudTrail ログ記録をオンにすると、API アクションに対して行われた呼び出しが、ログファイルにキャプチャされます。各ログファイルエントリには、誰がリクエストを生成したかに関する情報が含まれます。たとえば、CloudWatch アラーム(PutMetricAlarm)の作成または更新のリクエストが行われた場合、CloudTrail は、リクエストした人またはサービスのユーザー ID をログに記録します。

ログエントリのユーザー ID 情報は、次のことを確認するのに役立ちます。

  • リクエストが、ルートと IAM ユーザー認証情報のどちらを使用して送信されたか

  • リクエストが、ロールとフェデレーティッドユーザーのどちらの一時的なセキュリティ認証情報を使用して送信されたか

  • リクエストが、別の AWS サービスによって送信されたかどうか

詳細については、AWS CloudTrail User Guideの「CloudTrail userIdentity 要素」を参照してください。

必要な場合はログファイルを自身のバケットに保管できますが、ログファイルを自動的にアーカイブまたは削除するにように Amazon S3 ライフサイクルルールを定義することもできます。デフォルトでは Amazon S3 のサーバー側の暗号化 (SSE) を使用して、ログファイルが暗号化されます。

ログファイルの配信時に通知を受け取る場合、新しいログファイルの配信時に Amazon SNS 通知が発行されるように CloudTrail を設定できます。詳細については、AWS CloudTrail User Guideの「CloudTrail 用の Amazon SNS 通知の設定」を参照してください。

また、複数の AWS リージョンと複数の AWS アカウントからの Amazon CloudWatch Logs ログファイルを 1 つの Amazon S3 バケットに集約することもできます。詳細については、AWS CloudTrail User Guideの「Receiving CloudTrail Log Files from Multiple Regions」と「Receiving CloudTrail Log Files from Multiple Accounts」を参照してください。

ログ記録をオンにすると、次の API アクションが CloudTrail に書き込まれます。

CloudWatch

  • DeleteAlarms

  • DescribeAlarmHistory

  • DescribeAlarms

  • DescribeAlarmsForMetric

  • DisableAlarmActions

  • EnableAlarmActions

  • PutMetricAlarm

  • SetAlarmState

CloudWatch GetMetricStatisticsListMetrics、および PutMetricData API アクションは、サポートされていません。これらのすべてのアクションの詳細については、Amazon CloudWatch API リファレンスを参照してください。

CloudWatch イベント

  • DeleteRule

  • DescribeRule

  • DisableRule

  • EnableRule

  • ListRuleNamesByTarget

  • ListRules

  • ListTargetsByRule

  • PutRule

  • PutTargets

  • RemoveTargets

  • TestEventPattern

これらのアクションの詳細については、Amazon CloudWatch Events API リファレンスを参照してください。

CloudWatch Logs これらの API アクションの場合、リクエスト要素とレスポンス要素が記録されます。

  • CancelExportTask

  • CreateExportTask

  • CreateLogGroup

  • CreateLogStream

  • DeleteDestination

  • DeleteLogGroup

  • DeleteLogStream

  • DeleteMetricFilter

  • DeleteRetentionPolicy

  • DeleteSubscriptionFilter

  • PutDestination

  • PutDestinationPolicy

  • PutMetricFilter

  • PutRetentionPolicy

  • PutSubscriptionFilter

  • TestMetricFilter

次の API アクションの場合、リクエスト要素のみが記録されます。

  • DescribeDestinations

  • DescribeExportTasks

  • DescribeLogGroups

  • DescribeLogStreams

  • DescribeMetricFilters

  • DescribeSubscriptionFilters

CloudWatch Logs GetLogEventsPutLogEvents、および FilterLogEvents API アクションは、サポートされていません。これらのアクションの詳細については、Amazon CloudWatch Logs API Referenceを参照してください。

ログファイルエントリの概要

CloudTrail ログファイルには、複数の JSON 形式イベントがリストされる 1 つ以上のログエントリを記録できます。ログエントリは任意の送信元からの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメーターなどに関する情報が含まれます。ログエントリは、パブリック API 呼び出しの順序付けられたスタックトレースではないため、特定の順序では表示されません。すべての API アクションのログファイルエントリは以下の例のようになります。

以下のログファイルエントリは、ユーザーが PutMetricAlarm という CloudWatch アクションを呼び出したことを示します。

{ "Records": [{ "eventVersion": "1.01", "userIdentity": { "type": "Root", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:root", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID" }, "eventTime": "2014-03-23T21:50:34Z", "eventSource": "monitoring.amazonaws.com", "eventName": "PutMetricAlarm", "awsRegion": "us-east-1", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-sdk-ruby2/2.0.0.rc4 ruby/1.9.3 x86_64-linux Seahorse/0.1.0", "requestParameters": { "threshold": 50.0, "period": 60, "metricName": "CloudTrail Test", "evaluationPeriods": 3, "comparisonOperator": "GreaterThanThreshold", "namespace": "AWS/CloudWatch", "alarmName": "CloudTrail Test Alarm", "statistic": "Sum" }, "responseElements": null, "requestID": "29184022-b2d5-11e3-a63d-9b463e6d0ff0", "eventID": "b096d5b7-dcf2-4399-998b-5a53eca76a27" }, ..additional entries ] }

以下のログファイルエントリは、ユーザーが CloudWatch イベント PutRule アクションを呼び出したことを示します。

{ "eventVersion":"1.03", "userIdentity":{ "type":"Root", "principalId":"123456789012", "arn":"arn:aws:iam::123456789012:root", "accountId":"123456789012", "accessKeyId":"AKIAIOSFODNN7EXAMPLE", "sessionContext":{ "attributes":{ "mfaAuthenticated":"false", "creationDate":"2015-11-17T23:56:15Z" } } }, "eventTime":"2015-11-18T00:11:28Z", "eventSource":"events.amazonaws.com", "eventName":"PutRule", "awsRegion":"us-east-1", "sourceIPAddress":"AWS Internal", "userAgent":"AWS CloudWatch Console", "requestParameters":{ "description":"", "name":"cttest2", "state":"ENABLED", "eventPattern":"{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}", "scheduleExpression":"" }, "responseElements":{ "ruleArn":"arn:aws:events:us-east-1:123456789012:rule/cttest2" }, "requestID":"e9caf887-8d88-11e5-a331-3332aa445952", "eventID":"49d14f36-6450-44a5-a501-b0fdcdfaeb98", "eventType":"AwsApiCall", "apiVersion":"2015-10-07", "recipientAccountId":"123456789012" }

以下のログファイルエントリは、ユーザーが CloudWatch Logs CreateExportTask アクションを呼び出したことを示します。

{ "eventVersion": "1.03", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/someuser", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "someuser" }, "eventTime": "2016-02-08T06:35:14Z", "eventSource": "logs.amazonaws.com", "eventName": "CreateExportTask", "awsRegion": "us-east-1", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-sdk-ruby2/2.0.0.rc4 ruby/1.9.3 x86_64-linux Seahorse/0.1.0", "requestParameters": { "destination": "yourdestination", "logGroupName": "yourloggroup", "to": 123456789012, "from": 0, "taskName": "yourtask" }, "responseElements": { "taskId": "15e5e534-9548-44ab-a221-64d9d2b27b9b" }, "requestID": "1cd74c1c-ce2e-12e6-99a9-8dbb26bd06c9", "eventID": "fd072859-bd7c-4865-9e76-8e364e89307c", "eventType": "AwsApiCall", "apiVersion": "20140328", "recipientAccountId": "123456789012" }