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

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

使用 AWS CloudTrail 記錄 AWS CodeBuild API 呼叫

AWS CodeBuild與整合AWS CloudTrail,這項服務可提供由使用者、角色或中AWS服務所採取之動作的記錄 CodeBuild。 CloudTrail 擷取 CodeBuild 為事件的所有 API 呼叫,包括來自 CodeBuild 主控台的呼叫以及來自對 API 發出的程 CodeBuild 式碼呼叫。如果建立線索,則可將事件 (包括的 CloudTrail 事件) 持續交付到 S3 儲存貯體 CodeBuild 如果您不設定追蹤記錄,仍然可以透過 CloudTrail 主控台中的 Event history (事件歷史記錄) 檢視最新的事件。使用由收集的資訊 CloudTrail,您就可以判斷傳送至的請求 CodeBuild、提出請求的 IP 地址、提出請求的對象、提出請求的時間,以及其他詳細資訊。

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

AWS CodeBuild中的資訊 CloudTrail

CloudTrail 當您建立AWS帳戶時,系統會在您的帳戶中啟用。當中發生活動時 CodeBuild,系統便會將該活動記錄到事件中,其他AWS服務 CloudTrail 事件則記錄於 Event history (Event Trail)。您可以檢視、搜尋和下載 AWS 帳戶的最新事件。如需詳細資訊,請參閱AWS CloudTrail使用指南中的檢視具有 CloudTrail 事件歷程記錄的事件。

如需您AWS帳戶中正在進行事件的記錄 (包含的事件) CodeBuild,請建立線索。線索可讓 CloudTrail 將日誌檔案傳遞到 S3 儲存貯體。根據預設,當您在主控台建立權杖時,權杖會套用到所有區域。該追蹤會記錄來自 AWS 分割區中所有區域的事件,並將日誌檔案交付到您指定的 S3 儲存貯體。您可以設定其他AWS服務,以進一步分析和處理 CloudTrail 日誌中收集的事件資料。如需詳細資訊,請參閱:

所有 CodeBuild 動作均由「API 參考」記錄 CloudTrail 並記錄在「CodeBuild API 參考」中。例如,呼叫CreateProject (在AWS CLI、中create-project)、StartBuild (在中AWS CLI) 和UpdateProject (在中start-projectupdate-project) 動作會在AWS CLI CloudTrail 記錄檔中產生項目。

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

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

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

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

如需詳細資訊,請參閱《AWS CloudTrail使用者指南》中的「使用者CloudTrail userIdentity」元素

了解 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" }