Итак, я пытался разместить несколько .json
файлов в моих s3
корзинах, которые можно извлечь с помощью простых GET
запросов.
Я следовал этому руководству aws и удалось разместить некоторые файлы, которые могут быть доступны общественности.Прямо сейчас я могу просто напечатать что-то вроде этого в адресной строке браузера и получить свой файл json:
https://s3.amazonaws.com/[my-bucket-name]/[my-file-name].json
, или я также могу сделать это в консоли:
curl -X GET https://s3.amazonaws.com/[my-bucket-name]/[my-file-name].json
Что я хочу сделать сейчас, так это добавить очень простую защиту в мое хранилище файлов: я хочу разрешить доступ, только если запрос содержит определенный ключ API в заголовке.На данный момент мне нужен только один тип API-ключа, в котором все пользователи используют один и тот же точный API-ключ, и любой, у кого есть этот ключ, должен иметь доступ к любому файлу в корзине.
Что-то вроде этой команды curl:
curl -X GET --header "X-ApiKey: wow-such-secret" https://s3.amazonaws.com/[my-bucket-name]/[my-file-name].json
Мне интересно, возможно ли это только с S3.Если мне нужно использовать другие сервисы Amazon, на какие сервисы мне следует обратить внимание?
Моя политика корзины (я в основном скопирован из учебника aws):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[my-bucket-name]/*"
}
]
}
Также у меня есть ~10 часов AWS и ~ 1 месяц опыта разработки серверов.