我应该如何在 Amazon S3 上配置“阻止公共访问”?

Posted

技术标签:

【中文标题】我应该如何在 Amazon S3 上配置“阻止公共访问”?【英文标题】:how should I configure "block public access" on Amazon S3? 【发布时间】:2020-09-24 15:24:21 【问题描述】:

我正在使用回形针和 ruby​​ on rails 将图像从我的网站上传到 AWS S3,并且我的 web 应用程序托管在 heroku 上。我应该在存储桶设置下检查阻止公共访问吗?

目前我已阻止所有公共访问,但无法上传图片。当我取消选中阻止所有公共访问时,我可以做到。我应该为 S3 设置什么才能让我的 heroku 图片上传应用正常工作?

【问题讨论】:

【参考方案1】:

像这样更改您的存储桶策略并尝试


  "Version": "2012-10-17",
  "Statement": [
    
      "Sid": "S3Permissions",
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::awsexamplebucket/*",
        "arn:aws:s3:::awsexamplebucket"
      ]
    
  ]

【讨论】:

【参考方案2】:

不确定您在 Heroku 上的应用是做什么的,但我认为 Heroku 应用会使用 IAM 凭证与 S3 通信。您需要在 S3 存储桶所在的账户中创建 IAM 用户,并使用 S3 put 操作。

【讨论】:

以上是关于我应该如何在 Amazon S3 上配置“阻止公共访问”?的主要内容,如果未能解决你的问题,请参考以下文章

Amazon S3 存储桶策略只允许访问特定的 http

如何解决 AWS::S3::Errors:: 拒绝访问?

如何在 Amazon S3 中配置 CORS 策略以从 React App 上传文档?

将流数据上传到 Amazon S3

如何通过 PHP SDK 在 Amazon S3 存储桶下创建文件夹?

阻止公共访问设置的哪些组合使我的 s3 存储桶对所有人可见?