如何在不使用云端的情况下在 aws s3 中启用基本身份验证?
how to enable basic auth in aws s3 without using cloudfront?
我有一个 S3 存储桶,这里有一些图像文件。世界上任何下载 link 的人都可以下载该文件。
但是,我想使用基本的用户名和密码身份验证来限制它。不使用云端方式。 aws 中是否有其他可用的方法?下载前启用基本身份验证。
我将 S3 存储桶策略与自定义 header 一起使用,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "getwithauthen",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*.txt",
"Condition": {
"StringEquals": {
"aws:UserAgent": "username",
"aws:Referer": "password"
}
}
},
{
"Sid": "allowgetwithoutauthen",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*.pem"
}
]
}
然后我使用curl命令获取txt文件的内容:
curl --user-agent username --referer password --request GET "https://s3-url"
但我还没有用图片测试过。我想你可以使用 curl -O 来获取图像
我有一个 S3 存储桶,这里有一些图像文件。世界上任何下载 link 的人都可以下载该文件。
但是,我想使用基本的用户名和密码身份验证来限制它。不使用云端方式。 aws 中是否有其他可用的方法?下载前启用基本身份验证。
我将 S3 存储桶策略与自定义 header 一起使用,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "getwithauthen",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*.txt",
"Condition": {
"StringEquals": {
"aws:UserAgent": "username",
"aws:Referer": "password"
}
}
},
{
"Sid": "allowgetwithoutauthen",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*.pem"
}
]
}
然后我使用curl命令获取txt文件的内容:
curl --user-agent username --referer password --request GET "https://s3-url"
但我还没有用图片测试过。我想你可以使用 curl -O 来获取图像