安全 OU — 日志存档账户 - AWS 规范性指导

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

安全 OU — 日志存档账户

通过进行简短的调查来影响AWS安全参考架构 (AWSSRA) 的未来。

下图说明了在日志存档账户中配置的 AWS 安全服务。

日志存档账户中的安全服务

日志存档账户专门用于摄取和存档所有与安全相关的日志和备份。有了集中式日志,您可以监控、审计 Amazon S3 对象访问、身份未经授权的活动、IAM 策略变更以及对敏感资源执行的其他关键活动并发出警报。安全目标很简单:这应该是不可变的存储,只能通过受控、自动化和受监控的机制进行访问,并且专为持久性而构建(例如,通过使用适当的复制和存档流程)。可以深入实施控制措施,以保护日志和日志管理过程的完整性和可用性。除了预防性控制(例如分配用于访问的最低权限角色和使用受控的 AWS KMS 密钥加密日志)之外,还可以使用 AWS Config 等侦探控制来监控(并提醒和修复)此权限集合,以防意外更改。

设计考虑
  • 基础架构、运营和工作负载团队使用的操作日志数据通常与安全、审计和合规团队使用的日志数据重叠。我们建议您将操作日志数据整合到日志存档帐户中。根据您的特定安全和监管要求,您可能需要筛选保存到此账户的操作日志数据。您可能还需要指定谁有权访问日志存档帐户中的操作日志数据。

日志的类型

AWS SRA 中显示的主要日志包括 CloudTrail (组织跟踪)、亚马逊 VPC 流日志、来自亚马逊 CloudFront 和 AWS WAF 的访问日志以及来自亚马逊 Route 53 的 DNS 日志。这些日志提供对用户、角色、AWS 服务或网络实体(例如,通过 IP 地址识别)所采取(或尝试)操作的审计。也可以捕获和存档其他日志类型(例如应用程序日志或数据库日志)。有关日志源和日志记录最佳实践的更多信息,请参阅每项服务的安全文档

亚马逊 S3 作为中央日志存储

许多 AWS 服务都会在 Amazon S3 中记录信息,无论是默认还是单独记录信息。AWS CloudTrail、Amazon VPC 流日志、AWS Config 和 Elastic Load Balancing 是在亚马逊 S3 中记录信息的服务的一些示例。这意味着日志完整性是通过 S3 对象完整性实现的;日志机密性是通过 S3 对象访问控制实现的;日志可用性是通过 S3 对象锁定、S3 对象版本和 S3 生命周期规则实现的。通过将信息记录在位于专用账户中的集中式 S3 存储桶中,您只需在几个存储桶中即可管理这些日志,并实施严格的安全控制、访问和职责分离。 

在 AWS SRA 中,存储在 Amazon S3 中的主日志来自 CloudTrail,因此本节介绍如何保护这些对象。本指南也适用于由您自己的应用程序或其他 AWS 服务创建的任何其他 S3 对象。每当 Amazon S3 中有需要高度完整性、强有力的访问控制以及自动保留或销毁的数据时,都要应用这些模式。 

默认情况下,上传到 S3 存储桶的所有新对象(包括 CloudTrail 日志)都使用亚马逊服务器端加密和 Amazon S3 托管的加密密钥 (SSE-S3) 进行加密。这有助于保护静态数据,但访问控制完全由 IAM 策略控制。要提供额外的托管安全层,您可以在所有安全 S3 存储桶上对您管理的 AWS KMS 密钥 (SSE-KMS) 使用服务器端加密。这增加了第二级访问控制。要读取日志文件,用户必须同时拥有 Amazon S3 对 S3 对象的读取权限以及允许他们通过关联的密钥策略进行解密的 IAM 策略或角色。

有两个选项可帮助您保护或验证存储在 Amazon S3 中的 CloudTrail 日志对象的完整性。 CloudTrail 提供日志文件完整性验证,以确定日志文件在 CloudTrail 传送后是被修改还是被删除。另一个选项是 S3 对象锁定

除了保护 S3 存储桶本身外,您还可以遵守日志服务(例如 CloudTrail)和日志存档账户的最低权限原则。例如,拥有 AWS 托管 IAM 策略授予权限的用户AWSCloudTrail_FullAccess可以禁用或重新配置其 AWS 账户中最敏感和最重要的审计功能。将此 IAM 策略的应用限制在尽可能少的个人身上。 

