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

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

AWS CodeBuild は CloudTrail と統合されています。これは、AWS アカウントで AWS CodeBuild に代わって行われた API 呼び出しをキャプチャし、指定した Amazon S3 バケットにログファイルを送信するサービスです。CloudTrail は、AWS CodeBuild コンソール、AWS CLI、および AWS SDK からの API 呼び出しをキャプチャします。CloudTrail によって収集された情報を使用して、AWS CodeBuild に対してどのようなリクエストが行われたかを判断することができます。リクエストの作成元のソース IP アドレス、リクエストの実行者、リクエストの実行日時などです。CloudTrail の詳細 (設定する方法や有効にする方法など) については、AWS CloudTrail User Guide を参照してください。

CloudTrail 内の AWS CodeBuild 情報

AWS アカウントで CloudTrail のログ記録を有効にすると、AWS CodeBuild アクションに対する呼び出しがログファイルに記録されます。AWS CodeBuild レコードは、他の AWS サービスレコードと一緒にログファイルに記録されます。CloudTrail は、期間とファイルサイズに基づいて、新しいファイルをいつ作成して書き込むかを決定します。

ログには、すべての AWS CodeBuild アクションが記録されます。これらのアクションについては、コマンドラインリファレンス を参照してください。たとえば、ビルドプロジェクトを作成してビルドを実行する呼び出しは、CloudTrail ログファイルにエントリを生成します。

各ログエントリには、誰がリクエストを生成したかに関する情報が含まれます。ログのユーザー ID 情報により、リクエストが、ルートまたは IAM ユーザーの認証情報を使用して送信されたか、ロールまたはフェデレーションユーザーの一時的なセキュリティ認証情報を使用して送信されたか、あるいは別の AWS のサービスによって送信されたかを確認できます。詳細については、userIdentityCloudTrail Event Reference フィールドを参照してください。

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

新しいログファイルが配信されるときに、CloudTrail が Amazon SNS 通知を発行するようにできます。詳細については、CloudTrail 用の Amazon SNS 通知の構成を参照してください。

また、複数の AWS リージョンと複数の AWS アカウントからの AWS CodeBuild ログファイルを 1 つの Amazon S3 バケットに集約することもできます。詳細については、「Receiving CloudTrail Log Files From Multiple Regions」を参照してください。

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

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

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