本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用控制台为配置项创建事件数据存储
您可以创建事件数据存储以包含 AWS Config 配置项目,并使用事件数据存储来调查对生产环境的不合规更改。通过事件数据存储,您可以将不合规的规则与跟更改相关的用户和资源关联起来。配置项目表示您的账户中存在的受支持AWS资源的属性的 point-in-time视图。 AWS Config每当它检测到正在记录的资源类型发生变化时,都会创建一个配置项目。 AWS Config还会在捕获配置快照时创建配置项目。
您可以同时使用AWS Config和 CloudTrail Lake 来对您的配置项目运行查询。您可以使用AWS Config基于单个AWS 账户和或多个账户和AWS 区域区域的配置属性查询AWS资源的当前配置状态。相比之下,您可以使用 CloudTrail Lake 跨不同的数据源进行查询,例如 CloudTrail 事件、配置项目和规则评估。 CloudTrail Lake 查询涵盖所有AWS Config配置项目,包括资源配置和合规性历史记录。
为配置项目创建事件数据存储不会影响现有的AWS Config高级查询或任何已配置的AWS Config聚合器。您可以继续使用运行高级查询AWS Config,并AWS Config继续将历史文件传送到您的 S3 存储桶。
CloudTrail 湖泊事件数据存储会产生费用。创建事件数据存储时,您可以选择要用于事件数据存储的定价选项。定价选项决定了摄取和存储事件的成本,以及事件数据存储的默认和最长保留期。有关 CloudTrail 定价和管理 Lake 成本的信息,请参阅AWS CloudTrail定价
限制
以下限制适用于配置项目的事件数据存储。
-
不支持自定义配置项目
-
不支持使用高级事件选择器筛选事件
先决条件
在创建事件数据存储之前,请为所有账户和地区设置AWS Config记录。您可以使用 “快速设置”(一项功能)来快速创建由提供支持的配置记录器AWS Config。AWS Systems Manager
注意
AWS Config开始记录配置时,您需要支付服务使用费。有关定价的更多信息,请参阅 AWS Config 定价
此外,建议执行以下操作,但这些操作不是创建事件数据存储所必需的。
-
设置 Amazon S3 桶以接收配置快照(按需)和配置历史记录。有关快照的更多信息,请参阅《AWS Config 开发人员指南》中的 Managing the Delivery Channel(管理传送通道)和 Delivering Configuration Snapshot to an Amazon S3 Bucket(将配置快照传送到 Amazon S3 桶)。
-
指定要AWS Config用来评估所记录资源类型的合规性信息的规则。 CloudTrail Lake 的几个示例查询AWS ConfigAWS Config 规则需要评估AWS资源的合规性状态。有关更多信息AWS Config 规则,请参阅《AWS Config开发人员指南》AWS Config 规则中的使用评估资源。
为配置项目创建事件数据存储
登录AWS 管理控制台并打开 CloudTrail 控制台,网址为https://console.aws.amazon.com/cloudtrail/
。 -
在导航窗格中,在 Lake 下,选择事件数据存储。
-
选择创建事件数据存储。
-
在 Configure event data store(配置事件数据存储)页面上的 General details(一般细节)中,输入事件数据存储的名称。名字是必填的。
-
选择您要用于事件数据存储的定价选项。定价选项决定了摄取和存储事件的成本,以及您的事件数据存储的默认和最长保留期。有关更多信息,请参阅 AWS CloudTrail 定价
和管理 CloudTrail 湖泊成本。 可用选项如下:
-
一年可延期保留定价:如果您希望每月摄取的事件数据少于 25TB,并且想要灵活的保留期(最长 10 年),一般建议采用此选项。在前 366 天(默认保留期)内,存储包含在摄取定价中,没有额外收费。366 天后,可以按 pay-as-you-go定价延长保留期。这是默认选项。
-
默认保留期:366 天
-
最长保留期:3653 天
-
-
七年期保留定价:如果您希望每月摄取的事件数据大于 25TB,并且需要最长 7 年的保留期,则建议采用此选项。保留包含在摄取定价中,没有额外费用。
-
默认保留期:2557 天
-
最长保留期:2557 天
-
-
-
指定事件数据存储的保留期。一年可延期保留定价选项的保留期可以介于 7 天到 3653 天(大约 10 年)之间,七年期保留定价选项的保留期可以介于 7 天到 2557 天(约七年)之间。
CloudTrail Lake 通过检查事件是否在
eventTime指定的保留期内来确定是否保留该事件。例如,如果您将保留期指定为 90 天,eventTime则 CloudTrail 会删除超过 90 天的事件。 -
(可选)要使用启用加密AWS Key Management Service,请选择使用我自己的加密AWS KMS key。选择 “新建” 为您AWS KMS key创建,或选择 “现有” 以使用现有 KMS 密钥。在输入 KMS 别名中,按格式指定别名
alias/MyAliasName。使用您自己的 KMS 密钥需要编辑您的 KMS 密钥策略,以允许加密和解密您的事件数据存储。有关更多信息,请参阅为以下各项配置AWS KMS密钥策略 CloudTrail。 CloudTrail 还支持AWS KMS多区域密钥。有关多区域密钥的更多信息,请参阅 AWS Key Management Service 开发人员指南中的使用多区域密钥。使用自己的 KMS 密钥会产生加密和解密AWS KMS费用。在将事件数据存储与 KMS 密钥关联后,将无法移除或更改 KMS 密钥。
注意
要为组织事件数据存储启用AWS Key Management Service加密,必须使用管理账户的现有 KMS 密钥。
-
(可选)如果您想使用 Amazon Athena 对事件数据进行查询,请在 Lake 查询联合身份验证中选择启用。通过联合身份验证,您可以在 AWS Glue 数据目录中查看与事件数据存储相关的元数据,并在 Athena 中对事件数据运行 SQL 查询。存储在AWS Glue数据目录中的表元数据让 Athena 查询引擎知道如何查找、读取和处理您要查询的数据。有关更多信息,请参阅 联合事件数据存储。
要启用 Lake 查询联合身份验证,请选择启用,然后执行以下操作:
-
选择是要创建新角色还是使用现有 IAM 角色。AWS Lake Formation 使用此角色管理联合事件数据存储的权限。使用 CloudTrail 控制台创建新角色时, CloudTrail 会自动创建一个具有所需权限的角色。如果您选择现有角色,请确保该角色的策略提供所需的最低权限。
-
如果您在创建新角色,请输入名称来标识该角色。
-
如果您使用现有角色,请选择要使用的角色。角色必须存在于您的账户中。
-
-
(可选)选择启用资源策略以向您的事件数据存储添加基于资源的策略。基于资源的策略可让您控制哪些主体可以对您的事件数据存储执行操作。例如,您可以添加基于资源的策略,允许其他账户中的根用户查询此事件数据存储并查看查询结果。有关示例策略,请参阅 事件数据存储的基于资源的策略示例。
基于资源的策略包括一个或多个语句。策略中的每条语句都定义了支持或拒绝访问事件数据存储的主体以及主体可以对事件数据存储资源执行的操作。
事件数据存储的基于资源的策略支持以下操作:
-
cloudtrail:StartQuery -
cloudtrail:CancelQuery -
cloudtrail:ListQueries -
cloudtrail:DescribeQuery -
cloudtrail:GetQueryResults -
cloudtrail:GenerateQuery -
cloudtrail:GenerateQueryResultsSummary -
cloudtrail:GetEventDataStore
对于组织事件数据存储, CloudTrail 创建基于资源的默认策略,该策略列出了允许委派管理员帐户对组织事件数据存储执行的操作。此策略中的权限来自 AWS Organizations 中的委派管理员权限。在组织事件数据存储或组织发生更改后(例如,注册或删除了 CloudTrail 委托管理员帐户),此策略会自动更新。
-
-
(可选)在 Tags(标签)部分中,您最多可以添加 50 个标签键对,以帮助您对事件数据存储的访问进行识别、排序和控制。要详细了解如何使用 IAM 策略以根据标签授权对事件数据存储的访问,请参阅示例:拒绝基于标签创建或删除事件数据存储的访问权限。有关如何在中使用标签的更多信息AWS,请参阅《标记AWS资源用户指南》中的为AWS资源添加标签。
-
选择下一步。
-
在选择事件页面上,选择 AWS 事件,然后选择配置项目。
-
CloudTrail 将事件数据存储资源存储在您创建该资源的区域中,但默认情况下,在数据存储中收集的配置项目来自您账户中所有启用了录制的区域。(可选)您可以选择 Include only the current region in my event data store(在我的事件数据存储中仅包含当前区域),以便仅包含在当前区域中捕获的配置项目。如果不选择此选项,则您的事件数据存储将包含所有已启用记录的所在区域中的配置项目。
-
要让您的事件数据存储收集组织中所有账户的配置项目,请选择 “为我的AWS Organizations组织中的所有帐户启用”。您必须登录到组织的管理账户或委托管理员账户,才能创建为组织收集配置项目的事件数据存储。
-
选择 Next(下一步)以查看您的选择。
-
在查看并创建页面上,审核您的选择。选择编辑以对这节进行更改。当您准备好创建事件数据存储时,选择创建事件数据存储。
-
在事件数据存储页面上的事件数据存储表中可以看到新的事件数据存储。
从此时开始,事件数据存储将捕获配置项目。在创建事件数据存储之前出现的配置项目不会在该事件数据存储中。
配置项目架构
下表描述了与配置项目记录中的架构元素相匹配的必需和可选架构元素。的eventData内容由您的配置项目提供;其他字段由摄取 CloudTrail 后提供。
CloudTrail 中对事件记录内容进行了更详细的描述CloudTrail 记录管理、数据和网络活动事件的内容。
| 字段名称 | 输入类型 | 要求 | 说明 |
|---|---|---|---|
| eventVersion | 字符串 | 必需 |
AWS事件格式的版本。 |
| eventCategory | 字符串 | 必需 |
事件类别。对于配置项目,有效值为 |
| eventType | 字符串 | 必需 |
事件类型。对于配置项目,有效值为 |
| eventID | 字符串 | 必需 |
事件的唯一 ID。 |
| eventTime |
字符串 |
必需 |
采用通用协调时间(UTC)的事件时间戳,格式为 |
| awsRegion | 字符串 | 必需 |
AWS 区域要将事件分配给哪个。 |
| recipientAccountId | 字符串 | 必需 |
表示收到此事件的 AWS 账户 ID。 |
| 附录 |
附录 |
可选 |
显示有关事件延迟原因的信息。如果现有事件中缺少信息,则附录块将包含缺失的信息,以及缺失信息的原因。 |
| 字段名称 | 输入类型 | 要求 | 说明 |
|---|---|---|---|
| eventData |
- |
必需 | eventData 中的字段由您的配置项目提供。 |
|
字符串 | 可选 |
来自其来源的配置项目的版本。 |
|
字符串 | 可选 |
开始配置记录的时间。 |
|
字符串 | 可选 |
配置项目状态。有效值为 |
|
字符串 | 可选 |
与资源关联AWS 账户的 12 位数字 ID。 |
|
字符串 | 可选 |
AWS资源的类型。有关有效资源类型的更多信息,请参阅 AWS ConfigAPI 参考ConfigurationItem中的。 |
|
字符串 | 可选 |
资源的 ID(例如.,sg- |
|
字符串 | 可选 |
资源的自定义名称(如果可用)。 |
|
字符串 | 可选 |
与资源关联的 Amazon 资源名称(ARN)。 |
|
字符串 |
可选 |
资源AWS 区域所在的位置。 |
|
字符串 |
可选 |
与资源关联的可用区。 |
|
字符串 |
可选 |
创建资源时的时间戳。 |
|
JSON |
可选 |
资源配置的描述。 |
|
JSON |
可选 |
为某些资源类型AWS Config返回的配置属性,用于补充为配置参数返回的信息。 |
|
字符串 |
可选 |
CloudTrail 活动清单 IDs。 |
|
- | 可选 |
相关AWS资源列表。 |
|
字符串 |
可选 |
与相关资源的关系的类型。 |
|
字符串 |
可选 |
相关资源的资源类型。 |
|
字符串 |
可选 |
相关资源的 ID(例如,sg- |
|
字符串 |
可选 |
相关资源的自定义名称(如果可用)。 |
|
JSON |
可选 |
与资源关联的键值标签的映射。 |
以下示例显示了与配置项目记录中的架构元素匹配的架构元素的层次结构。
{ "eventVersion": String, "eventCategory: String, "eventType": String, "eventID": String, "eventTime": String, "awsRegion": String, "recipientAccountId": String, "addendum": Addendum, "eventData": { "configurationItemVersion": String, "configurationItemCaptureTime": String, "configurationItemStatus": String, "configurationStateId": String, "accountId": String, "resourceType": String, "resourceId": String, "resourceName": String, "arn": String, "awsRegion": String, "availabilityZone": String, "resourceCreationTime": String, "configuration": { JSON, }, "supplementaryConfiguration": { JSON, }, "relatedEvents": [ String ], "relationships": [ struct{ "name" : String, "resourceType": String, "resourceId": String, "resourceName": String } ], "tags": { JSON } } } }