AWS 帳戶 使用 AWS CloudTrail 記錄監控 API 呼叫 - Amazon CodeCatalyst

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

AWS 帳戶 使用 AWS CloudTrail 記錄監控 API 呼叫

Amazon CodeCatalyst 與服務整合 AWS CloudTrail,可提供使用者、角色或使用者所採取的動作記錄 AWS 服務。 CloudTrail 捕獲 AWS 帳戶 作為事件連接的 CodeCatalyst 代表進行的 API 調用。如果您建立追蹤,您可以啟用 CloudTrail 事件持續傳遞至 S3 儲存貯體,包括 CodeCatalyst. 如果您未設定追蹤,您仍然可以在 [事件歷程記錄] 中檢視 CloudTrail 主控台中最近的事件

CodeCatalyst 支援將下列動作記錄為記 CloudTrail 錄檔中的事件:

重要

雖然多個帳戶可以與一個空間相關聯,但 CodeCatalyst 空間和專案中的事件 CloudTrail 記錄僅適用於帳單帳戶。

太空計費帳戶是您針 AWS 帳戶 對免費方案以外的 CodeCatalyst 資源所支付的 AWS 費用。多個帳戶可以連接到一個空間,而只有一個帳戶可以是指定的帳單帳戶。空間的帳單帳戶或其他連線帳戶可以具有用於從 CodeCatalyst 工作流程部署 AWS 資源和基礎設施 (例如 Amazon ECS 叢集或 S3 儲存貯體) 的 IAM 角色。您可以使用工作流程 YAML 來識別您部署的 AWS 帳戶 目標。

注意

AWS 針對 CodeCatalyst 工作流程部署到連線帳戶中的資源,不會記錄為 CodeCatalyst 空間 CloudTrail 記錄的一部分。例如, CodeCatalyst資源包括空間或專案。 AWS 資源包括 Amazon ECS 服務或 Lambda 函數。 CloudTrail 必須針對資源部署到的每個 AWS 帳戶 位置單獨配置記錄。

CodeCatalyst 登入連線的帳戶包括下列考量事項:

  • CloudTrail 事件的存取權限是透過連線帳戶中的 IAM 管理,而不是在中 CodeCatalyst。

  • 第三方連線 (例如連結至 GitHub 儲存庫) 會導致協力廠商資源名稱記錄在記 CloudTrail 錄中。

注意

CloudTrail CodeCatalyst 事件記錄位於空間層級,不會依專案邊界隔離事件。

若要取得有關的更多資訊 CloudTrail,請參閱AWS CloudTrail 使用者指南

注意

本節說明 CloudTrail 記錄在某個 CodeCatalyst空間中記錄的所有事件,以及連線到的事件 CodeCatalyst。 AWS 帳戶 此外,若要檢閱 CodeCatalyst 空間中記錄的所有事件,您也可以使用 AWS CLI 和指aws codecatalyst list-event-logs令。如需詳細資訊,請參閱 使用事件記錄存取記錄的事件

CodeCatalyst 太空事件

中 CodeCatalyst 用於管理空間層級和專案層級資源的動作會記錄在空間的帳單帳戶中。對於 CodeCatalyst 空間的 CloudTrail 記錄,會記錄事件,並考量下列事件。

  • CloudTrail 事件適用於整個空間,並且不限於任何單一專案。

  • 當您連接 AWS 帳戶 到 CodeCatalyst 空間時,帳戶連接的可記錄事件將被記錄在該空間中。 AWS 帳戶啟用此連線後,就無法停用它。

  • 當您連接 AWS 帳戶 到 CodeCatalyst 空間並將其指定為該空間的帳單帳戶時,會在該空間中記錄事件 AWS 帳戶。啟用此連線後,就無法停用它。

    空間層級和專案層級資源的事件只會記錄在帳單帳戶中。若要變更 CloudTrail 目的地帳戶,請在中更新帳單帳戶 CodeCatalyst。在下個月計費週期開始時,變更會在中的新帳單帳戶生效 CodeCatalyst。之後, CloudTrail目標帳戶就會更新。

以下是中 AWS 與管理空間層級和專案層級資源 CodeCatalyst的動作相關的事件範例。下列 API 是透過 SDK 和 CLI 發行的。事件將記錄在 AWS 帳戶 指定為 CodeCatalyst 空間的帳單帳戶中。

CodeCatalyst 帳戶連線和帳單事件

以下是中 AWS 與帳戶連線或帳單動作相關的事件範例: CodeCatalyst

  • AcceptConnection

  • AssociateIAMRoletoConnection

  • DeleteConnection

  • DissassociateIAMRolefromConnection

  • GetBillingAuthorization

  • GetConnection

  • GetPendingConnection

  • ListConnections

  • ListIAMRolesforConnection

  • PutBillingAuthorization

  • RejectConnection

CodeCatalyst 中的資訊 CloudTrail

CloudTrail 在您建立該帳戶 AWS 帳戶 時啟用。當您將該空間連接 AWS 帳戶 到 CodeCatalyst 空間時,發生在該空間的事件會記錄 AWS 帳戶 在該 AWS 帳戶的 CloudTrail 日誌中。中的可登入事件會記錄 CodeCatalyst 為 CloudTrail 連線帳戶的記錄 CloudTrail 檔和 CloudTrail 主控台的事件歷程記錄中的事件,以及該帳戶中的其他可登入 AWS 事件。

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

  • 請求是否由具有其 AWS 生成器 ID 的用戶提出。

  • 要求是使用根使用者登入資料還是 AWS Identity and Access Management (IAM) 使用者登入資料提出。

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

  • 請求是否由其他 AWS 服務提出。

