修复可能遭到入侵的 S3 存储桶 - Amazon GuardDuty

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

修复可能遭到入侵的 S3 存储桶

请按照以下建议步骤修复 AWS 环境中可能遭到入侵的 Amazon S3 存储桶:

  1. 确定可能受到威胁的 S3 资源。

    S3 的 GuardDuty 调查结果将在查找结果详细信息中列出关联的 S3 存储桶、其 Amazon 资源名称 (ARN) 及其所有者。

  2. 确定可疑活动的来源和使用的API呼叫。

    使用的API呼叫将按查找结果详细信息API中列出。来源将是IAM委托人(IAM角色、用户或账户),识别详细信息将在调查结果中列出。根据源类型,提供远程 IP 地址或源域信息,以便您评估源是否已获得授权。如果发现涉及来自 Amazon EC2 实例的证书,则还将包括该资源的详细信息。

  3. 确定调用源是否有权访问已识别的资源。

    例如,考虑以下情况:

    • 如果涉及IAM用户,他们的凭证是否可能遭到泄露? 有关更多信息,请参阅 修复可能被泄露的凭证 AWS

    • 如果从一个API以前没有调用过这种类型的委托人调用的API,那么这个源是否需要访问权限才能执行此操作? 能否进一步限制存储桶权限?

    • 如果可以从用户名 ANONYMOUS_PRINCIPAL用户类型 AWSAccount 看到访问,则表明存储桶是公有的,并已被访问。这个存储桶应该是公有的吗? 如果不是,请查看下面的安全建议,了解共享 S3 资源的替代解决方案。

    • 如果访问是成功PreflightRequest调用的,则从用户名ANONYMOUS_PRINCIPAL中看到用户类型为,AWSAccount则表示存储桶设置了跨域资源共享 (CORS) 策略。这个存储桶应该有CORS政策吗? 如果不是,请确保存储桶不会无意中公开,并查看下面的安全建议,了解共享 S3 资源的替代解决方案。有关更多信息,CORS请参阅 S3 用户指南中的使用跨源资源共享 (CORS)

  4. 确定 S3 存储桶是否包含敏感数据。

    使用 Amazon Macie 确定 S3 存储桶是否包含敏感数据,例如个人身份信息 (PII)、财务数据或证书。如果您的 Macie 账户启用了自动敏感数据发现,请查看 S3 存储桶的详细信息,以便更好地了解 S3 存储桶的内容。如果您的 Macie 账户禁用了此功能,我们建议您将其开启以加快评估速度。或者,您可以创建并运行敏感数据发现作业,以检查 S3 存储桶对象中的敏感数据。有关更多信息,请参阅使用 Macie 发现敏感数据

如果访问已获授权,则可以忽略调查发现。https://console.aws.amazon.com/guardduty/控制台允许您设置规则来完全禁止单个发现,这样它们就不会再出现。有关更多信息,请参阅 抑制规则

如果您确定自己的 S3 数据已被未授权方泄露或访问,请查看以下 S3 安全建议,以收紧权限并限制访问权限。适当的修复解决方案取决于特定环境的需求。

基于特定 S3 存储桶访问需求的建议

以下列表根据特定的 Amazon S3 存储桶访问需求提供了建议:

  • 为了集中限制公众访问您的 S3 数据的使用,S3 会阻止公共访问。可以通过四种不同的设置为接入点、存储桶和 AWS 账户启用阻止公共访问设置,以控制访问的粒度。有关更多信息,请参阅 S3 屏蔽公共访问权限设置

  • AWS 访问策略可用于控制IAM用户如何访问您的资源或如何访问您的存储桶。有关更多信息,请参阅使用存储桶策略和用户策略

    此外,您可以使用具有 S3 存储桶策略的虚拟私有云 (VPC) 终端节点来限制对特定VPC端点的访问。有关更多信息,请参阅 Amazon S3 VPC 终端节点存储桶策略示例

  • 要暂时允许账户以外的受信任实体访问您的 S3 对象,您可以创建URL通过 S3 进行预签名。此访问权限是使用您的账户凭证创建的,根据使用的凭证,可持续 6 小时到 7 天。有关更多信息,请参阅URLs使用 S3 生成预签名

  • 对于需要在不同源之间共享 S3 对象的用例,您可以使用 S3 接入点创建权限集,这些权限集仅限于私有网络中的对象。有关更多信息,请参阅使用 Amazon S3 接入点管理数据访问

  • 要安全地向其他 AWS 账户授予对您的 S3 资源的访问权限,您可以使用访问控制列表 (ACL),有关更多信息,请参阅使用管理 S3 访问权限ACLs

有关 S3 安全选项的更多信息,请参阅 S3 安全最佳实践