を使用した Lambda API コールのログ記録 CloudTrail - AWS Lambda

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

を使用した Lambda API コールのログ記録 CloudTrail

Lambda はAWS CloudTrail、Lambda. CloudTrail captures のユーザー、ロール、または AWSのサービスによって実行されたアクションをイベントとして記録するサービスである と統合されています。キャプチャされた呼び出しには、Lambda コンソールの呼び出しと、Lambda API 操作へのコード呼び出しが含まれます。証跡を作成する場合は、Lambda の CloudTrail イベントなど、Amazon Simple Storage Service (Amazon S3) バケットへのイベントの継続的な配信を有効にすることができます。証跡を設定しない場合でも、コンソールのイベント履歴 で最新の CloudTrail イベントを表示できます。 で収集された情報を使用して CloudTrail、Lambda に対するリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエスト日時などの詳細を確認できます。

設定および有効化の方法など CloudTrail、 の詳細については、AWS CloudTrail「 ユーザーガイド」を参照してください。

の Lambda 情報 CloudTrail

CloudTrail AWSアカウントを作成すると、 がアカウントで有効になります。Lambda でサポートされているイベントアクティビティが発生すると、そのアクティビティは CloudTrail イベント履歴 の他のAWSサービスイベントとともにイベントに記録されます。AWS アカウントで最近のイベントを表示、検索、ダウンロードできます。詳細については、「 AWS CloudTrailユーザーガイド」の「イベント履歴を含む CloudTrail イベントの表示」を参照してください。

Lambda のイベントなど、AWS アカウント内のイベントを継続的に記録するには、証跡を作成します。証跡により、 はログファイル CloudTrail を Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成するときに、証跡がすべての AWS リージョンに適用されます。証跡では、AWS パーティションのすべてのリージョンからのイベントがログに記録され、指定した S3 バケットにログファイルが配信されます。さらに、 CloudTrail ログで収集されたデータをより詳細に分析し、それに基づく対応を行うように他の AWSサービスを設定できます。

詳細については、『AWS CloudTrail ユーザーガイド:』の以下のトピックを参照してください。

各ログエントリには、リクエストの生成者に関する情報が含まれます。ログ内のユーザー ID 情報は、リクエストがユーザーの認証情報、ロールまたはフェデレーションユーザーの一時的なセキュリティ認証情報、または別の AWS サービスのどれを使用して行われたのかを確認するために役立ちます。詳細については、「CloudTrail イベントリファレンス」の [userIdentity] フィールドを参照してください。

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

ログファイルの配信時にすぐにアクションを実行したい場合は、新しいログファイルが配信されたときに が Amazon Simple Notification Service (Amazon SNS) 通知 CloudTrail を発行するように選択できます。詳細については、「Configuring Amazon SNS Notifications for CloudTrail」を参照してください。

また、複数のリージョンと複数の AWS アカウントからの Lambda ログファイルを単一の S3 バケットに集約することも可能です。詳細については、「 CloudTrail ログファイルの操作」を参照してください。

サポートされる Lambda API アクションのリスト

Lambda は、以下のアクションをイベントとして CloudTrail ログファイルに記録することをサポートしています。

注記

CloudTrail ログファイルでは、 に日付とバージョン情報が含まれているeventName場合がありますが、同じパブリック API アクションを指しています。例えば、 GetFunctionアクションは と表示されますGetFunction20150331v2。次のリストは、イベント名が API アクション名と異なるタイミングを指定します。

Lambda のログファイルエントリを理解する

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

次の例は、 GetFunctionおよび DeleteFunctionアクションの CloudTrail ログエントリを示しています。

注記

eventNameには、"GetFunction20150331"のような日付やバージョン情報が含まれることがありますが、同じ公開 API を指しています。

{ "Records": [ { "eventVersion": "1.03", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::999999999999:user/myUserName", "accountId": "999999999999", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "myUserName" }, "eventTime": "2015-03-18T19:03:36Z", "eventSource": "lambda.amazonaws.com", "eventName": "GetFunction", "awsRegion": "us-east-1", "sourceIPAddress": "127.0.0.1", "userAgent": "Python-httplib2/0.8 (gzip)", "errorCode": "AccessDenied", "errorMessage": "User: arn:aws:iam::999999999999:user/myUserName is not authorized to perform: lambda:GetFunction on resource: arn:aws:lambda:us-west-2:999999999999:function:other-acct-function", "requestParameters": null, "responseElements": null, "requestID": "7aebcd0f-cda1-11e4-aaa2-e356da31e4ff", "eventID": "e92a3e85-8ecd-4d23-8074-843aabfe89bf", "eventType": "AwsApiCall", "recipientAccountId": "999999999999" }, { "eventVersion": "1.03", "userIdentity": { "type": "IAMUser", "principalId": "A1B2C3D4E5F6G7EXAMPLE", "arn": "arn:aws:iam::999999999999:user/myUserName", "accountId": "999999999999", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "myUserName" }, "eventTime": "2015-03-18T19:04:42Z", "eventSource": "lambda.amazonaws.com", "eventName": "DeleteFunction20150331", "awsRegion": "us-east-1", "sourceIPAddress": "127.0.0.1", "userAgent": "Python-httplib2/0.8 (gzip)", "requestParameters": { "functionName": "basic-node-task" }, "responseElements": null, "requestID": "a2198ecc-cda1-11e4-aaa2-e356da31e4ff", "eventID": "20b84ce5-730f-482e-b2b2-e8fcc87ceb22", "eventType": "AwsApiCall", "recipientAccountId": "999999999999" } ] }

CloudTrail を使用して関数の呼び出しを追跡する

CloudTrail はデータイベントも記録します。Lambda 関数が呼び出されるたびにイベントをログに記録するように、データイベントのログ記録を有効にすることができます。この機能は、関数の呼び出し元の ID とその呼び出しの頻度を把握するのに役立ちます。このオプションの詳細については、「証跡のデータイベントのログ記録」を参照してください。

注記

CloudTrail は、認証済みおよび承認されたリクエストのみを記録します。 CloudTrail does は、認証に失敗したリクエスト (認証情報がないか、提供された認証情報が無効)、または関数の呼び出しが許可されていない認証情報を持つリクエストをログに記録しません。

を使用した無効なイベントソース CloudTrail のトラブルシューティング

発生する可能性のあるデータイベントの 1 つは、LambdaESMDisabled イベントです。このイベントに関連するエラーには、次の 5 つの一般的なカテゴリがあります。

RESOURCE_NOT_FOUND

リクエストで指定されたリソースは存在しません。

FUNCTION_NOT_FOUND

イベントソースにアタッチされている関数が存在しません。

REGION_NAME_NOT_VALID

イベントソースまたは関数に指定されたリージョン名が無効です。

AUTHORIZATION_ERROR

アクセス許可が設定されていないか、正しく設定されていません。

FUNCTION_IN_FAILED_STATE

関数コードがコンパイルされない、回復不能な例外が発生した、または不正なデプロイが発生しました。

これらのエラーは、serviceEventDetailsエンティティ内の CloudTrail イベントメッセージに含まれます。

serviceEventDetails エンティティ
"serviceEventDetails":{ "ESMDisableReason":"Lambda Function not found" }