如需詳細資訊,請參閱CloudTrail 使 userIdentity 元素

存取 CloudTrail 事件

若要進行中的 AWS 帳戶事件記錄 (包括中的 CodeCatalyst活動) AWS 帳戶,請建立追蹤。追蹤可 CloudTrail將日誌檔傳遞至 S3 儲存貯體。依預設,當您在主控台中建立追蹤時,該追蹤會套用至所有的 AWS 區域。追蹤記錄來自 AWS 分割區中所有區域的事件,並將日誌檔傳送到您指定的 S3 儲存貯體。此外,您還可以設定其他 AWS 服務,以進一步分析 CloudTrail 記錄中收集的事件資料並採取行動。如需詳細資訊,請參閱下列內容:

追蹤是一種組態,可讓事件以日誌檔的形式傳遞至您指定的 S3 儲存貯體。 CloudTrail 記錄檔包含一或多個記錄項目。事件代表來自任何來源的單一請求,包括有關請求的操作,動作的日期和時間,請求參數等信息。 CloudTrail 日誌文件不是公共 API 調用的有序堆棧跟踪,因此它們不會以任何特定順序顯示。

CodeCatalyst 帳戶連線事件範例 AWS

下列範例顯示示範ListConnections動作的 CloudTrail 記錄項目。對 AWS 帳戶 於連接到空間的,用ListConnections於查看與此的所有帳戶連接 CodeCatalyst AWS 帳戶。事件將記錄在中 AWS 帳戶 指定的accountId,且的值arn將是用於動作之角色的 Amazon 資源名稱 (ARN)。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "role-ARN", "accountId": "account-ID", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "role-ARN", "accountId": "account-ID", "userName": "user-name" }, "webIdFederationData": {}, "attributes": { "creationDate": "2022-09-06T15:04:31Z", "mfaAuthenticated": "false" } } }, "eventTime": "2022-09-06T15:08:43Z", "eventSource": "account-ID", "eventName": "ListConnections", "awsRegion": "us-west-2", "sourceIPAddress": "192.168.0.1", "userAgent": "aws-cli/1.18.147 Python/2.7.18 Linux/5.4.207-126.363.amzn2int.x86_64 botocore/1.18.6", "requestParameters": null, "responseElements": null, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 ", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 ", "readOnly": true, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "account-ID", "eventCategory": "Management" }

範例 CodeCatalyst 專案資源事件 AWS

下列範例顯示示範CreateDevEnvironment動作的 CloudTrail 記錄項目。連接到空間並且是空間的指定帳單帳戶,用於空間中的專案層級事件,例如建立開發環境。 AWS 帳戶

accountId欄位中的下userIdentity方,這是主控所有 AWS Builder ID 身分識別身分識別身分識別的身分集區的 IAM 身分識別中心帳戶 ID (432677196278)。此帳號 ID 包含下列有關事件 CodeCatalyst 使用者的資訊。

  • type欄位會指出要求的 IAM 實體類型。對於空間和專案資源的 CodeCatalyst 事件,此值為IdentityCenterUser。此accountId欄位會指定擁有用來取得認證之實體的帳戶。

  • userId字段包含用戶的 AWS 生成器 ID 標識符。

  • identityStoreArn欄位包含識別身分存放區帳戶和使用者的角色 ARN。

recipientAccountId欄位包含空間帳單帳戶的帳戶識別碼,此處的範例值為 111122223333。

如需詳細資訊,請參閱CloudTrail 使 userIdentity 元素

{ "eventVersion": "1.09", "userIdentity": { "type": "IdentityCenterUser", "accountId": "432677196278", "onBehalfOf": { "userId": "user-ID", "identityStoreArn": "arn:aws:identitystore::432677196278:identitystore/d-9067642ac7" }, "credentialId": "ABCDefGhiJKLMn11Lmn_1AbCDEFgHijk-AaBCdEFGHIjKLmnOPqrs11abEXAMPLE" }, "eventTime": "2023-05-18T17:10:50Z", "eventSource": "codecatalyst.amazonaws.com", "eventName": "CreateDevEnvironment", "awsRegion": "us-west-2", "sourceIPAddress": "192.168.0.1", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0", "requestParameters": { "spaceName": "MySpace", "projectName": "MyProject", "ides": [{ "runtime": "public.ecr.aws/q6e8p2q0/cloud9-ide-runtime:2.5.1", "name": "Cloud9" }], "instanceType": "dev.standard1.small", "inactivityTimeoutMinutes": 15, "persistentStorage": { "sizeInGiB": 16 } }, "responseElements": { "spaceName": "MySpace", "projectName": "MyProject", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 " }, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "sharedEventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "eventCategory": "Management" }
注意

在某些事件中,用戶代理可能不知道。在這種情況下, CodeCatalyst 將在 CloudTrail 事件Unknown中的userAgent字段中提供的值。

查詢您的 CodeCatalyst 事件追蹤

您可以使用 Amazon Athena 中的查詢表建立和管理 CloudTrail 日誌的查詢。如需有關建立查詢的詳細資訊,請參閱 Amazon Athena 使用者指南中的查詢AWS CloudTrail 日誌