中的安全最佳实践 Amazon CloudTrail - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

中的安全最佳实践 Amazon CloudTrail

Amazon CloudTrail 提供了许多安全功能,供您在制定和实施自己的安全策略时考虑。以下最佳实践是一般指导原则,并不代表完整安全解决方案。这些最佳实践可能不适合环境或不满足环境要求,请将其视为有用的考虑因素而不是惯例。

CloudTrail 侦探安全最佳实践

创建跟踪

要持续记录您的 Amazon 账户中的事件,您必须创建跟踪。尽管在不创建跟踪的情况下在 CloudTrail 控制台中为管理事件 CloudTrail 提供 90 天的事件历史记录信息,但它不是永久记录,也不能提供有关所有可能的事件类型的信息。要获得持续记录以及包含您指定的所有事件类型的记录,您必须创建跟踪,它将日志文件传送到您指定的 Simple Storage Service(Amazon S3)存储桶。

为了帮助管理您的 CloudTrail 数据,可以考虑创建一个记录所有管理事件的跟踪 Amazon Web Services 区域,然后创建其他跟踪来记录资源的特定事件类型,例如 Amazon S3 存储桶活动或 Amazon Lambda 函数。

以下是您可以采取的一些步骤:

将路径应用于所有人 Amazon Web Services 区域

要获得您 Amazon 账户中的 IAM 身份或服务所发生事件的完整记录,应将每个跟踪配置为全部记录事件 Amazon Web Services 区域。通过全部记录事件 Amazon Web Services 区域,您可以确保您的 Amazon 账户中发生的所有事件都被记录下来,无论这些事件发生在哪个 Amazon 区域。这包括记录全球服务事件,这些事件记录到该服务的特定 Amazon 区域。当您创建适用于所有区域的跟踪时,会 CloudTrail 记录每个区域的事件并将 CloudTrail 事件日志文件传送到您指定的 S3 存储桶。如果您在创建应用于所有区域的跟踪后又添加了一个 Amazon 区域,则该新区域会自动包括在内,该区域中的事件也将被记录。这是您在 CloudTrail 控制台中创建跟踪时的默认选项。

以下是您可以采取的一些步骤:

启用 CloudTrail 日志文件完整性

在安全和取证调查中,经验证的日志文件非常重要。例如,通过经验证的日志文件,您可以十分确定日志文件本身未更改,或者特定 IAM 身份凭证执行了特定 API 活动。 CloudTrail 日志文件完整性验证过程还可以让您知道日志文件是否已被删除或更改,或者肯定地断言在给定时间段内没有向您的账户发送任何日志文件。 CloudTrail 日志文件完整性验证使用行业标准算法:SHA-256 用于哈希,SHA-256 使用 RSA 进行数字签名。这使得在没有检测到的情况下修改、删除或伪造 CloudTrail日志文件在计算上是不可行的。有关更多信息,请参阅 启用验证并验证文件

与 Amazon CloudWatch 日志集成

CloudWatch 日志允许您监控和接收捕获的特定事件的警报 CloudTrail。发送到 CloudWatch 日志的事件是配置为由您的跟踪记录的事件,因此请确保您已将一个或多个跟踪配置为记录您感兴趣监控的事件类型(管理事件和/或数据事件)。

例如,您可以监控密钥安全和与网络相关的管理事件,例如Amazon Web Services Management Console 登录失败事件。

以下是您可以采取的一些步骤:

使用亚马逊 GuardDuty

Amazon GuardDuty 是一项威胁检测服务,可帮助您保护您的账户、容器、工作负载和 Amazon 环境中的数据。通过使用机器学习 (ML) 模型以及异常和威胁检测功能,可以 GuardDuty 持续监控不同的日志源,以识别环境中的潜在安全风险和恶意活动,并确定其优先级。

例如,如果它检测到通过实例启动角色专为 Amazon EC2 实例创建但正在从其中的其他账户使用的证书,则 GuardDuty 会检测到潜在的证书泄露。 Amazon有关更多信息,请参阅 Amazon GuardDuty 用户指南

使用 Amazon Security Hub

使用监控您的使用情况, CloudTrail 因为它与安全最佳实践有关Amazon Security Hub。Security Hub 使用侦测性安全控件来评估资源配置和安全标准,以帮助您遵守各种合规框架。有关使用 Security Hub 评估 CloudTrail 资源的更多信息,请参阅《Amazon Security Hub 用户指南》中的Amazon CloudTrail 控件

CloudTrail 预防性安全最佳实践

的以下最佳做法 CloudTrail 可以帮助防止安全事件。

记录到专用和集中式 Simple Storage Service(Amazon S3)存储桶

