将文件访问身份验证从S3委派给我们的身份验证服务的正确方法是什么?
例如:网站的用户(他在会话中有我们的会话ID)向S3发送请求以通过url获取文件。 S3向我们的身份验证服务发送请求,询问具有此类标头的用户是否可以访问该文件,如果我们的身份验证服务允许获取该文件,则会下载该文件。
有许多关于预先签署的请求的信息,但绝对没有关于s3查询"隐藏"认证
答案 0 :(得分:1)
如果某个文件已在S3上公开,那么当然任何人都可以使用该文件的直接链接下载该文件。
如果文件不公开,则需要进行某种类型的身份验证。如果不是公共的,则可以通过两种方式获得S3中的文件,一种是通过预先签名的URL,另一种是可以访问S3的亚马逊用户。显然,当你自己想要访问S3上的对象时,它是如何工作的,你必须在GET请求的标题中提供你的访问密钥和签名。您可以通过Amazon IAM授予其他用户访问S3的权限,这更像是您提到的“隐藏”身份验证。通过IAM路由,提供访问的方式有多种,包括联合用户。请访问此链接以了解更多信息:
http://docs.aws.amazon.com/AmazonS3/latest/dev/MakingAuthenticatedRequests.html
如果您只是尝试提供经过身份验证的用户访问文件,那么最好和最简单的方法是创建一个带有过期时间的预签名网址。到期时间可以短,例如10分钟甚至1分钟,以防止用户将链接传递给其他人。