本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
修复可能遭到入侵的 S3 存储桶
GuardDuty 生成时GuardDuty S3 保护查找类型,它表示您的 Amazon S3 存储桶已被盗用。如果导致发现的行为在您的环境中是预料之中的,则可以考虑创建抑制规则。如果预计不会出现这种情况,请按照以下建议步骤修复 AWS 环境中可能遭到入侵的 Amazon S3 存储桶:
-
确定可能受到威胁的 S3 资源。
S3 的 GuardDuty 调查结果将在查找结果详细信息中列出关联的 S3 存储桶、其 Amazon 资源名称 (ARN) 及其所有者。
-
确定可疑活动的来源和使用的API呼叫。
使用的API呼叫将按查找结果详细信息
API
中列出。来源将是IAM委托人(IAM角色、用户或账户),识别详细信息将在调查结果中列出。根据源类型,提供远程 IP 地址或源域信息,以便您评估源是否已获得授权。如果发现涉及来自 Amazon EC2 实例的证书,则还将包括该资源的详细信息。 -
确定调用源是否有权访问已识别的资源。
例如,考虑以下情况:
-
如果涉及IAM用户,他们的凭证是否可能遭到泄露? 有关更多信息,请参阅 修复可能被泄露的凭证 AWS。
-
如果从一个API以前没有调用过这种类型的委托人调用的API,那么这个源是否需要访问权限才能执行此操作? 能否进一步限制存储桶权限?
-
如果可以从用户名
ANONYMOUS_PRINCIPAL
和用户类型AWSAccount
看到访问,则表明存储桶是公有的,并已被访问。这个存储桶应该是公有的吗? 如果不是,请查看下面的安全建议,了解共享 S3 资源的替代解决方案。 -
如果访问是成功
PreflightRequest
调用的,则从用户名ANONYMOUS_PRINCIPAL
中看到用户类型为,AWSAccount
则表示存储桶设置了跨域资源共享 (CORS) 策略。这个存储桶应该有CORS政策吗? 如果不是,请确保存储桶不会无意中公开,并查看下面的安全建议,了解共享 S3 资源的替代解决方案。有关更多信息,CORS请参阅 S3 用户指南中的使用跨源资源共享 (CORS)。
-
-
确定 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 安全最佳实践。