AWS CloudTrail を使用した Network Load Balancer での API 呼び出しのログ記録 - Elastic Load Balancing

AWS CloudTrail を使用した Network Load Balancer での API 呼び出しのログ記録

Elastic Load Balancing は、AWS CloudTrail と統合されています。これは、Elastic Load Balancing のユーザー、ロール、または AWS のサービスで実行されたアクションを記録するためのサービスです。CloudTrail は、Elastic Load Balancing のすべての API 呼び出しをイベントとしてキャプチャします。キャプチャされる呼び出しには、AWS Management Console からのものと、Elastic Load Balancing API オペレーションへのコード呼び出しが含まれます。証跡を作成すると、Elastic Load Balancing のイベントなどの CloudTrail イベントを、Amazon S3 バケットに対し継続的にデリバリーすることが可能になります。証跡を設定しない場合でも、CloudTrail コンソールの [Event history (イベント履歴)] で最新のイベントを表示できます。CloudTrail で収集された情報を使用して、Elastic Load Balancing に対するリクエスト、リクエスト送信元の IP アドレス、リクエストを作成したユーザー、リクエストの作成日時などの詳細を確認できます。

CloudTrail の詳細については、AWS CloudTrail ユーザーガイドを参照してください。

CloudTrail 内の Elastic Load Balancing に関する情報

CloudTrail は、アカウントを作成すると AWS アカウントで有効になります。Elastic Load Balancing でアクティビティが発生すると、そのアクティビティは、[Event history] (イベント履歴) にある他の AWS のサービスのイベントとともに、CloudTrail イベントに記録されます。最近のイベントは、AWS アカウントで表示、検索、ダウンロードできます。詳細については、CloudTrail イベント履歴でのイベントの表示を参照してください。

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

Network Load Balancer のすべての Elastic Load Balancing アクションは CloudTrail によってログに記録され、Elastic Load Balancing API リファレンスバージョン 2015-12-01 に記載されています。例えば、CreateLoadBalancer および DeleteLoadBalancer の各アクションを呼び出すと、CloudTrail ログファイルにエントリが生成されます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。この ID 情報は以下のことを確認するのに役立ちます。

  • リクエストが、root 認証情報と AWS Identity and Access Management (IAM) ユーザー認証情報のどちらを使用して送信されたか.

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

  • 要求が、別の AWS サービスによって送信されたかどうか。

詳細については、CloudTrail userIdentity エレメントを参照してください。

Elastic Load Balancing ログファイルのエントリの理解

証跡は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail ログファイルには、1 つ以上のログエントリがあります。イベントは任意の発生元からの 1 つのリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

ログファイルには、Elastic Load Balancing の API 呼び出しだけでなく、AWS アカウントでのすべての AWS API 呼び出しイベントが含まれます。値 eventSource を使用して elasticloadbalancing.amazonaws.com 要素を確認することで、Elastic Load Balancing API に対する呼び出しを見つけることができます。CreateLoadBalancer などの特定のアクションのレコードを表示するには、アクション名で eventName 要素を確認します。

以下は、Network Load Balancer を作成し、AWS CLI を使用して削除したユーザーの Elastic Load Balancing の CloudTrail ログレコードの例です。userAgent 要素を使用して CLI を特定できます。eventName 要素を使用して、リクエストされた API コールを特定できます。ユーザーに関する情報 (Alice) は userIdentity 要素で確認できます。

例: CreateLoadBalancer

{ "eventVersion": "1.03", "userIdentity": { "type": "IAMUser", "principalId": "123456789012", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "Alice" }, "eventTime": "2016-04-01T15:31:48Z", "eventSource": "elasticloadbalancing.amazonaws.com", "eventName": "CreateLoadBalancer", "awsRegion": "us-west-2", "sourceIPAddress": "198.51.100.1", "userAgent": "aws-cli/1.10.10 Python/2.7.9 Windows/7 botocore/1.4.1", "requestParameters": { "subnets": ["subnet-8360a9e7","subnet-b7d581c0"], "securityGroups": ["sg-5943793c"], "name": "my-load-balancer", "scheme": "internet-facing", "type": "network" }, "responseElements": { "loadBalancers":[{ "type": "network", "ipAddressType": "ipv4", "loadBalancerName": "my-load-balancer", "vpcId": "vpc-3ac0fb5f", "securityGroups": ["sg-5943793c"], "state": {"code":"provisioning"}, "availabilityZones": [ {"subnetId":"subnet-8360a9e7","zoneName":"us-west-2a"}, {"subnetId":"subnet-b7d581c0","zoneName":"us-west-2b"} ], "dNSName": "my-load-balancer-1836718677.us-west-2.elb.amazonaws.com", "canonicalHostedZoneId": "Z2P70J7HTTTPLU", "createdTime": "Apr 11, 2016 5:23:50 PM", "loadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/net/my-load-balancer/ffcddace1759e1d0", "scheme": "internet-facing" }] }, "requestID": "b9960276-b9b2-11e3-8a13-f1ef1EXAMPLE", "eventID": "6f4ab5bd-2daa-4d00-be14-d92efEXAMPLE", "eventType": "AwsApiCall", "apiVersion": "2015-12-01", "recipientAccountId": "123456789012" }

例: DeleteLoadBalancer

{ "eventVersion": "1.03", "userIdentity": { "type": "IAMUser", "principalId": "123456789012", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "Alice" }, "eventTime": "2016-04-01T15:31:48Z", "eventSource": "elasticloadbalancing.amazonaws.com", "eventName": "DeleteLoadBalancer", "awsRegion": "us-west-2", "sourceIPAddress": "198.51.100.1", "userAgent": "aws-cli/1.10.10 Python/2.7.9 Windows/7 botocore/1.4.1", "requestParameters": { "loadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/net/my-load-balancer/ffcddace1759e1d0" }, "responseElements": null, "requestID": "349598b3-000e-11e6-a82b-298133eEXAMPLE", "eventID": "75e81c95-4012-421f-a0cf-babdaEXAMPLE", "eventType": "AwsApiCall", "apiVersion": "2015-12-01", "recipientAccountId": "123456789012" }