标签: bucket

如何公开S3存储桶(亚马逊示例策略不起作用)?

Amazon提供了向匿名用户授予权限的示例,如下所示(请参阅Amazon S3存储桶策略的示例案例):

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

在我的政策中,我已将"arn:aws:s3 ::: bucket /"中的"bucket"更改为"my-bucket".

但是,一旦我尝试访问该存储桶的文件夹中的图像,我就会收到以下访问被拒绝错误:

此XML文件似乎没有与之关联的任何样式信息.文档树如下所示.

(如果我明确地将该图像的属性更改为public,则重新加载其url,图像加载完美)

我究竟做错了什么?


更新#1:显然它与我可以访问的第三方网站有关.虽然它具有作为主用户(me)的所有权限,并且其对象位于同一文件夹中,具有完全相同的权限,但仍然不允许我将它们公开显示.不知道为什么.

更新#2:存储桶策略不适用于其他人"拥有"的对象,即使它们在您的存储桶中,请参阅我的答案以获取详细信息.

policy amazon-s3 bucket amazon-web-services

19
推荐指数
2
解决办法
2万
查看次数

如何使用terraform在亚马逊S3桶中创建文件夹

我能够使用此链接在亚马逊S3中创建一个桶.

我使用以下代码创建一个存储桶:

resource "aws_s3_bucket" "b" {
    bucket = "my_tf_test_bucket"
    acl    = "private"
}
Run Code Online (Sandbox Code Playgroud)

现在我想在桶内创建文件夹,比方说Folder1.

我找到了创建S3对象的链接.但这有一个强制性参数source.我不确定这个值有什么,因为我的意图是在S3存储桶中创建一个文件夹.

directory amazon-s3 bucket amazon-web-services terraform

18
推荐指数
4
解决办法
1万
查看次数

s3策略具有无效操作 - s3:ListAllMyBuckets

我在我的桶上通过console.aws.amazon.com尝试这些策略:


    {
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "s3:ListBucket",
            "s3:GetBucketLocation",
            "s3:ListBucketMultipartUploads"
          ],
          "Resource": "arn:aws:s3:::itnighq",
          "Condition": {}
        },
        {
          "Effect": "Allow",
          "Action": [
            "s3:AbortMultipartUpload",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion",
            "s3:GetObject",
            "s3:GetObjectAcl",
            "s3:GetObjectVersion",
            "s3:GetObjectVersionAcl",
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:PutObjectAclVersion"
          ],
          "Resource": "arn:aws:s3:::itnighq/*",
          "Condition": {}
        },
        {
          "Effect": "Allow",
          "Action": "s3:ListAllMyBuckets",
          "Resource": "*",
          "Condition": {}
        }
      ]
    }

但我收到此错误消息: 策略有无效操作 - s3:ListAllMyBuckets 它似乎不喜欢"资源":"*",我也尝试使用**arn:aws:s3 :::****,但它也不起作用.

有人有任何线索吗?

policy amazon-s3 bucket

16
推荐指数
2
解决办法
2万
查看次数

如何修复 AccessDenied 调用 CopyObject

我正在尝试将文件从 A 帐户中的存储桶复制到 B 帐户中的另一个存储桶。当我尝试使用命令同步文件时

aws s3 sync s3://BUCKET_A s3://BUCKET_B

它返回以下输出:

copy failed: s3://BUCKET_A to s3://BUCKET_B An error occurred (AccessDenied) when calling the CopyObject operation: Access Denied
Run Code Online (Sandbox Code Playgroud)

这是附加到在 B 帐户中创建的用户的策略(将从存储桶 A 中复制文件):

{
    "Version": "2012-10-17",
    "Statement": [
      {
          "Effect": "Allow",
          "Action": [
              "s3:ListBucket",
              "s3:GetObject",
              "s3:PutObject",
              "s3:PutObjectAcl"
          ],
          "Resource": [
              "arn:aws:s3:::BUCKET_A",
              "arn:aws:s3::: BUCKET_A/*"
          ]
      },
      {
          "Effect": "Allow",
          "Action": [
              "s3:ListBucket",
              "s3:GetObject",
              "s3:PutObject",
              "s3:PutObjectAcl"
          ],
          "Resource": [
              "arn:aws:s3:::BUCKET_B",
              "arn:aws:s3:::BUCKET_B/*"
          ]
      }
    ]
}
Run Code Online (Sandbox Code Playgroud)

