2015-05-13 7 views
2

Я изучаю использование AWS Cloudfront для разработки API, который сторонние пользователи могут использовать для доступа к данным, хранящимся в ведре S3.AWS REST API Design

Я много огляделся и не могу найти хороших примеров, если это возможно в том, как я хочу достичь этого.

В принципе, я должен иметь возможность предоставить доступ к данным JSON в ведро S3 с использованием HTTP-запросов, используя подписанный URL-адрес , которые подписаны с использованием ключей доступа, которые генерируются для каждого пользователя в консоли управления идентификацией и доступом Amazon , Затем я назначает индивидуальную политику каждого пользователя для определения того, какие ковши, папки и объекты они могут получить.

Возможно ли, чтобы третьи стороны могли получить доступ к данным таким образом, не используя API облачного интерфейса для создания подписанных URL-адресов или владельцев AWS-аккаунтов?

Могу ли я просто предоставить им URL к объекту и их конкретному ключом доступа, который я сгенерированный, так что просьба будет что-то подобное, которые они могут получить доступ через браузер:

https://www.example.com/examplebucket/examplefolder/exampleobject?key-pair-id=1111-1111-1111-1111 

Я попытался это я сам, но только получить доступ запрещена ошибка - подпись требуется, но единственный способ, я могу видеть, чтобы получить эту подпись с использованием облачного api для создания подписанных URL.

У кого-нибудь есть идеи, если этот подход возможен или лучше подходит?

Благодаря

ответ

0

Другой альтернативой CloudFront частного содержания будет создать свой собственный сервер. Это было бы хорошо для других служб AWS, таких как база данных. Но поскольку ресурс является объектом S3, было бы сложно замаскировать URL-адрес, если вы не являетесь тем, обслуживающим запрос. К сожалению, Cloudfront по-прежнему является возможным способом ограничения доступа. Обратите внимание, что вам все равно нужно настроить сервер для проверки пользователей, которые получат подписанный URL-адрес.

+0

Поблагодарите Inmyth за ваш ответ. Устанавливать объекты на общественные работы отлично, но мне нужно ограничить доступ к разным пользователям, поэтому мне было интересно, могу ли я назначить пользователей и права доступа, которые позволят пользователям без использования доступа к данным Amazon api. – d199224

+0

Я исправил свой ответ, и я извинился. Сначала я интерпретировал ваш вопрос как открытый доступ без IAM. Но из вашего комментария и исходного вопроса CloudView api остается наиболее возможным способом в таком сценарии. – inmyth

+0

Спасибо, inmyth, у меня есть лучшая идея для моего решения – d199224

0

Если вы собираетесь использовать API REST API, API Gateway. Это сервис, полностью разработанный для API-интерфейсов, и будет решать такие проблемы, как управление версиями, кэширование & и т. Д. Он использует Cloudfront внутри, поэтому вы получите похожие преимущества.

Смежные вопросы