

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

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

# AWS 帳戶 使用 AWS CloudTrail 記錄來監控 API 呼叫
<a name="ipa-logging-connections"></a>

Amazon CodeCatalyst 已與 整合 AWS CloudTrail，此服務可提供使用者、角色或 所採取動作的記錄 AWS 服務。CloudTrail 會擷取在連線 AWS 帳戶 為事件的 中代表 CodeCatalyst 發出的 API 呼叫。如果您建立追蹤，則可以將 CloudTrail 事件持續交付至 S3 儲存貯體，包括 CodeCatalyst 的事件。即使您未設定追蹤，依然可以透過 CloudTrail 主控台中的**事件歷史記錄**檢視最新事件。

CodeCatalyst 支援將下列動作記錄為 CloudTrail 日誌檔案中的事件：
+ CodeCatalyst 空間的管理事件會記錄在 中 AWS 帳戶 ，該 是空間的指定帳單帳戶。如需詳細資訊，請參閱[CodeCatalyst 空間事件](#cloudtrail-logs-spaces-projects)。
**注意**  
CodeCatalyst 空間的資料事件可透過使用 CLI 存取，如 中所述[使用事件記錄存取記錄的事件](ipa-logs.md)。
+ 在連線的 CodeCatalyst 工作流程動作中使用的資源事件 AWS 帳戶 會記錄為其中的事件 AWS 帳戶。如需詳細資訊，請參閱[CodeCatalyst 帳戶連線和帳單事件](#cloudtrail-logs-connections)。

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

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

**注意**  
AWS 針對 CodeCatalyst 工作流程部署至連線帳戶的 資源，不會記錄為 CodeCatalyst 空間 CloudTrail 記錄的一部分。例如，CodeCatalyst 資源包含空格或 project. AWS resources 包含 Amazon ECS 服務或 Lambda 函數。必須針對 AWS 帳戶 資源部署所在的每個 分別設定 CloudTrail 記錄。

連線帳戶中的 CodeCatalyst 登入包括下列考量：
+ CloudTrail 事件的存取權是由連線帳戶中的 IAM 管理，而不是在 CodeCatalyst 中管理。
+ 第三方連線，例如連結至 GitHub 儲存庫，會導致第三方資源名稱記錄在 CloudTrail 日誌中。

**注意**  
CodeCatalyst 事件的 CloudTrail 記錄位於空間層級，不會依專案界限隔離事件。

如需有關 CloudTrail 的相關資訊，請參閱 [AWS CloudTrail 使用者指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)。

**注意**  
本節說明在 CodeCatalyst 空間中記錄的所有事件以及連線至 CodeCatalyst AWS 帳戶 的 的 CloudTrail 記錄。此外，若要檢閱 CodeCatalyst 空間中記錄的所有事件，您也可以使用 AWS CLI 和 **aws codecatalyst list-event-logs**命令。如需詳細資訊，請參閱[使用事件記錄存取記錄的事件](ipa-logs.md)。

## CodeCatalyst 空間事件
<a name="cloudtrail-logs-spaces-projects"></a>

CodeCatalyst 中用於管理空間層級和專案層級資源的動作會記錄在空間的帳單帳戶中。對於 CodeCatalyst 空間的 CloudTrail 記錄，會記錄事件，並考量下列各項。
+ CloudTrail 事件會套用至整個空間，且範圍不限於任何單一專案。
+ 當您將 AWS 帳戶 連接到 CodeCatalyst 空間時，帳戶連線的可記錄事件將登入該空間 AWS 帳戶。啟用此連線後，您就無法停用它。
+ 當您將 AWS 帳戶 連接到 CodeCatalyst 空間，並將其指定為該空間的帳單帳戶時，事件將登入該 AWS 帳戶。啟用此連線後，您就無法停用它。

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

以下是 中 AWS 與 CodeCatalyst 中用於管理空間層級和專案層級資源之動作相關的事件範例。下列 APIs 是透過 SDK 和 CLI 發行。事件會記錄在 AWS 帳戶 指定的 中，做為 CodeCatalyst 空間的帳單帳戶。
+ `[CreateDevEnvironment](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_CreateDevEnvironment.html)`
+  `[CreateProject](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_CreateProject.html)`
+ `[DeleteDevEnvironment](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_DeleteDevEnvironment.html)`
+ `[GetDevEnvironment](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_GetDevEnvironment.html)`
+ `[GetProject](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_GetProject.html)`
+ `[GetSpace](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_GetSpace.html)`
+ `[GetSubscription](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_GetSubscription.html)`
+ `[ListDevEnvironments](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_ListDevEnvironments.html)`
+ `[ListDevEnvironmentSessions](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_ListDevEnvironmentSessions.html)`
+ `[ListEventLogs](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_ListEventLogs.html)`
+ `[ListProjects](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_ListProjects.html)`
+ `[ListSourceRepositories](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_ListSourceRepositories.html)`
+ `[StartDevEnvironment](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_StartDevEnvironment.html)`
+ `[StartDevEnvironmentSession](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_StartDevEnvironmentSession.html)`
+ `[StopDevEnvironment](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_StopDevEnvironment.html)`
+ `[StopDevEnvironmentSession](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_StopDevEnvironmentSession.html)`
+ `[UpdateDevEnvironment](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_UpdateDevEnvironment.html)`

## CodeCatalyst 帳戶連線和帳單事件
<a name="cloudtrail-logs-connections"></a>

以下是 中 AWS 與 CodeCatalyst 中帳戶連線或計費動作相關的事件範例：
+ `AcceptConnection`
+ `AssociateIAMRoletoConnection`
+ `DeleteConnection`
+ `DissassociateIAMRolefromConnection`
+ `GetBillingAuthorization`
+ `GetConnection`
+ `GetPendingConnection`
+ `ListConnections`
+ `ListIAMRolesforConnection`
+ `PutBillingAuthorization`
+ `RejectConnection`

## CloudTrail 中的 CodeCatalyst 資訊
<a name="info-in-cloudtrail"></a>

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





每一筆事件或日誌專案都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項：
+ 使用者是否使用其 AWS 建置器 ID 提出請求。
+ 是否使用根或 AWS Identity and Access Management (IAM) 使用者登入資料提出請求。
+ 提出該請求時，是否使用了特定角色或聯合身分使用者的暫時安全憑證。
+ 請求是否由其他 AWS 服務提出。

如需詳細資訊，請參閱 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

## 存取 CloudTrail 事件
<a name="ipa-logging-connections-view"></a>

若要持續記錄 中的事件 AWS 帳戶，包括 中 CodeCatalyst 活動的事件 AWS 帳戶，請建立追蹤。*線索*可讓 CloudTrail 將日誌檔案傳遞到 S3 儲存貯體。依預設，當您在主控台中建立追蹤時，該追蹤會套用至所有的 AWS 區域。線索會記錄 AWS 分割區中所有區域的事件，並將日誌檔案交付至您指定的 S3 儲存貯體。此外，您可以設定其他 AWS 服務，以進一步分析和處理 CloudTrail 日誌中所收集的事件資料。如需詳細資訊，請參閱下列內容：
+ [建立追蹤的概觀](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail 支援的服務和整合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html)
+ [設定 CloudTrail 的 Amazon SNS 通知](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.html)
+ [接收多個區域的 CloudTrail 日誌檔案](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)和[接收多個帳戶的 CloudTrail 日誌檔案](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

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

## 中的 CodeCatalyst 帳戶連線事件範例 AWS
<a name="understanding-cloudtrail-entries"></a>

以下範例顯示的是展示 `ListConnections` 動作的 CloudTrail 日誌項目。對於 AWS 帳戶 連接到空間的 ， `ListConnections` 會用來檢視 CodeCatalyst 的所有帳戶連線 AWS 帳戶。事件將記錄在 中 AWS 帳戶 指定的 中`accountId`，而 的值`arn`將是用於動作的角色的 Amazon Resource Name (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
<a name="understanding-cloudtrail-resource-example"></a>

以下範例顯示的是展示 `CreateDevEnvironment` 動作的 CloudTrail 日誌項目。 AWS 帳戶 連接到空間的 是空間的指定帳單帳戶，用於空間中的專案層級事件，例如建立開發環境。

在 下`userIdentity`，在 `accountId` 欄位中，這是託管所有 AWS 建置器 ID 身分之身分集區的 IAM Identity Center 帳戶 ID (`432677196278`)。此帳戶 ID 包含有關事件之 CodeCatalyst 使用者的下列資訊。
+ `type` 欄位指出請求的 IAM 實體類型。對於空間和專案資源的 CodeCatalyst 事件，此值為 `IdentityCenterUser`。`accountId` 欄位指定擁有用來取得登入資料的實體的帳戶。
+ `userId` 欄位包含使用者的 AWS 建置器 ID 識別符。
+ `identityStoreArn` 欄位包含身分存放區帳戶和使用者的角色 ARN。

`recipientAccountId` 欄位包含空間帳單帳戶的帳戶 ID，此處的範例值為 111122223333。

如需詳細資訊，請參閱 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

```
{
	"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 事件追蹤
<a name="ipa-logging-connections-query"></a>

您可以使用 Amazon Athena 中的查詢資料表來建立和管理 CloudTrail 日誌的查詢。如需建立查詢的詳細資訊，請參閱《*Amazon Athena 使用者指南*》中的[查詢 AWS CloudTrail 日誌](https://docs.aws.amazon.com/athena/latest/ug/cloudtrail-logs.html)。