CloudTrail 日志文件是 IAM 身份或 Amazon 服务所执行操作的审计日志。这些日志的完整性、完全性和可用性对于进行取证和审计至关重要。通过登录到专用和集中化的 Simple Storage Service(Amazon S3)存储桶,您可以强制实施严格的安全控制、访问和责任划分。

以下是您可以采取的一些步骤:

  • 创建一个单独的 Amazon 账户作为日志存档账户。如果您使用 Amazon Organizations,请在组织中注册此账户,并考虑创建组织跟踪来记录组织中所有 Amazon 账户的数据。

  • 如果您不使用 Organizations,但想要记录多个 Amazon 账户的数据,请创建一个跟踪以记录此日志存档帐户中的活动。将对此账户的访问权限限制为仅限应该对账户和审计数据具有访问权限的可信管理用户。

  • 在创建跟踪的过程中,无论是组织跟踪还是单个 Amazon 账户的跟踪,都要创建一个专用 Amazon S3 存储桶来存储该跟踪的日志文件。

  • 如果您想记录多个 Amazon 账户的活动,请修改存储桶策略以允许记录和存储您想要记录 Amazon 账户活动的所有账户的日志 Amazon 文件。

  • 如果您没有使用组织跟踪记录,请在所有 Amazon 账户中创建跟踪,同时在日志存档账户中指定 Simple Storage Service(Amazon S3)存储桶。

使用带有 Amazon KMS 托管密钥的服务器端加密

默认情况下,传送 CloudTrail 到您的 S3 存储桶的日志文件使用服务器端加密和 KMS 密钥 (SSE-KMS) 进行加密。要将 SSE-KMS 与配合使用 CloudTrail,您需要创建并管理 KMS 密钥 Amazon KMS key,也称为 KMS 密钥。

注意

如果您使用 SSE-KMS 和日志文件验证,并且您已修改您的 Simple Storage Service(Amazon S3)存储桶策略以仅允许 SSE-KMS 加密文件,您将无法创建利用该存储桶的跟踪记录,除非您修改存储桶策略以专门允许 AES256 加密,如以下示例策略行所示。

"StringNotEquals": { "s3:x-amz-server-side-encryption": ["aws:kms", "AES256"] }

以下是您可以采取的一些步骤:

将条件键添加到默认 Amazon SNS 主题策略

当您配置跟踪以向 Amazon SNS 发送通知时, CloudTrail 会在您的 SNS 主题访问策略中添加一条允许向 SNS 主题 CloudTrail 发送内容的策略声明。作为安全最佳实践,我们建议在 CloudTrail 策略声明中添加aws:SourceArn(或可选aws:SourceAccount)条件密钥。这有助于防止未经授权的账户访问您的 SNS 主题。有关更多信息,请参阅 Amazon SNS 主题政策 CloudTrail

对您存储日志文件的 Simple Storage Service(Amazon S3)存储桶实施最低权限访问

CloudTrail 将事件跟踪到您指定的 Amazon S3 存储桶。这些日志文件包含 IAM 身份和 Amazon 服务所采取的操作的审计日志。这些日志的完整性和完全性对于进行审计和取证至关重要。为了帮助确保完整性,在创建或修改对用于存储 CloudTrail 日志文件的任何 Amazon S3 存储桶的访问权限时,应遵守最低权限原则。

执行以下步骤:

在存储日志文件的 Amazon S3 存储桶上启用 MFA 删除

配置多重身份验证(MFA)后,尝试更改存储桶版本控制状态或删除存储桶中的对象版本时,需要进行额外的身份验证。这样,即使某个用户获得有权永久删除 Amazon S3 对象的 IAM 用户的密码,您仍然能够防止可能破坏日志文件的操作。

以下是您可以采取的一些步骤:

注意

不能将 MFA 删除与生命周期配置一起使用。有关生命周期配置以及如何与其他配置交互的更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的生命周期和其他存储桶配置

配置存储日志文件的 Simple Storage Service(Amazon S3)存储桶上的生命周期管理

CloudTrail 跟踪的默认设置是无限期地将日志文件存储在为跟踪配置的 Amazon S3 存储桶中。您可以使用 Simple Storage Service(Amazon S3)对象生命周期管理规则来定义您自己的保留策略,以更好地满足您的业务和审计需求。例如,您可能要将时间超过一年的日志文件存档到 Amazon Glacier,或者在经过一定时间之后删除日志文件。

注意

启用了多重身份验证(MFA)的存储桶上不支持生命周期配置。

限制对 AWSCloudTrail_FullAccess策略的访问权限

拥有该AWSCloudTrail_FullAccess策略的用户可以禁用或重新配置其 Amazon 账户中最敏感和最重要的审计功能。本政策不打算被广泛共享或广泛应用于您 Amazon 账户中的 IAM 身份。将本政策的适用范围限制在尽可能少的个人,即您希望担任 Amazon 账户管理员的个人。