You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS S3中阻止公共访问同时允许跨账户访问?含四月新配置最佳实践

启用S3阻止公共访问同时保留跨账户访问的解决方案及最佳实践

核心解决方案

要在启用S3阻止公共访问(Block Public Access, BPA)的同时保留跨账户访问权限,关键在于区分公共访问和明确的跨账户访问:AWS将"公共访问"定义为允许匿名用户或所有AWS账户的权限,而针对特定账户/角色的授权不属于公共访问范畴。具体操作如下:

  1. 检查并调整跨账户策略
    确保你的存储桶策略明确指定目标AWS账户、IAM用户或角色的ARN,避免使用通配符"Principal": "*"(除非结合条件严格限制到特定账户)。示例策略片段:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::123456789012:role/cross-account-access-role"
          },
          "Action": ["s3:GetObject", "s3:PutObject"],
          "Resource": ["arn:aws:s3:::your-bucket/*"]
        }
      ]
    }
    
  2. 配置阻止公共访问设置
    在S3控制台或通过CLI启用BPA的以下选项(保留跨账户访问需关闭第四个选项):

    • ✅ 阻止通过访问控制列表(ACL)授予的公共访问权限
    • ✅ 阻止通过存储桶策略授予的公共访问权限
    • ✅ 忽略存储桶的公共ACL
    • ❌ 阻止跨账户访问(如果存储桶有公共策略)

    前三个选项仅限制公共访问,不会影响你明确配置的跨账户授权;第四个选项会一刀切阻止所有跨账户访问,因此必须关闭。

针对四月新设置的最佳实践

AWS从2024年4月起,对新创建的S3存储桶默认启用全部四个BPA选项。针对这一变化,需遵循以下最佳实践:

  • 新存储桶跨账户配置:创建新存储桶后,立即关闭第四个BPA选项(如果需要跨账户访问),同时确保跨账户策略的明确性,避免因默认设置导致授权失效。
  • 现有存储桶审计:对现有存储桶进行全面检查,确认BPA配置是否符合需求,同时清理任何不必要的公共权限或模糊的跨账户授权。
  • 使用IAM角色而非直接账户授权:优先让目标账户通过AssumeRole方式访问存储桶,而非直接允许对方根账户或用户。这种方式更易于权限管控、审计和撤销。
  • 最小权限原则:仅授予跨账户访问所需的特定操作和资源路径,避免过度授权(比如只给s3:GetObject而非s3:*)。
  • 启用访问日志与监控:开启S3服务器访问日志,结合CloudWatch Alarms或IAM Access Analyzer实时监控存储桶的访问情况,及时发现异常授权或访问行为。
  • 定期合规检查:使用AWS Config规则或内部工具定期扫描存储桶的权限配置,确保符合安全合规要求,避免意外暴露数据。

内容的提问来源于stack exchange,提问作者Jonathan Muralles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 02:05:23