У меня на моем ведре установлена следующая политика ведра:
{
"Version": "2008-10-17",
"Id": "My access policy",
"Statement": [
{
"Sid": "Allow only requests from our site",
"Effect": "Allow",
"Principal": { "AWS": "*"},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my_bucket/*",
"Condition": {
"StringLike": {
"aws:Referer": [" http://mydomain.com/*"," http://www.mydomain.com/*"]
}
}
},
{
"Sid": "Dont allow direct acces to files when no referer is present",
"Effect": "Deny",
"Principal": {"AWS": "*" },
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my_bucket/*",
"Condition": {
"Null": {"aws:Referer": true }
}
}
]
}
Я также настроил аутентификацию строки запроса, но похоже, что у меня не могут быть оба. Если у меня есть политики в ящике, запрещающие любой запрос, который не исходит из mydomain, мой временный url, использующий аутентификацию строки запроса, также не будет обслуживаться. Итак, мой вопрос: как я могу обойти оба? Есть ли способ проверить параметры URL-адреса и посмотреть, есть ли у него параметр под названием "Подпись" и в этом случае не применять политику реферирования?