本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
修复可能遭到入侵的 S3 存储桶
请按照以下建议步骤修复 Amazon 环境中可能遭到入侵的 Amazon S3 存储桶:
-
确定可能受到威胁的 S3 资源。
S3 的 GuardDuty 调查结果将在查找结果详细信息中列出关联的 S3 存储桶、其 Amazon 资源名称 (ARN) 及其所有者。
-
确定可疑活动源和使用的 API 调用。
使用的 API 调用将在调查发现详细信息中作为
API
列出。源可能是 IAM 主体(IAM 角色、用户或账户),识别信息将在调查发现中列出。根据源类型,提供远程 IP 地址或源域信息,以便您评估源是否已获得授权。如果发现涉及来自 Amazon EC2 实例的证书,则还将包括该资源的详细信息。 -
确定调用源是否有权访问已识别的资源。
例如,考虑以下情况:
-
如果涉及 IAM 用户,他们的证书是否可能遭到泄露? 有关更多信息,请参阅修复可能被泄露的凭证 Amazon。
-
如果 API 是从之前没有调用此类 API 历史记录的主体调用的,那么该源是否需要操作的访问权限? 能否进一步限制存储桶权限?
-
如果可以从用户名
ANONYMOUS_PRINCIPAL
和用户类型AWSAccount
看到访问,则表明存储桶是公有的,并已被访问。这个存储桶应该是公有的吗? 如果不是,请查看下面的安全建议,了解共享 S3 资源的替代解决方案。 -
如果从用户名
ANONYMOUS_PRINCIPAL
和用户类型AWSAccount
中看到访问是成功的PreflightRequest
调用,则表明存储桶已设置跨源资源共享(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 会阻止公共访问。可以通过四种不同的设置为接入点、存储桶和 Amazon 账户启用阻止公共访问设置,以控制访问的粒度。有关更多信息,请参阅 S3 屏蔽公共访问权限设置。
-
Amazon 访问策略可用于控制 IAM 用户如何访问您的资源或访问您的存储桶的方式。有关更多信息,请参阅使用存储桶策略和用户策略。
此外,您可以使用具有 S3 存储桶策略的虚拟私有云(VPC)端点来限制对特定 VPC 端点的访问。有关更多信息,请参阅针对 Amazon S3 的 VPC 端点的存储桶策略示例
-
要暂时允许账户外部的可信实体访问您的 S3 对象,您可以通过 S3 创建一个预签名 URL。此访问权限是使用您的账户凭证创建的,根据使用的凭证,可持续 6 小时到 7 天。有关更多信息,请参阅使用 S3 生成预签名 URL。
-
对于需要在不同源之间共享 S3 对象的用例,您可以使用 S3 接入点创建权限集,这些权限集仅限于私有网络中的对象。有关更多信息,请参阅使用 Amazon S3 接入点管理数据访问。
-
要安全地向其他 Amazon 账户授予对您的 S3 资源的访问权限,您可以使用访问控制列表 (ACL),有关更多信息,请参阅使用 ACL 管理 S3 访问权限。
有关 S3 安全选项的更多信息,请参阅 S3 安全最佳实践。