本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建与 Amazon 外部事件源的集成
您可以使用CloudTrail在混合环境中记录和存储来自任何来源的用户活动数据,例如本地或云端托管的内部应用程序或 SaaS 应用程序、虚拟机或容器。您无需维护多个日志聚合器和报告工具,即可对这些数据进行存储、访问、分析、故障排除和操作。
来自非Amazon来源的活动事件的工作原理是使用渠道将与CloudTrail之合作的外部合作伙伴或来自您自己的来源的事件引入 CloudTrail Lake。在创建通道时,您可以选择一个或多个事件数据存储,用于存储来自通道来源的事件。只要将目标事件数据存储设置为记录 eventCategory="ActivityAuditLog"
事件,即可根据需要更改通道的目标事件数据存储。当您为来自外部合作伙伴的活动创建通道时,您需要向合作伙伴或来源应用程序提供通道 ARN。附加到该通道的资源策略允许来源通过该通道传输事件。如果通道没有资源策略,则只有通道所有者可以针对该通道调用 PutAuditEvents
API。
CloudTrail已与许多事件源提供商合作,例如 Okta 和LaunchDarkly. 当您创建与外部事件源的集成时Amazon,您可以选择其中一个合作伙伴作为事件源,也可以选择 “我的自定义集成” 将来自您自己的来源的事件集成到CloudTrail。每个来源最多允许一个通道。
有两种类型的集成:直接集成和解决方案集成。通过直接集成,合作伙伴将调用 PutAuditEvents
API 以将事件传送到您的 Amazon 账户的事件数据存储中。通过解决方案集成,应用程序将在您的 Amazon 账户中运行,并且它将调用 PutAuditEvents
API 将事件传送到您的 Amazon 账户的事件数据存储中。
在 Integrations(集成)页面上,您可以选择 Available sources(可用来源)选项卡,以查看合作伙伴的 Integration type(集成类型)。
要开始使用,请创建集成,使用CloudTrail控制台记录来自合作伙伴或其他应用程序源的事件。
与CloudTrail合作伙伴建立集成
当您创建与 Amazon 外部事件源的集成时,您可以选择其中一个合作伙伴作为事件源。当您创建CloudTrail与合作伙伴应用程序的集成时,合作伙伴需要您在此工作流程中创建的频道的 Amazon 资源名称 (ARN) 才能向其发送事件CloudTrail。在创建集成后,您可以按照合作伙伴的说明向合作伙伴提供所需的通道 ARN,以完成集成的配置。在合作伙伴致电PutAuditEvents
整合渠道CloudTrail后,集成开始将合作伙伴活动纳入其中。
-
登录Amazon Web Services Management Console并通过 https://console.aws.amazon.com/cloudtrail/
打开CloudTrail控制台。 -
在导航窗格的 Lake 下,选择集成。
-
在 Add integration(添加集成)页面上,为您的通道输入名称。该名称可以包含 3-128 个字符。只允许使用字母、数字、句点、下划线和短划线。
-
选择要从中获取事件的合作伙伴应用程序来源。如果您要与来自您自己的应用程序(在本地或云中托管)的事件集成,请选择 My custom integration(我的自定义集成)。
-
在 Event delivery location(事件传送位置)中,选择将相同活动事件记录到现有事件数据存储中,或创建新的事件数据存储。
如果您选择创建新的事件数据存储,请输入事件数据存储的名称,并以天为单位指定保留期。保留期的有效值为 7 到 2557(七年)之间的整数。事件数据存储将保留指定天数内的事件数据。默认情况下,事件数据将保留 2557 天。
如果您选择将活动事件记录到一个或多个现有事件数据存储中,请从列表中选择事件数据存储。事件数据存储只能包含活动事件。控制台中的事件类型必须是 Events from integrations(来自集成的事件)。在 API 中,
eventCategory
值必须为ActivityAuditLog
。 -
在 Resource policy(资源策略)中,为集成的通道配置资源策略。资源策略是 JSON 策略文档,它们指定了指定主体可在资源上执行的操作,以及在什么条件下执行操作。在资源策略中定义为主体的账户可以调用
PutAuditEvents
API,以向您的通道传送事件。如果资源所有者的 IAM policy 允许cloudtrail-data:PutAuditEvents
操作,则资源所有者将拥有对资源的隐式访问权限。该策略所需的信息由集成类型决定。要进行方向整合,CloudTrail自动添加合作伙伴的Amazon账户 ID,并要求您输入合作伙伴提供的唯一外部 ID。对于解决方案集成,您必须指定至少一个 Amazon 账户 ID 作为主体,并且可以选择输入外部 ID,以防范混淆代理。
注意
如果您没有为通道创建资源策略,则只有通道所有者可以针对该通道调用
PutAuditEvents
API。-
对于直接集成,请输入您的合作伙伴提供的外部 ID。集成合作伙伴将提供唯一的外部 ID(如账户 ID 或随机生成的字符串)用于集成,以防范混淆代理。合作伙伴负责创建和提供唯一的外部 ID。
您可以选择 How to find this?(如何查找?),以查看描述如何查找外部 ID 的合作伙伴文档。
注意
如果资源策略包括外部 ID,则针对
PutAuditEvents
API 的所有调用都必须包括该外部 ID。但是,如果策略未定义外部 ID,合作伙伴仍然可以调用PutAuditEvents
API,并指定externalId
参数。 -
要进行解决方案集成,请选择添加AmazonAmazon账户以指定要在策略中添加为委托人的账户 ID。
-
-
(可选)在 Tags(标签)区域中,您最多可以添加 50 个标签键和值对,以帮助您对事件数据存储和通道的访问进行识别、排序和控制。要详细了解如何使用 IAM 策略以根据标签授权对事件数据存储的访问,请参阅示例:拒绝基于标签创建或删除事件数据存储的访问权限。有关如何在中使用标签的更多信息Amazon,请参阅中的Amazon Web Services 一般参考标记Amazon资源。
-
在准备好创建新的集成后,请选择 Add integration(添加集成)。没有审阅页。CloudTrail创建集成,但您必须向合作伙伴应用程序提供渠道亚马逊资源名称 (ARN)。有关向合作伙伴应用程序提供通道 ARN 的说明,可在合作伙伴文档网站上找到。有关更多信息,请在 Integrations(集成)页面的 Available sources(可用来源)选项卡上,选择与合作伙伴相对应的 Learn more(了解更多)链接,以便在 Amazon Web Services Marketplace 中打开合作伙伴的页面。
要完成集成的设置,请向合作伙伴或来源应用程序提供通道 ARN。根据集成类型,您、合作伙伴或应用程序将运行 PutAuditEvents
API,以将活动事件传送到您的 Amazon 账户的事件数据存储。活动事件交付后,您可以使用 CloudTrail Lake 搜索、查询和分析从应用程序记录的数据。您的事件数据包括与CloudTrail事件负载匹配的字段eventVersion
,例如eventSource
、和userIdentity
。
创建自定义集成
您可以使用CloudTrail在混合环境中记录和存储来自任何来源的用户活动数据,例如本地或云端托管的内部应用程序或 SaaS 应用程序、虚拟机或容器。在 CloudTrail Lake 控制台中执行此过程的前半部分,然后调用 PutAuditEvents
API 来采集事件,提供您的频道 ARN 和事件负载。在使用 PutAuditEvents
API 将应用程序活动纳入后CloudTrail,您可以使用 CloudTrail Lake 搜索、查询和分析从应用程序记录的数据。
-
登录Amazon Web Services Management Console并通过 https://console.aws.amazon.com/cloudtrail/
打开CloudTrail控制台。 -
在导航窗格的 Lake 下,选择集成。
-
在 Add integration(添加集成)页面上,为您的通道输入名称。该名称可以包含 3-128 个字符。只允许使用字母、数字、句点、下划线和短划线。
-
选择 My custom integration(我的自定义集成)。
-
在 Event delivery location(事件传送位置)中,选择将相同活动事件记录到现有事件数据存储中,或创建新的事件数据存储。
如果您选择创建新的事件数据存储,请输入事件数据存储的名称,并以天为单位指定保留期。保留期的有效值为 7 到 2557(七年)之间的整数。事件数据存储将保留指定天数内的事件数据。默认情况下,事件数据将保留 2557 天。
如果您选择将活动事件记录到一个或多个现有事件数据存储中,请从列表中选择事件数据存储。事件数据存储只能包含活动事件。控制台中的事件类型必须是 Events from integrations(来自集成的事件)。在 API 中,
eventCategory
值必须为ActivityAuditLog
。 -
在 Resource policy(资源策略)中,为集成的通道配置资源策略。资源策略是 JSON 策略文档,它们指定了指定主体可在资源上执行的操作,以及在什么条件下执行操作。在资源策略中定义为主体的账户可以调用
PutAuditEvents
API,以向您的通道传送事件。注意
如果您没有为通道创建资源策略,则只有通道所有者可以针对该通道调用
PutAuditEvents
API。-
(可选)输入唯一的外部 ID,以提供额外一层保护。该外部 ID 是一个唯一的字符串,如账户 ID 或随机生成的字符串,以防范混淆代理。
注意
如果资源策略包括外部 ID,则针对
PutAuditEvents
API 的所有调用都必须包括该外部 ID。但是,如果策略未定义外部 ID,您仍然可以调用PutAuditEvents
API,并指定externalId
参数。 -
选择添加Amazon账户,在频道的资源策略中指定要添加为委托人的每个Amazon账户 ID。
-
-
(可选)在 Tags(标签)区域中,您最多可以添加 50 个标签键和值对,以帮助您对事件数据存储和通道的访问进行识别、排序和控制。要详细了解如何使用 IAM 策略以根据标签授权对事件数据存储的访问,请参阅示例:拒绝基于标签创建或删除事件数据存储的访问权限。有关如何在中使用标签的更多信息Amazon,请参阅中的Amazon Web Services 一般参考标记Amazon资源。
-
在准备好创建新的集成后,请选择 Add integration(添加集成)。没有审阅页。CloudTrail创建集成,但要集成您的自定义事件,您必须在
PutAuditEvents
请求中指定频道 ARN。 -
调用
PutAuditEvents
API 将您的活动事件采集到。CloudTrail每个PutAuditEvents
请求最多可以添加 100 个活动事件(或最多 1MB)。您需要在前面的步骤中创建的频道 ARN、CloudTrail要添加的事件的负载以及外部 ID(如果为您的资源策略指定)。在将事件负载纳入之前,请确保事件负载中没有敏感或个人身份信息。CloudTrail您收录到的活动CloudTrail必须遵循. CloudTrail湖泊集成事件架构提示
使用 Amazon CloudShell 确保您正在运行最新的 Amazon API。
以下示例演示了如何使用 put-audit-events CLI 命令。--audit-events 和 --channel-arn 参数是必需的。您需要在前面的步骤中创建的通道的 ARN,可以从集成详细信息页面复制该 ARN。的值--audit-events是事件对象的 JSON 数组。
--audit-events
包括来自事件的必需 ID、作为值的事件的所需负载,以及一个可选的EventData校验和,用于在摄入事件后帮助验证事件的完整性。CloudTrailaws cloudtrail-data put-audit-events \ --region
region
\ --channel-arn $ChannelArn \ --audit-events \ id="event_ID
",eventData='"{event_payload
}"' \ id="event_ID
",eventData='"{event_payload
}"',eventDataChecksum="optional_checksum
"以下是包含两个事件示例的示例命令。
aws cloudtrail-data put-audit-events \ --region us-east-1 \ --channel-arn arn:aws:cloudtrail:us-east-1:01234567890:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE \ --audit-events \ id="EXAMPLE3-0f1f-4a85-9664-d50a3EXAMPLE",eventData='"{\"eventVersion\":\0.01\",\"eventSource\":\"custom1.domain.com\", ... \}"' \ id="EXAMPLE7-a999-486d-b241-b33a1EXAMPLE",eventData='"{\"eventVersion\":\0.02\",\"eventSource\":\"custom2.domain.com\", ... \}"',eventDataChecksum="EXAMPLE6e7dd61f3ead...93a691d8EXAMPLE"
以下示例命令添加了
--cli-input-json
参数,以指定事件有效负载的 JSON 文件(custom-events.json
)。aws cloudtrail-data put-audit-events \ --channel-arn $channelArn \ --cli-input-json file://custom-events.json \ --region us-east-1
以下是示例 JSON 文件
custom-events.json
的示例内容。{ "auditEvents": [ { "eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\", \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\", \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\", \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\", \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"}, \"additionalEventData\":{\"key\":\"value\"}, \"sourceIPAddress\":\"
source_IP_address
\",\"recipientAccountId\":\"recipient_account_ID
\"}", "id": "1" } ] }
(可选)计算校验和值
您在PutAuditEvents
请求EventDataChecksum
中指定为的值的校验和可帮助您验证CloudTrail收到的事件是否与校验和相匹配;它有助于验证事件的完整性。校验和值采用一种 base64-SHA256 算法,您可以通过运行以下命令来计算该值。
printf %s "{"eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\", \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\", \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\", \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\", \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"}, \"additionalEventData\":{\"key\":\"value\"}, \"sourceIPAddress\":\"
source_IP_address
\", \"recipientAccountId\":\"recipient_account_ID
\"}", "id": "1"}" \ | openssl dgst -binary -sha256 | base64
该命令将返回校验和。以下是示例。
EXAMPLEHjkI8iehvCUCWTIAbNYkOgO/t0YNw+7rrQE=
校验和值将成为您的 PutAuditEvents
请求中 EventDataChecksum
的值。如果校验和与所提供事件的校验和不匹配,则以InvalidChecksum
错误CloudTrail拒绝该事件。
有关集成合作伙伴的其他信息
本节中的表格提供了每个集成合作伙伴的来源名称,并标识了集成类型(直接集成或解决方案集成)。
在调用 CreateChannel
API 时,需要提供 Source name(源名称)列中的信息。您可以将源名称指定为 Source
参数的值。
合作伙伴名称(控制台) | 源名称(API) | 集成类型 |
---|---|---|
我的自定义集成 | Custom |
solution |
Cloud Storage Security | CloudStorageSecurityConsole |
solution |
Clumio | Clumio |
直接 |
CrowdStrike | CrowdStrike |
solution |
CyberArk | CyberArk |
solution |
GitHub | GitHub |
solution |
Kong Inc | KongGatewayEnterprise |
solution |
LaunchDarkly | LaunchDarkly |
直接 |
Netskope | NetskopeCloudExchange |
solution |
Nordcloud,IBM 旗下的一家公司 | IBMMulticloud |
直接 |
MontyCloud | MontyCloud |
直接 |
Okta | OktaSystemLogEvents |
solution |
One Identity | OneLogin |
solution |
Shoreline.io | Shoreline |
solution |
Snyk.io | Snyk |
直接 |
Wiz | WizAuditLogs |
solution |
查看合作伙伴文档
您可以通过查看合作伙伴的文档,详细了解合作伙伴与 CloudTrail Lake 的集成。
查看合作伙伴文档
-
登录Amazon Web Services Management Console并通过 https://console.aws.amazon.com/cloudtrail/
打开CloudTrail控制台。 -
在导航窗格的 Lake 下,选择集成。
-
在 Integrations(集成)页面上,选择 Available sources(可用资源),然后选择与您要查看其文档的合作伙伴相对应的 Learn more(了解更多)。