AWS CloudTrail を使用して Amazon ECS API コールをログに記録する - Amazon Elastic Container Service

AWS CloudTrail を使用して Amazon ECS API コールをログに記録する

Amazon ECS は AWS CloudTrail と統合されています。このサービスは、ユーザーやロール、または Amazon ECS の AWS のサービスによって実行されたアクションを記録するサービスです。CloudTrail は、Amazon ECS コンソールからの呼び出しと Amazon ECS API オペレーションへのコード呼び出しを含む、Amazon ECS の API コールをイベントとしてキャプチャします。VPC を保護するために、VPC エンドポイントポリシーによって拒否されたが許可されなかったリクエストは、CloudTrail に記録されません。

証跡を作成する場合は、Amazon ECS のイベントなど、Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます。追跡を設定しない場合でも、CloudTrail コンソールの Event history(イベント履歴)で最新のイベントを表示できます。CloudTrail で収集された情報を使用して、Amazon ECS に対するリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエスト日時などの詳細を確認できます。

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

CloudTrail のAmazon ECS 情報

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

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

すべてのAmazon ECS アクションは、CloudTrail に記録され、Amazon Elastic Container Service API リファレンスに記載されています。例えば、CreateServiceRunTask、および DeleteCluster セクションを呼び出すと、 CloudTrail ログファイルにエントリが生成されます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます:

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

  • リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。

  • リクエストが別の AWS サービスによって行われたかどうか。

詳細については、「CloudTrail userIdentity Element」(CloudTrail userIdentity 要素) を参照してください。

Amazon ECS ログファイルエントリの理解

証跡の設定を行うことで、指定した Amazon S3 バケットに対して、イベントをログファイルとして配信することが可能になります。CloudTrail のログファイルは、単一か複数のログエントリを含みます。イベントはあらゆるソースからの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメータなどの情報が含まれます。CloudTrail ログファイルは、公開 API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

注記

これらの例は、読みやすくするために書式設定されています。CloudTrail ログファイルでは、すべてのエントリとイベントが単一の行に連結されています。さらに、この例は 1 つの Amazon ECS エントリに限定しています。実際の CloudTrail ログファイルには、複数の AWS のサービスからのエントリとイベントが表示されます。

次は、CreateCluster アクションを示す CloudTrail ログエントリの例です。

{ "eventVersion": "1.04", "userIdentity": { "type": "AssumedRole", "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name", "arn": "arn:aws:sts::123456789012:user/Mary_Major", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-06-20T18:32:25Z" }, "sessionIssuer": { "type": "Role", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::123456789012:role/Admin", "accountId": "123456789012", "userName": "Mary_Major" } } }, "eventTime": "2018-06-20T19:04:36Z", "eventSource": "ecs.amazonaws.com", "eventName": "CreateCluster", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.12", "userAgent": "console.amazonaws.com", "requestParameters": { "clusterName": "default" }, "responseElements": { "cluster": { "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/default", "pendingTasksCount": 0, "registeredContainerInstancesCount": 0, "status": "ACTIVE", "runningTasksCount": 0, "statistics": [], "clusterName": "default", "activeServicesCount": 0 } }, "requestID": "cb8c167e-EXAMPLE", "eventID": "e3c6f4ce-EXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }