S3资源所有者和默认桶/对象权限

0

【以下的问题经过翻译处理】 AWS文档中提到:“默认情况下,所有Amazon S3的资源 - 存储桶、对象和相关子资源(例如生命周期配置和网站配置)都是私有的:只有资源所有者,即创建它的AWS 账户可以访问资源。”

我使用根用户登录到我的AWS帐户并创建了一个S3存储桶和一个对象。虽然我可以浏览和查看对象,但当我尝试从AWS控制台点击HTTP链接访问文件时,我会收到“拒绝访问”的错误。作为AWS账户根用户/资源所有者,我不应该像文档建议的那样成功读取而不是“拒绝访问”吗?

我将存储桶转换为“对象可以是公共的”存储桶。但我仍然收到“拒绝访问”的错误。我将此对象设置为公共。现在,当我尝试从AWS控制台点击HTTP链接访问文件时,我可以看到对象。

那么,当文档说“只有资源所有者,即创建它的AWS账户可以访问资源”时,特别指的是什么? 默认情况下,即使是资源所有者也被拒绝访问,需要进行大量授权才能使AWS根帐户等资源所有者获得访问权限。

profile picture
专家
已提问 5 个月前25 查看次数
1 回答
0

【以下的回答经过翻译处理】 你好,

我了解你的困惑,因为我也遇到过同样的问题。

你上传的对象是你自己的(你是所有者并具有完全的权利),你可以轻松下载和删除它,对吧?问题在于,当你点击直接的对象URL时,请求失败了,因为该链接没有携带任何关于你的信息,服务器无法对你进行身份验证,所以会显示访问被拒绝。

如果你在浏览器中比较一下,当你点击下载按钮时会发生什么,你会发现浏览器发送了包含访问控制信息的头文件给"GeneratePresignedUrl",然后浏览器就会收到以下内容:

presignedUrl: "https://s3.ap-northeast-1.amazonaws.com/your-bucket/object.ext?response-content-disposition=attachment&X-Amz-Security-Token=tokenvalue&X-Amz-Algorithm=value&X-Amz-Date=datetime&X-Amz-SignedHeaders=XXXX&X-Amz-Expires=SECONDS&X-Amz-Credential=CREDENTIALCODE%code2%REGION%s3%aws_request&X-Amz-Signature=signaturecode"。

这样浏览器就可以访问该对象进行下载了。

希望这能帮到你。

RT

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则