也许我缺少一些许可?CopyObject我在我的用户/存储桶策略中找不到添加权限

amazon-s3 bucket amazon-web-services aws-cli terraform

15
推荐指数
2
解决办法
8万
查看次数

amazon S3存储桶策略 - 限制referer的访问但不限制是否通过查询字符串身份验证生成URL

我的存储桶上设置了以下存储桶策略:

{

"Version": "2008-10-17",

"Id": "My access policy",

"Statement": [

     {

 "Sid": "Allow only requests from our site",

 "Effect": "Allow",

 "Principal": { "AWS": "*"},

 "Action": "s3:GetObject",

 "Resource": "arn:aws:s3:::my_bucket/*",

 "Condition": {

   "StringLike": {

      "aws:Referer": [" http://mydomain.com/*"," http://www.mydomain.com/*"]

        }

              }

 },

{

   "Sid": "Dont allow direct acces to files  when no referer is present",

   "Effect": "Deny",

   "Principal": {"AWS": "*" },

  "Action": "s3:GetObject",

  "Resource": "arn:aws:s3:::my_bucket/*",

  "Condition": {

  "Null": {"aws:Referer": true }

         }

         }

]

  }
Run Code Online (Sandbox Code Playgroud)

我还配置了查询字符串身份验证,但看起来我不能同时拥有它们.如果我将我的存储桶策略设置为拒绝任何不是源自mydomain的请求,则使用查询字符串身份验证的临时URL也将无法提供.所以我的问题是,我怎么能同时拥有这两个?有没有办法检查url参数,看看它是否有一个名为"Signature"的参数,在这种情况下不应用引用策略?

policy amazon amazon-s3 bucket query-string

14
推荐指数
1
解决办法
1万
查看次数

我可以限制S3存储桶的大小吗?

我一直在寻找,我找不到是或否答案.我可以将S3中的存储桶限制为特定大小吗?

如果是这样,请你指点我这样做的正确方向?谢谢.

amazon-s3 bucket

13
推荐指数
1
解决办法
3456
查看次数

托管静态网站时,为什么Amazon S3存储桶名称必须与网站名称相同

我想在S3上主持静态网站,即.. abcd.com.它需要一个与"abcd.com"相同的存储桶名称

然后我发现abcd.com已被其他人占用.

所以这是我的问题,为什么存储桶名称必须与网站名称相同.因为有53号路由将网站映射到桶端点,所以没有必要进行此限制.

这有什么理由吗?

amazon-s3 bucket

13
推荐指数
1
解决办法
3008
查看次数

Android:如何查询存储桶名称列表

我想只检索存储桶的名称(相册).例如相机,下载等,但不是所有照片中的相机,下载等列表,那么如何为每个存储桶名称检索一行?

我的意思是在Gallery Application中,你首先有专辑,例如Camera.当您单击它时,它会显示相机的所有照片.

我可以使用查询的Where子句查询Camera Roll中的照片.但是,如果我只想要每个专辑名称的名称而不是照片,那么可以查询吗?如果我查询所有照片并且每组照片只拍一行,那么这将非常耗时.

请帮忙

android gallery bucket

12
推荐指数
3
解决办法
1万
查看次数

在高效的数据结构中存储一桶数字

我有一堆数字,例如 - 1到4,5到15,16到21,22到34 ......我有大约600,000个这样的桶.每个桶中的数字范围各不相同.我需要将这些存储桶存储在合适的数据结构中,以便尽可能快地查找数字.

所以我的问题是什么是适合这类问题的数据结构和排序机制.

提前致谢

sorting algorithm bucket data-structures

11
推荐指数
1
解决办法
4335
查看次数

删除Amazon S3中的对象或存储桶?

我创造了一个名为"照片"的新亚马逊水桶.存储桶网址如下:

www.amazons3.salcaiser.com/photos
Run Code Online (Sandbox Code Playgroud)

现在我将包含文件的子文件夹上传到该存储桶中

www.amazons3.salcaiser.com/photos/thumbs/file.jpg
Run Code Online (Sandbox Code Playgroud)

我的问题是,thumbs/假设是一个新桶还是一个对象?

然后,如果我想删除整个thumbs/目录需要我先删除其中的所有文件,还是可以一次删除所有文件?

php object amazon-s3 bucket

11
推荐指数
1
解决办法
2万
查看次数