如何保护我 Amazon S3 桶中的文件?
2 分钟阅读
0
我想限制对我的 Amazon Simple Storage Service(Amazon S3)资源的权限,并监控对这些资源的访问情况。
简短描述
要确保您的文件和 Amazon S3 桶的安全,请按照以下最佳实践操作:
- **限制对您的 S3 资源的访问权限:**在使用 AWS 时,仅限绝对需要的人可以访问您的资源。遵循最低权限的原则。
- **监控您的 S3 资源:**使用 AWS CloudTrail 日志、S3 服务器访问日志记录、AWS Config、AWS Identity and Access Management(IAM)Access Analyzer、Amazon Macie、Amazon CloudWatch 或 AWS Trusted Advisor 的 S3 桶权限检查来监控您的资源。
- **使用加密来保护您的数据:**Amazon S3 支持在传输期间加密、服务器端加密(SSE)和客户端加密。
解决方法
限制对您的 S3 资源的访问权限
默认情况下,所有 S3 桶都是私有的,只有明确获得访问权限的用户才能访问。
通过执行以下操作限制对您的 S3 桶或对象的访问权限:
- 编写 IAM 用户策略,指定可以访问特定桶和对象的用户。IAM 策略提供了通过编程方式来管理多个用户的 Amazon S3 权限。有关创建和测试用户策略的详细信息,请参阅 AWS Policy Generator 和 IAM Policy Simulator。
- 编写桶策略,定义对特定桶和对象的访问权限。您可以使用桶策略跨 AWS 账户授予访问权限、授予公共或匿名权限以及根据具体情况允许或阻止访问。有关创建和测试桶策略的详细信息,请参阅 AWS Policy Generator。
**注意:**您可以在桶策略中使用拒绝语句来限制特定 IAM 用户的访问权限。即使在 IAM 策略中向用户授予了访问权限,您也可以限制访问。 - 使用 Amazon S3 屏蔽公共访问权限作为限制公共访问的集中方式。“屏蔽公共访问权限”设置会覆盖桶策略和对象权限。请务必为所有不希望公开访问的账户和桶启用“屏蔽公共访问权限”。
- 对您的桶和对象设置访问控制列表(ACL)。
**注意:**如果您需要以编程方式管理权限,请使用 IAM 策略或桶策略,而不是 ACL。但是,当您的桶策略超过 20 KB 的最大文件大小时,您可以使用 ACL。或者,您可以使用 ACL 授予对 Amazon S3 服务器访问日志或 Amazon CloudFront 日志的访问权限。
当您使用 ACL 保护您的资源时,请考虑以下最佳实践:
- 请务必查看允许 Amazon S3 对桶或对象执行操作的 ACL 权限。有关 ACL 权限及其允许的操作的列表,请参阅我可以授予哪些权限?
- 严格控制谁对您的桶拥有读取和写入权限。
- 在向所有人组授予读取权限之前,请仔细考虑您的用例,因为这样可允许任何人访问桶或对象。
- 切勿对所有人组允许写入权限。此设置会允许任何人向您的桶添加对象,然后您将为此付费。此设置还允许任何人删除桶中的对象。
- 切勿对任何经过身份验证的 AWS 用户组允许写入权限。该组包括拥有活跃 AWS 账户的所有人,而不仅仅是您账户中的 IAM 用户。要控制您账户的 IAM 用户的访问权限,请改用 IAM 策略。有关 Amazon S3 如何评估 IAM 策略的详细信息,请参阅 Amazon S3 如何对请求授权。
除了使用策略、阻止公共访问和 ACL,您还可以通过以下方式限制对特定操作的访问权限:
- 启用 MFA 删除,这要求用户在删除对象或禁用桶版本控制之前使用多重身份验证(MFA)设备进行身份验证。
- 设置受 MFA 保护的 API 访问权限,这要求用户在调用某些 Amazon S3 API 操作之前使用 AWS MFA 设备进行身份验证。
- 如果您临时与其他用户共享 S3 对象,请创建预签名 URL 以授予对该对象的限时访问权限。有关详细信息,请参阅使用预签名 URL 共享对象。
监控您的 S3 资源
您可以通过以下方式启用日志记录并监控 S3 资源:
- 配置 AWS CloudTrail 日志。默认情况下,CloudTrail 仅跟踪桶级别的操作。要跟踪对象级别操作(例如 GetObject),请启用 Amazon S3 数据事件。
- 启用 Amazon S3 服务器访问日志。有关查看这些日志的详细信息,请参阅 Amazon S3 服务器访问日志格式。
- 使用 AWS Config 来监控桶 ACL 和桶策略,看是否存在允许公有读取或写入访问的违规。有关详细信息,请参阅 s3-bucket-public-read-prohibited 和 s3-bucket-public-write-prohibited。
- 使用 AWS IAM Access Analyzer 来帮助您查看从其他 AWS 账户授予访问您的 S3 资源的桶或 IAM 策略。
- 使用 Amazon Macie 自动识别存储在您桶中的敏感数据、对您桶的广泛访问权限以及您账户中未加密的桶。
- 将 CloudTrail 与其他服务(例如 CloudWatch 或 AWS Lambda)一起使用,在对您的 S3 资源执行某些操作时调用特定进程。有关详细信息,请参阅使用 CloudWatch Events 记录 Amazon S3 对象级别操作。
- 如果您有 Business Support Plan 或 Enterprise Support Plan,则可以使用 AWS Trusted Advisor 的 S3 桶权限检查。此检查会通知您有关具有开放访问权限的桶。
**注意:**此 Trusted Advisor 检查不监控覆盖桶 ACL 的桶策略。
使用加密来保护您的数据
如果您的用例需要在传输过程中加密,那么 Amazon S3 支持 HTTPS 协议,该协议对往返于 Amazon S3 的传输数据进行加密。默认情况下,所有 AWS SDK 和 AWS 工具都使用 HTTPS。
**注意:**如果您使用第三方工具与 Amazon S3 进行交互,请联系开发人员,确认他们的工具是否也支持 HTTPS 协议。
如果您的用例需要对静态数据进行加密,那么 Amazon S3 可提供服务器端加密(SSE)。SSE 选项包括 SSE-S3、SSE-KMS 或 SSE-C。您可以在向桶写入对象时指定 SSE 参数。您也可以使用 SSE-S3 或 SSE- KMS 对桶启用默认加密。
如果您的用例需要客户端加密,请参阅使用客户端加密保护数据。
相关信息
Amazon S3 中的 Identity and Access Management
没有评论
相关内容
- 已提问 3 个月前lg...
- 已提问 1 个月前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 5 个月前