使用侦探控件(例如 AWS Config 和 AWS IAM Access Analyzer 提供的控制措施)来监控(并提醒和补救)这一更广泛的预防控制组合,以防意外变化。 

有关 S3 存储桶安全最佳实践的更深入讨论,请参阅 Amazon S3 文档在线技术讲座和博客文章《保护 Amazon S3 中数据的十大安全最佳实践》。

实现示例

AWS SRA 代码库提供了 A mazon S3 区块账户公共访问的实现示例。此模块阻止 AWS 组织中所有现有和未来账户的 Amazon S3 公开访问权限。

Amazon Security Lake

AWS SRA 建议您使用日志存档账户作为 Amazon Security Lake 的委托管理员账户。当您执行此操作时,Security Lake 会使用与其他 SRA 推荐的安全日志相同的账户在专用 S3 存储桶中收集支持的日志。

为了保护日志和日志管理过程的可用性,Security Lake 的 S3 存储桶只能由 Security Lake 服务或由 Security Lake 为源或订阅者管理的 IAM 角色进行访问。除了使用预防性控制措施(例如分配访问权限最低的角色以及使用受控的 AWS 密钥管理服务 (AWS KMS) 密钥对日志进行加密)之外,还可以使用 AWS Config 等侦探控制来监控(并提醒和修复)这组权限以防意外更改。

Security Lake 管理员可以在您的 AWS 组织中启用日志收集。这些日志存储在日志存档账户的区域 S3 存储桶中。此外,为了集中管理日志并便于存储和分析,Security Lake 管理员可以选择一个或多个汇总区域,整合和存储来自所有区域 S3 存储桶的日志。来自支持的 AWS 服务的日志会自动转换为名为开放网络安全架构框架 (OCSF) 的标准化开源架构,并以 Apache Parquet 格式保存在 Security Lake S3 存储桶中。在 OCSF 的支持下,Security Lake 可以高效地规范和整合来自 AWS 和其他企业安全来源的安全数据,从而创建统一而可靠的安全相关信息存储库。

Security Lake 可以收集与 AWS CloudTrail 管理事件相关的日志,以及适用于 Amazon S3 和 AWS Lambda CloudTrail 的数据事件。要在 Security Lake 中收集 CloudTrail 管理事件,您必须至少有一个用于收集读取和写入 CloudTrail 管理事件的 CloudTrail 多区域组织跟踪。必须为跟踪启用日志记录。多区域跟踪将来自多个区域的日志文件传输到单个 AWS 账户的单个 S3 存储桶。如果区域位于不同的国家,请考虑数据导出要求以确定是否可以启用多区域跟踪。

AWS Security Hub 是 Security Lake 中受支持的原生数据源,您应该将 Security Hub 的调查结果添加到安全湖中。Security Hub 从许多不同的 AWS 服务和第三方集成中生成调查结果。这些发现有助于您大致了解自己的合规状况,以及您是否遵循了 AWS 和 AWS 合作伙伴解决方案的安全建议。

要从日志和事件中获得可见性和可操作的见解,您可以使用 Amazon Athen a、亚马逊服务 OpenSearch 、Amazon Quicksigh t 和第三方解决方案等工具查询数据。需要访问 Security Lake 日志数据的用户不应直接访问日志存档帐户。他们只能从安全工具帐户访问数据。或者,他们可以使用提供分析工具(例如 OpenSearch 服务)的其他 AWS 账户或本地位置 QuickSight,或安全信息和事件管理 (SIEM) 工具等第三方工具。要提供对数据的访问权限,管理员应在日志存档帐户中配置 Sec urity Lake 订阅者,并将需要访问数据的帐户配置为查询访问订阅者。有关更多信息,请参阅本指南安全 OU — 安全工具账户部分中的 Amazon Security Lak e。

Security Lake 提供了 AWS 托管策略,可帮助您管理管理员对该服务的访问权限。有关更多信息,请参阅 Sec urity Lake 用户指南。作为最佳实践,我们建议您通过开发管道限制 Security Lake 的配置,并防止通过 AWS 控制台或 AWS 命令行界面 (AWS CLI) Line Interface (AWS CLI) 进行配置更改。此外,您应设置严格的 IAM 策略和服务控制策略 (SCP),以便仅提供管理 Security Lake 所需的权限。您可以将通知配置为检测对这些 S3 存储桶的任何直接访问。