AWS CodeBuild による AWS CloudTrail API 呼び出しのログ記録 - AWS CodeBuild

AWS CodeBuild による AWS CloudTrail API 呼び出しのログ記録

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

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

AWS CodeBuildCloudTrail での 情報

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

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

すべての CodeBuild アクションは CloudTrail が記録します。これらのアクションは CodeBuild API リファレンスで説明されています。たとえば、CreateProject (AWS CLI で create-project)、StartBuild (AWS CLI で start-project)、UpdateProject (AWS CLI で update-project) の各アクションを呼び出すと、CloudTrail のログファイルにエントリが生成されます。

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

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

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

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

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

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

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

注記

機密情報を保護するために、CodeBuild ログでは次の情報が非表示になっています。

次の例は、CodeBuild でビルドプロジェクトを作成する方法を示す CloudTrail ログエントリを示しています。

{ "eventVersion": "1.05", "userIdentity": { "type": "FederatedUser", "principalId": "account-ID:user-name", "arn": "arn:aws:sts::account-ID:federated-user/user-name", "accountId": "account-ID", "accessKeyId": "access-key-ID", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2016-09-06T17:59:10Z" }, "sessionIssuer": { "type": "IAMUser", "principalId": "access-key-ID", "arn": "arn:aws:iam::account-ID:user/user-name", "accountId": "account-ID", "userName": "user-name" } } }, "eventTime": "2016-09-06T17:59:11Z", "eventSource": "codebuild.amazonaws.com", "eventName": "CreateProject", "awsRegion": "region-ID", "sourceIPAddress": "127.0.0.1", "userAgent": "user-agent", "requestParameters": { "awsActId": "account-ID" }, "responseElements": { "project": { "environment": { "image": "image-ID", "computeType": "BUILD_GENERAL1_SMALL", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "name": "codebuild-demo-project", "description": "This is my demo project", "arn": "arn:aws:codebuild:region-ID:account-ID:project/codebuild-demo-project:project-ID", "encryptionKey": "arn:aws:kms:region-ID:key-ID", "timeoutInMinutes": 10, "artifacts": { "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket", "type": "S3", "packaging": "ZIP", "outputName": "MyOutputArtifact.zip" }, "serviceRole": "arn:aws:iam::account-ID:role/CodeBuildServiceRole", "lastModified": "Sep 6, 2016 10:59:11 AM", "source": { "type": "GITHUB", "location": "https://github.com/my-repo.git" }, "created": "Sep 6, 2016 10:59:11 AM" } }, "requestID": "9d32b228-745b-11e6-98bb-23b67EXAMPLE", "eventID": "581f7dd1-8d2e-40b0-aeee-0dbf7EXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "account-ID" }