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

Flutter应用使用AWS Amplify Storage时遭遇S3访问拒绝问题

排查AWS Amplify Storage列表S3文件时的访问拒绝问题

针对你遇到的Error listing files: S3 access denied when making the API call.错误,结合现有配置(IAM策略正常、存储桶开启阻止公共访问、无外部桶策略),可按以下步骤排查:

  • 检查IAM权限限制

    • 确认该IAM用户是否被权限边界或AWS组织的**服务控制策略(SCP)**限制了s3:ListBucket操作,全局策略变更可能会覆盖用户级权限。
    • 使用IAM控制台的策略模拟器,针对目标存储桶测试s3:ListBucket操作,验证权限是否实际生效。
  • 核对Amplify Storage配置

    • 检查本地Amplify配置文件(如aws-exports.js)是否被意外修改,确认存储桶名称、区域与实际一致,可执行amplify status确认存储资源配置状态。
    • 确认代码中使用的Amplify Storage访问模式(private/protected/public)是否正确:由于存储桶开启了阻止公共访问,误用public模式会直接导致访问拒绝。
  • 检查存储桶及对象的权限细节

    • 确认存储桶的对象所有权设置为「桶所有者优先」,避免对象ACL覆盖IAM策略权限。
    • 若使用Cognito身份池:检查身份池关联的角色权限是否被修改,或Cognito用户所属分组的权限是否被移除,临时凭证权限失效也会引发此类错误。
  • 查看CloudTrail日志定位具体原因

    • 在CloudTrail中搜索目标存储桶的访问事件,找到标记为AccessDenied的记录,查看errorCode和errorMessage字段,里面会给出拒绝访问的具体原因(如资源ARN不匹配、权限被SCP阻断等)。
  • 确认存储桶ARN的准确性

    • 核对IAM策略中的存储桶ARN与实际存储桶ARN是否完全一致,注意S3存储桶名称大小写敏感,任何拼写错误都会导致权限不匹配。

内容的提问来源于stack exchange,提问作者Pratham Dave

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:15:00