You need to enable JavaScript to run this app. AWS S3如何配置仅账户授权用户可访问的策略?CloudFormation部署异常求助
优惠活动
大模型
产品
解决方案
定价
更多

AWS S3如何配置仅账户授权用户可访问的策略?CloudFormation部署异常求助

根因说明

你当前全量开启4个公有访问块的配置,会触发S3的系统级硬阻断逻辑,控制台因此直接判定为Bucket and objects not public。这个状态和你期望的Only authorized users of this account并非同一判定维度。
后者的触发条件非常明确:

  • 桶未配置任何允许匿名用户、跨账号非授权主体访问的规则
  • 未开启BlockPublicPolicy、RestrictPublicBuckets这两个硬阻断类公有访问块参数
调整步骤

1. 修改公有访问块参数

将原有的全true配置调整为如下结构,在保留ACL层面防误操作能力的前提下,解除硬阻断判定:

PublicAccessBlockConfiguration:
  BlockPublicAcls: true
  BlockPublicPolicy: false
  IgnorePublicAcls: true
  RestrictPublicBuckets: false

配置说明:关闭后两个参数不会降低桶的安全性,仅会让控制台脱离“全硬阻断”的判定逻辑,后续会通过桶策略补齐访问管控能力。

2. 配套配置安全桶策略

新增/更新S3桶策略,硬性阻断所有外部、匿名访问,确保仅本账号内的授权IAM主体可按权限访问:

S3BucketPolicy:
  Type: AWS::S3::BucketPolicy
  Properties:
    Bucket: !Ref YourS3BucketResource
    PolicyDocument:
      Version: "2012-10-17"
      Statement:
        # 拒绝所有非本账号身份的访问请求
        - Sid: DenyNonAccountAccess
          Effect: Deny
          Principal: "*"
          Action: "s3:*"
          Resource:
            - !GetAtt YourS3BucketResource.Arn
            - !Join ["", [ !GetAtt YourS3BucketResource.Arn, "/*" ]]
          Condition:
            StringNotEquals:
              "aws:PrincipalAccount": !Ref AWS::AccountId
        # 允许本账号内的授权IAM主体按自身权限访问
        - Sid: AllowAccountAccess
          Effect: Allow
          Principal: "*"
          Action: "s3:*"
          Resource:
            - !GetAtt YourS3BucketResource.Arn
            - !Join ["", [ !GetAtt YourS3BucketResource.Arn, "/*" ]]
          Condition:
            StringEquals:
              "aws:PrincipalAccount": !Ref AWS::AccountId

策略说明:优先执行的Deny规则会硬性拦截所有不属于当前账号的身份、匿名用户的操作,不存在公开访问风险;本账号内的实际访问粒度,完全由给IAM用户、角色配置的授权策略控制,不会出现权限过度开放。

效果验证

完成CloudFormation部署后,打开S3控制台对应桶的“公有访问”面板,即可看到预期的Only authorized users of this account状态,所有外部访问会被策略直接拦截。


内容的提问来源于stack exchange,提问作者Bankchart Arlai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.10 21:45:01