AWS 账户 使用 AWS CloudTrail 日志记录监控 API 调用 - Amazon CodeCatalyst

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

AWS 账户 使用 AWS CloudTrail 日志记录监控 API 调用

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

CodeCatalyst 支持将以下操作作为事件记录在 CloudTrail 日志文件中:

重要

虽然可以将多个账户与一个空间关联,但在 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 用户指南》

注意

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

CodeCatalyst 太空事件

CodeCatalyst 用于管理空间级和项目级资源的操作记录在空间的账单账户中。在 CloudTrail 记录 CodeCatalyst 空间时,记录事件时要考虑以下注意事项。

  • CloudTrail 事件适用于整个空间,不限于任何单个项目。

  • 当你连接到 CodeCatalyst 空间时 AWS 账户 ,账户连接的可记录事件将在该空间中记录。 AWS 账户启用此连接后,您将无法将其禁用。

  • 当您将 AWS 账户 连接到某个 CodeCatalyst 空间并将其指定为该空间的结算账户时,将在该空间中记录事件 AWS 账户。启用此连接后,您将无法将其禁用。

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

以下是中 AWS 与管理空间级和项目级资源的操作相关的事件示例。 CodeCatalyst以下 API 是通过 SDK 和 CLI 发布的。活动将记录在 CodeCatalyst 空间的 AWS 账户 指定账单账户中。

CodeCatalyst 账户连接和账单事件

以下是中 AWS 与账户关联操作或账单相关的事件示例: CodeCatalyst

  • AcceptConnection

  • AssociateIAMRoletoConnection

  • DeleteConnection

  • DissassociateIAMRolefromConnection

  • GetBillingAuthorization

  • GetConnection

  • GetPendingConnection

  • ListConnections

  • ListIAMRolesforConnection

  • PutBillingAuthorization

  • RejectConnection

CodeCatalyst 信息在 CloudTrail

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

每个事件或日记账条目都包含有关生成请求的人员信息。身份信息有助于您确定以下内容:

  • 请求是否由用户使用其 AWS 生成器 ID 发出。

  • 请求是使用根证书还是 AWS Identity and Access Management (IAM) 用户凭证发出。

  • 请求是使用角色还是联合用户的临时安全凭证发出的。

  • 请求是否由其他 AWS 服务发出。

有关更多信息,请参阅CloudTrail 用户身份元素

访问 CloudTrail 事件

要持续记录您的事件 AWS 账户,包括中的 CodeCatalyst活动事件 AWS 账户,请创建跟踪。跟踪允许 CloudTrail将日志文件传送到 S3 存储桶。预设情况下,在控制台中创建跟踪记录时,此跟踪记录应用于所有 AWS 区域。跟踪记录 AWS 分区中所有区域的事件,并将日志文件传送到您指定的 S3 存储桶。此外,您可以配置其他 AWS 服务,以进一步分析和处理 CloudTrail 日志中收集的事件数据。有关更多信息,请参阅下列内容:

跟踪是一种配置,允许将事件作为日志文件传输到您指定的 S3 存储桶。 CloudTrail 日志文件包含一个或多个日志条目。事件代表来自任何来源的单个请求,包括有关请求的操作、操作的日期和时间、请求参数等的信息。 CloudTrail 日志文件不是公共 API 调用的有序堆栈跟踪,因此它们不会按任何特定的顺序出现。

中的 CodeCatalyst 账户连接事件示例 AWS

以下示例显示了演示该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

以下示例显示了演示该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 用户身份元素

{ "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 活动轨迹

您可以使用 Amazon Athena 中的查询表创建和管理对 CloudTrail 日志的查询。有关创建查询的更多信息,请参阅 Amazon Athen a 用户指南中的查询 AWS CloudTrail 日志