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

使用Serverless Framework创建S3 Bucket时遇PutBucketPolicy权限拒绝错误

解决Serverless Framework部署S3 BucketPolicy时的s3:PutBucketPolicy Access Denied错误

常见原因及对应解决方案

1. S3公共访问阻止(Public Access Block)限制

AWS默认会在账户或Bucket级别开启公共访问阻止机制,即使拥有AdministratorAccess权限,也无法创建包含Principal: "*"(允许所有公共访问)的BucketPolicy,这是此类报错最常见的诱因。

解决方式:

  • 若确实需要公共访问:在Bucket资源配置中添加PublicAccessBlockConfiguration,关闭该Bucket的公共访问阻止:
    修改serverless.yml中的filesBucket资源段:
    filesBucket:
      Type: AWS::S3::Bucket
      DeletionPolicy: Delete
      Properties:
        BucketName: my-store-files-bucket
        AccessControl: Private
        PublicAccessBlockConfiguration:
          BlockPublicAcls: false
          BlockPublicPolicy: false
          IgnorePublicAcls: false
          RestrictPublicBuckets: false
    
  • 若无需公共访问:建议将BucketPolicy的Principal改为特定IAM实体(如Lambda执行角色、指定IAM用户),避免使用通配符*:
    filesBucketPolicy:
      Type: AWS::S3::BucketPolicy
      Properties:
        PolicyDocument:
          Statement:
            - Effect: Allow
              Action:
                - s3:GetObject
              Resource: arn:aws:s3:::my-store-files-bucket/*
              Principal:
                AWS: !GetAtt IamRoleLambdaExecution.Arn # 引用Lambda执行角色的ARN
        Bucket:
          Ref: filesBucket
    

2. 验证IAM用户权限有效性

  • 确认本地default配置文件对应的IAM用户确实附加了AdministratorAccess策略,且没有权限边界(Permission Boundary)或资源级策略限制s3:PutBucketPolicy操作。
  • 可通过AWS CLI直接测试权限:
    aws s3api put-bucket-policy --bucket my-store-files-bucket --policy '{"Version": "2012-10-17", "Statement": [{"Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::my-store-files-bucket/*", "Principal": "*"}]}'
    
    若该命令同样返回权限拒绝,说明IAM用户的权限配置存在问题,需要检查IAM策略的附加情况及限制条件。

3. 排查Bucket名称冲突

虽然你遇到的是权限错误,但如果my-store-files-bucket已被其他AWS账户占用,也可能引发连锁问题。可以尝试更换一个唯一的Bucket名称重新部署测试。

内容的提问来源于stack exchange,提问作者Ayad E. Korial

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 23:48:21