AWS CodeBuild
ユーザーガイド (API バージョン 2016-10-06)

AWS CloudTrail を使用した AWS CodeBuild API 呼び出しのログ作成

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

CloudTrail の詳細については、「AWS CloudTrail User Guide」を参照してください。

CloudTrail 内の AWS CodeBuild 情報

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

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

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

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

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

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

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

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

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

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

次の例は、AWS 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" }