设置 AWS S3 存储桶权限

亚当78

我有一个 s3 存储桶(例如 mybucket),它当前的权限设置如下:

Block all public access
On
 |
 |_Block public access to buckets and objects granted through new access control lists (ACLs)
 | On
 |
 |_Block public access to buckets and objects granted through any access control lists (ACLs)
 | On
 |
 |_Block public access to buckets and objects granted through new public bucket or access point policies
 | On
 |
 |_Block public and cross-account access to buckets and objects through any public bucket or access point policies
   On

在这个存储桶中,我有两个文件夹:

 images  (e.g. https://mybucket.s3.us-west-2.amazonaws.com/images/puppy.jpg)
 private (e.g. https://mybucket.s3.us-west-2.amazonaws.com/private/mydoc.doc)

我希望图片文件夹可以公开访问,以便我可以在我的网站上显示图片

我希望私有文件夹受到限制,并且只能以编程方式使用 IAM 帐户访问

如何设置这些权限?我已经尝试关闭上述权限,我还点击了图像和下操作,点击了“公开”。然后我尝试以下上传:

   $image = Image::make($file->getRealPath())->resize(360, 180);
   Storage::disk('s3')->put($filePath, $image->stream());

文件被上传但是当我尝试如下显示图像时,我收到 403 错误:

   <img src="{{ Storage::disk('s3')->url($file->path) }}" /> 

并下载私人文件,我有以下内容:

    $response =  [
        'Content-Type' => $file->mime_type,
        'Content-Length' => $file->size,
        'Content-Description' => 'File Transfer',
        'Content-Disposition' => "attachment; filename={$file->name}",
        'Content-Transfer-Encoding' => 'binary',
    ];


    return Response::make(Storage::disk('s3')->get($file->path), 200, $response);

设置这些权限的正确方法是什么?

在有人开始大喊我是 S3 存储的新手之前,请耐心等待。

任何帮助和指导将不胜感激。

jarmod

Amazon S3 阻止公有访问是一种存储桶级配置,可防止您将该存储桶中的任何对象设为公开。因此,如果您想公开一个或多个对象,例如images/*,那么您需要为此存储桶禁用S3 阻止公共访问

当然,这本身不会公开您的任何对象。默认情况下,S3 存储桶是私有的。images/公开对象,您需要配置 S3 存储桶策略,例如:

{
  "Id": "id101",
  "Statement": [
    {
      "Sid": "publicimages",
      "Action": "s3:GetObject",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::mybucket/images/*",
      "Principal": "*"
    }
  ]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用aws cli设置S3存储桶中文件的权限?

尝试设置Amazon的S3存储桶:403禁止的错误和设置权限

AWS Cloudformation模板-在S3存储桶中设置区域

在Amazon S3 Boto存储桶中设置特定权限

AWS S3存储桶加密

设置权限后,为什么不能从s3存储桶下载文件?

S3存储桶AWS您无法授予公共访问权限,因为已为此帐户启用了阻止公共访问设置

如何自动化AWS s3存储桶对象的权限

如何设置aws-sdk从s3存储桶中的公共文件中获取文件内容?

AWS S3存储桶删除

AWS S3存储桶加密-存储桶属性设置与存储桶策略设置

AWS S3-编辑存储桶策略的权限

如何在Amazon S3存储桶上设置公共只读访问权限?

AWS:无法通过s3存储桶策略授予s3访问权限

仅在手动将单个对象权限设置为public之后,才能访问AWS S3存储桶,上传的图像文件

如何通过k8s批注更新AWS NLB设置以将日志存储在S3存储桶中

如何授予AWS用户访问s3存储桶托管的网站的权限?

AWS S3 sync创建的对象具有不同于存储桶的权限

向没有AWS账户的用户授予对AWS S3存储桶/文件夹的访问权限

如何更改存储桶的Amazon AWS S3时区设置

Amazon AWS S3存储桶有关权限更改的通知

AWS S3存储桶问题

如何为AWS和CF用户分配对S3存储桶的访问权限?

AWS S3 存储桶策略

AWS:S3 存储桶 AWS 您无法授予公共访问权限,因为此帐户已启用阻止公共访问设置

使用 AWS CDK 设置 CloudFrontWebDistribution 以从 S3 存储桶获取 /subdirectory server /subdirectory/index.html

所有 s3 存储桶上的 AWS s3 存储桶批量加密

删除 AWS S3 存储桶时权限不足,无法列出存储桶“XXXX”的对象

我应该授予什么 aws 权限来访问其他 s3 存储桶