AWS Lambda の AWS CloudTrail との併用 - AWS Lambda

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Lambda の AWS CloudTrail との併用

AWS CloudTrailは、ユーザーやロール、AWSサービスによって実行されたアクションを記録するサービスです。CloudTrail は、API コールをイベントとしてキャプチャします。AWS アカウントのイベントの継続的な記録については、証跡を作成します。追跡により、CloudTrail はイベントのログファイルを Amazon S3 バケットに配信できます。

Amazon S3 のバケット通知機能を利用して、Amazon S3 にオブジェクト作成イベントを AWS Lambda に発行するよう指示します。CloudTrail が S3 バケットにログを書き込むごとに、Amazon S3 は、Amazon S3 のオブジェクト作成イベントをパラメーターとして渡すことで、Lambda 関数を呼び出すことができます。その S3 イベントでは、CloudTrail で作成されたログオブジェクトのバケット名とキー名などの情報が提供されます。Lambda 関数のコードで、ログオブジェクトを読み取り、CloudTrail でログ記録されたアクセスレコードを処理できます。例えば、アカウントで特定の API コールが行われた場合に通知するための Lambda 関数のコードを記述できます。

このシナリオでは、CloudTrail によって S3 バケットにアクセスログが書き込まれます。AWS Lambda については Amazon S3 がイベントソースであるため、Amazon S3 が AWS Lambda にイベントを発行して Lambda 関数を呼び出します。

例 CloudTrail ログ
{ "Records":[ { "eventVersion":"1.02", "userIdentity":{ "type":"Root", "principalId":"123456789012", "arn":"arn:aws:iam::123456789012:root", "accountId":"123456789012", "accessKeyId":"access-key-id", "sessionContext":{ "attributes":{ "mfaAuthenticated":"false", "creationDate":"2015-01-24T22:41:54Z" } } }, "eventTime":"2015-01-24T23:26:50Z", "eventSource":"sns.amazonaws.com", "eventName":"CreateTopic", "awsRegion":"us-east-2", "sourceIPAddress":"205.251.233.176", "userAgent":"console.amazonaws.com", "requestParameters":{ "name":"dropmeplease" }, "responseElements":{ "topicArn":"arn:aws:sns:us-east-2:123456789012:exampletopic" }, "requestID":"3fdb7834-9079-557e-8ef2-350abc03536b", "eventID":"17b46459-dada-4278-b8e2-5a4ca9ff1a9c", "eventType":"AwsApiCall", "recipientAccountId":"123456789012" }, { "eventVersion":"1.02", "userIdentity":{ "type":"Root", "principalId":"123456789012", "arn":"arn:aws:iam::123456789012:root", "accountId":"123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext":{ "attributes":{ "mfaAuthenticated":"false", "creationDate":"2015-01-24T22:41:54Z" } } }, "eventTime":"2015-01-24T23:27:02Z", "eventSource":"sns.amazonaws.com", "eventName":"GetTopicAttributes", "awsRegion":"us-east-2", "sourceIPAddress":"205.251.233.176", "userAgent":"console.amazonaws.com", "requestParameters":{ "topicArn":"arn:aws:sns:us-east-2:123456789012:exampletopic" }, "responseElements":null, "requestID":"4a0388f7-a0af-5df9-9587-c5c98c29cbec", "eventID":"ec5bb073-8fa1-4d45-b03c-f07b9fc9ea18", "eventType":"AwsApiCall", "recipientAccountId":"123456789012" } ] }

Amazon S3 をイベントソースとして設定する方法の詳細については、Amazon S3 での AWS Lambda の使用 を参照してください。