

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS 账户 使用 AWS CloudTrail 日志记录监控 API 调用
<a name="ipa-logging-connections"></a>

 CodeCatalyst Amazon 与 AWS CloudTrail一项服务集成，该服务可记录用户、角色或用户所采取的操作 AWS 服务。 CloudTrail 将代表连接的 API 调用捕获 AWS 账户 为事件。 CodeCatalyst 如果您创建了跟踪，则可以启用向 S3 存储桶持续传输事件，包括的事件 CodeCatalyst。 CloudTrail 如果您未配置跟踪，您仍然可以在 CloudTrail 控制台的 “事件**历史记录” 中查看最新的事件**。

CodeCatalyst 支持将以下操作作为事件记录在 CloudTrail 日志文件中：
+  CodeCatalyst 空间的管理事件将记录在空间 AWS 账户 的指定账单账户中。有关更多信息，请参阅 [CodeCatalyst 太空事件](#cloudtrail-logs-spaces-projects)。
**注意**  
可以使用 CLI 访问 CodeCatalyst 空间的数据事件，详情请参见[使用事件日志记录访问已记录的事件](ipa-logs.md)。
+ 在连接中发生 CodeCatalyst 的工作流操作中使用的资源事件 AWS 账户 将作为事件记录在连接中 AWS 账户。有关更多信息，请参阅 [CodeCatalyst 账户连接和账单事件](#cloudtrail-logs-connections)。

**重要**  
虽然可以将多个账户与一个空间关联，但在 CodeCatalyst 空间和项目中 CloudTrail 登录事件仅适用于该结算帐号。

空间账单账户 AWS 账户 是针对超出 AWS 免费套餐的 CodeCatalyst 资源收取的费用。可将多个账户连接到一个空间，但只能将一个账户作为指定的计费账户。该空间的账单账户或其他关联账户可以具有 IAM 角色，用于通过 CodeCatalyst 工作流程部署 AWS 资源和基础设施，例如 Amazon ECS 集群或 S3 存储桶。您可以使用工作流程 YAML 来识别您部署到 AWS 账户 的。

**注意**  
AWS 部署到 CodeCatalyst 工作流关联账户中的资源不会作为 CodeCatalyst 空间 CloudTrail 日志记录的一部分进行记录。例如， CodeCatalyst资源包括空间或项目。 AWS 资源包括亚马逊 ECS 服务或 Lambda 函数。 CloudTrail 必须为每个部署资源 AWS 账户 的地方单独配置日志记录。

CodeCatalyst 登录关联账户包括以下注意事项：
+ 对 CloudTrail 事件的访问由关联账户中的 IAM 管理，而不是在 CodeCatalyst。
+ 第三方连接（例如链接到 GitHub 存储库）将导致第三方资源名称记录在 CloudTrail 日志中。

**注意**  
CloudTrail CodeCatalyst 事件的记录是在空间级别进行的，不会按项目边界隔离事件。

有关的更多信息 CloudTrail，请参阅《[AWS CloudTrail 用户指南》](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)。

**注意**  
本节介绍 CloudTrail 记录在已登录 CodeCatalyst空间中的所有事件以及与之连接 AWS 账户 的事件 CodeCatalyst。此外，要查看 CodeCatalyst 空间中记录的所有事件，也可以使用 AWS CLI 和**aws codecatalyst list-event-logs**命令。有关更多信息，请参阅 [使用事件日志记录访问已记录的事件](ipa-logs.md)。

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

 CodeCatalyst 用于管理空间级和项目级资源的操作记录在空间的账单账户中。在 CloudTrail 记录 CodeCatalyst 空间时，记录事件时要考虑以下注意事项。
+ CloudTrail 事件适用于整个空间，不限于任何单个项目。
+ 当你连接到 CodeCatalyst 空间时 AWS 账户 ，账户连接的可记录事件将在该空间中记录。 AWS 账户此连接一经启用便无法禁用。
+ 当您将 AWS 账户 连接到某个 CodeCatalyst 空间并将其指定为该空间的结算账户时，将在该空间中记录事件 AWS 账户。此连接一经启用便无法禁用。

  空间级和项目级资源的事件仅记录在计费账户中。要更改 CloudTrail 目标账户，请在中更新结算账号 CodeCatalyst。在下一个月度账单周期开始时，更改将对中的新账单账户生效 CodeCatalyst。之后， CloudTrail目标账户即会更新。

以下是中 AWS 与管理空间级和项目级资源的操作相关的事件示例。 CodeCatalyst以下内容 APIs 是通过 SDK 和 CLI 发布的。活动将记录在 CodeCatalyst 空间的 AWS 账户 指定账单账户中。
+ `[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`

## CodeCatalyst 信息在 CloudTrail
<a name="info-in-cloudtrail"></a>

CloudTrail 在您创建该账户 AWS 账户 时已启用。当您将其连接到空间时，该 CodeCatalyst 空间中发生的事件将 CloudTrail 记录 AWS 账户 在该 AWS 账户中。 AWS 账户 中的 CodeCatalyst 可记录事件与该账户中的其他可记录 CloudTrail 事件一起记录在已连接账户的 CloudTrail 日志和 CloudTrail 控制台 AWS 的事件**历史**记录中。





每个事件或日志条目都包含有关生成请求的人员信息。身份信息有助于您确定以下内容：
+ 请求是否由用户使用其 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`则用于查看与此相关的所有账户连接 AWS 账户。 CodeCatalyst 事件将记录在中 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
<a name="understanding-cloudtrail-resource-example"></a>

以下示例显示了演示该`CreateDevEnvironment`操作的 CloudTrail 日志条目。与空间关联且是该空间的指定账单账户的，用于空间中的项目级活动，例如创建开发环境。 AWS 账户 

在`accountId`字段下`userIdentity`，这是托管所有 AWS 生成器 ID 身份的身份池的 IAM 身份中心账户 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 事件的`userAgent`字段`Unknown`中提供一个值。

## 查询您的 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)。