Amazon web services AmazonS3是否支持带有基本身份验证的HTTP请求
我想建立一个AmazonS3帐户,创建一个bucket,上传一些数据,这些数据将使用HTTP GET和基本身份验证来获取 我知道有几种方法可以对S3数据进行身份验证(查询字符串等),但我希望能够提供一个简单的用户名/密码方案进行身份验证 这可能吗?不,这是不可能的。 你必须遵守法律Amazon web services AmazonS3是否支持带有基本身份验证的HTTP请求,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我想建立一个AmazonS3帐户,创建一个bucket,上传一些数据,这些数据将使用HTTP GET和基本身份验证来获取 我知道有几种方法可以对S3数据进行身份验证(查询字符串等),但我希望能够提供一个简单的用户名/密码方案进行身份验证 这可能吗?不,这是不可能的。 你必须遵守法律 查看列出的一些包装器 我来自AdroitLogic。关于链接的文章,它展示了如何将UltraESB放置在客户机和AmazonS3之间,以验证您的请求。如果需要,它可以创建一个“代理”服务,该服务将接受来自客户端的基本
查看列出的一些包装器 我来自AdroitLogic。关于链接的文章,它展示了如何将UltraESB放置在客户机和AmazonS3之间,以验证您的请求。如果需要,它可以创建一个“代理”服务,该服务将接受来自客户端的基本身份验证,并按照AmazonS3的预期方式发送凭据。这可以通过一种简单的方式完成,并且会隐藏客户端的任何复杂性。您可以自己将其开发为web应用程序或现有应用程序的一部分。它将使用HTTP请求,检索它们的URI组件,将其转换为S3对象名并用于获取其内容(例如,使用一个可用的S3SDK) 否则,您可以尝试托管解决方案-(我是开发人员)。这是一个开源项目,您可以看到该机制是如何在内部实现的。HTTP请求由服务处理,然后重新转换为Amazon S3内部身份验证方案: 这个架构图解释了项目是如何实现的。PNG图片是从AmazonS3 bucket
maven.s3auth.com
加载的,不能匿名读取。此图像的完整URL为
http://s3auth:s3auth@maven.s3auth.com/texry/packages.png
请参阅本文:通过分层多个AWS服务,您可以实现接近基本HTTP授权的功能
注意:您可以直接在s3存储桶前面创建CloudFront发行版,但不能默认为子文件夹中的根索引文件。现在可以使用CloudFront和Lambda@Edge(自2017年7月起在美国东部1区普遍提供)
查看器请求
行为简短的回答是否定的,不使用基本身份验证。但是这里有一种与basicauth有效相同的方法,并且比列出的其他解决方案更容易实现。我相信它是安全的,但我不确定 您可以在s3存储桶上设置与请求头匹配的条件。例如,您可以使用
useragent
和referer
标题作为与基本身份验证中的用户名和密码等效的内容。通常,用户代理是浏览器和操作系统(如Mozilla/5.0(Windows NT 6.1;Win64;x64;rv:47.0)Gecko/20100101 Firefox/47.0),引用者是上一个网页
下面是一个s3 bucket策略示例,它允许放置对象,并通过匹配useragent和referer来获取对象(注意更改:BUCKETNAME
、USERNAME
、PASSWORD
、AWS_REGION
和文件名
,以了解您的详细信息):
要将资源放入bucket中,可以使用如下curl请求(注意更改:BUCKETNAME
、USERNAME
、PASSWORD
、AWS\u REGION
和FILENAME
):
要使用资源,您可以使用以下内容:
curl --user-agent USERNAME --referer PASSWORD "https://s3-AWS_REGION.amazonaws.com/BUCKETNAME/FILENAME" > FILENAME
再一次,我相信这是安全的,因为useragent,如果你使用https,referer应该被加密,但是如果不是,请告诉我 我自己也在试图找到解决这个问题的办法。这里的帖子已经列出了它们。引述台词: 几个月来,我一直在寻找一种解决方案,将基本HTTP身份验证添加到Amazon上的S3存储桶中。有一些选项涉及预签名URL(仅限单个对象)、使用第三方免费或商业服务(隐私问题)、使用中间件(复杂而非无服务器)、使用(不安全)旋转EC2/Heroku/等来代理请求 桶策略解决方案: 我亲自尝试过这个,它对我来说似乎非常安全(除非你有办法绕过aws bucket策略)。它只需要s3铲斗即可操作。易于实现。基本思想:
curl --user-agent USERNAME --referer PASSWORD --upload-file "FILENAME" --request PUT "https://s3-AWS_REGION.amazonaws.com/BUCKETNAME/FILENAME"
curl --user-agent USERNAME --referer PASSWORD "https://s3-AWS_REGION.amazonaws.com/BUCKETNAME/FILENAME" > FILENAME