使用 AWS CloudTrail 記錄 AWS CodeBuild API 呼叫 - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS CloudTrail 記錄 AWS CodeBuild API 呼叫

AWS CodeBuild已與整合AWS CloudTrail、提供記錄使用者、角色或AWS服 CodeBuild。CloudTrail 會將針對 CodeBuild 的所有 API 呼叫捕獲為事件,包括自程式碼構建主控台以及自程式碼呼叫對 CodeBuild API 的呼叫。如果您建立追蹤記錄,就可以持續傳送 CloudTrail 事件至 S3 儲存貯體,包括 CodeBuild 的事件。即使您未設定追蹤,依然可以透過 CloudTrail 主控台中的 Event history (事件歷史記錄) 檢視最新事件。您可以使用由 CloudTrail 收集的資訊來判斷對 CodeBuild 發出的請求、提出請求的 IP 地址、人員、時間和其他詳細資訊。

若要進一步了解 CloudTrail,請參閱《AWS CloudTrail 使用者指南》。

CloudTrail 中的 AWS CodeBuild 資訊

當您建立帳戶時,系統即會在 AWS 帳戶中啟用 CloudTrail。此外,CodeBuild 發生活動時,系統便會將該活動記錄至 CloudTrail 事件,並將其他AWS中的服務事件事件歷史記錄。您可以檢視、搜尋和下載 AWS 帳戶的最新事件。如需詳細資訊,請參閱 AWS CloudTrail 使用者指南中的 使用 CloudTrail 事件歷史記錄檢視事件

若要持續記錄AWS帳户(包括 CodeBuild 的事件),請建立線索。線索可讓 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 日誌檔案中產生項目。

每一筆事件或日誌項目都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項:

  • 該請求是否使用根或 IAM 使用者憑證提出。

  • 提出該請求時,是否使用了特定角色或聯合身分使用者的暫時安全憑證。

  • 該請求是否由另一項 AWS 服務提出。

如需詳細資訊,請參閲 。CloudTrail userIdentity 元素中的AWS CloudTrail使用者指南

了解 AWS CodeBuild 日誌檔案項目

權杖是一種組態,能讓事件以日誌檔案的形式交付至您指定的 S3 儲存貯體。CloudTrail 日誌檔案包含一個或多個日誌項目。一個事件為任何來源提出的單一請求,並包含請求動作、請求的日期和時間、請求參數等資訊。CloudTrail 日誌檔案並非依公有 API 呼叫追蹤記錄的堆疊排序,因此不會以任何特定順序出現。

注意

若要保護敏感資訊,以下項目會在 CodeBuild 日誌中隱藏:

以下範例顯示的 CloudTrail 日誌項目會示範在 CodeBuild 中建立生成項目。

{ "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" }