相关疑难解决方法(0)

在Amazon S3中公开存储桶

如何在Amazon S3中设置存储桶,以便默认情况下所有文件都是公开读取的?

amazon-s3 amazon-web-services

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

S3 Bucket操作不适用于任何资源

我按照此答案中的说明生成以下S3存储桶策略:

{
  "Id": "Policy1495981680273",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1495981517155",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::surplace-audio",
      "Principal": "*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我收回了以下错误:

操作不适用于语句中的任何资源

我的政策中缺少什么?

amazon-s3 amazon-web-services

91
推荐指数
9
解决办法
4万
查看次数

AWS S3:存储桶无法使用 ObjectOwnership 的 BucketOwnerEnforced 设置设置 ACL)

在我的网站上,突然无法上传照片。我收到以下错误:

##### RightAws::S3Interface returned an error: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>InvalidBucketAclWithObjectOwnership</Code><Message>Bucket cannot have ACLs set with ObjectOwnership's BucketOwnerEnforced setting</Message><RequestId>REQUEST</RequestId><HostId>ID$
##### RightAws::S3Interface request: https://bucket.s3.amazonaws.com:443/ ####

RightAws::AwsError (InvalidBucketAclWithObjectOwnership: Bucket cannot have ACLs set with ObjectOwnership's BucketOwnerEnforced setting):
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当这曾经起作用时,我这边没有任何改变。AWS 确实发送了这封电子邮件,这封电子邮件似乎相关,但应该只适用于新的存储桶:

你好,

我们特此通知您,从 2023 年 4 月开始,Amazon S3 将更改所有新 S3 存储桶的默认安全配置。对于此日期之后创建的新存储桶,将启用 S3 阻止公共访问,并禁用 S3 访问控制列表 (ACL)。

大多数 S3 用例不需要公共访问或 ACL。对于大多数客户而言,无需执行任何操作。如果您有公共存储桶访问或使用 ACL 的用例,您可以在创建 S3 存储桶后禁用阻止公共访问或启用 ACL。在这些情况下,您可能需要更新自动化脚本、CloudFormation 模板或其他基础设施配置工具来配置这些设置。要了解更多信息,请阅读有关此更改的 AWS 新闻博客 [1] 和新增公告 [2],或访问我们的 S3 阻止公共访问 [3] 和 S3 对象所有权以禁用 ACL [4] 的用户指南。另请参阅有关这些设置的 AWS CloudFormation …

amazon-s3 amazon-web-services

40
推荐指数
3
解决办法
4万
查看次数

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

我是aws cli的新手,我在文档中花了相当多的时间,但我无法弄清楚如何在上传文件后设置文件权限.所以,如果我上传了一个文件:

aws s3 cp assets/js/d3-4.3.0.js s3://example.example.com/assets/js/

并没有设置访问权限,我需要一种方法来设置它们.chmod 644在aws cli中是否有相同的功能?

那么有没有办法查看访问权限?

我知道我可以使用--acl public-read标志,aws s3 cp但如果我没有,我可以设置访问而不重复完整的复制命令吗?

amazon-s3 amazon-web-services

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

无法使用boto访问公共s3存储桶中的文件

我最近创建了一个新的AWS账户(我们称之为"账户A")并在该账户中创建了一个S3桶(我们称之为"桶"),上传文件foo.txt.以下建议 互联网,我成立了我认为是最宽松的政策桶可能(应该允许任何用户的任何类型的访问):

{
  "Version": "2012-10-17",
  "Id": "PolicyABCDEF123456",
  "Statement": [
    {
      "Sid": "StmtABCDEF123456",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::bucketa/*",
        "arn:aws:s3:::bucketa"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

为帐户A创建IAM用户("身份和访问管理 - >用户 - >创建新用户"并创建一个用户"为每个用户生成一个访问密钥"后)并将该用户的凭据存储在〜/ .boto中,使用boto S3界面的简单脚本可以访问上传的文件foo.txt:

import boto
conn = boto.connect_s3()
b = conn.get_bucket("bucketa", validate=False)
k = boto.s3.key.Key(b)
k.key = "foo.txt"
print len(k.get_contents_as_string())
# 9
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个新的AWS账户(让我们称之为"账户B"),并按照相同的步骤,将IAM凭证存储在.boto文件中并运行相同的python脚本.但是在这种情况下,执行该行时会出现403错误print len(k.get_contents_as_string()):

Traceback (most recent call last):
  File "access.py", line 7, in <module>
    print len(k.get_contents_as_string())
  File "/usr3/josilber/.local/lib/python2.7/site-packages/boto/s3/key.py", line 1775, in get_contents_as_string
    response_headers=response_headers) …
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 boto amazon-web-services

5
推荐指数
1
解决办法
2308
查看次数

以编程方式取消设置aws s3中文件的加密

我正在通过执行android构建aws code build.默认应用生成的apk文件server side encryption (aws-kms)我可以通过取消选择ASW-KMS从s3存储桶中单击如下所示手动取消设置加密

它给出了以下弹出窗口

在这里None手动选择选项将使链接可下载.我想以编程方式实现这一目标.

我已经尝试过添加这里提到的权限.也用python boto3做了一些实验.但到目前为止没有取得任何成功.提前致谢!

amazon-s3 amazon-web-services boto3 aws-codebuild

5
推荐指数
1
解决办法
815
查看次数

如何使用公共权限将Android文件上传到S3存储桶

我一直在尝试将文件上传到s3存储桶.但该文件永远不会公开查看.我必须手动将存储桶中的文件/文件夹公开(对于每次上传)才能查看.

有没有办法上传具有默认权限的Android文件(位图),以供公开查看.如果可能的话,我更愿意以编程方式执行此操作.我检查了s3文档,找不到任何有用的东西.

android amazon-s3 amazon-web-services awss3transferutility

0
推荐指数
2
解决办法
3573
查看次数