Доступ к Amazon S3 из частной подсети VPC

12

Если у меня работает VPC и некоторые серверы, расположенные в частной части этой сети, которые выполняют внутреннюю обработку, загружая файлы из amazon s3, могу ли я получить внутренний доступ к S3 для доступа к этим файлам? Или я должен получить доступ к общедоступному Интернету через NAT, загружать файлы s3 через https и обрабатывать таким образом?

Интернет
источник
См. Мой ответ на stackoverflow.com/questions/25539057/… для одного способа сделать это, хотя мой ответ больше относится к настройке корзины S3 так, чтобы к ней можно было получить доступ ТОЛЬКО от определенного VPC, так что он может только частично ответить на ваш вопрос.
Эдди

Ответы:

29

С таким именем пользователя, как «Интернет», я ожидаю, что вы это знаете. Но так как вы спросили ...

:)

VPC действительно частные. Только трафик, который вы явно разрешаете, может проходить через границы VPC.

Таким образом, внутри VPC экземплярам, ​​нуждающимся в доступе к внешним ресурсам, необходимо либо назначить EIP (в этом случае они могут получить доступ к внешним ресурсам с помощью инфраструктуры AWS), либо вам необходимо предоставить узел NAT (в этом случае весь трафик выходит из сети). VPC через собственный NAT).

Если вы решите предоставить свой собственный узел NAT, помните, что вам нужно отключить проверку источника / адреса в этом экземпляре, а также добавить маршрут по умолчанию в вашу частную подсеть, указывающий на узел NAT.

ОБНОВЛЕНИЕ (2015-05-10): По состоянию на 11 мая 2015 года AWS выпустила « конечную точку VPC» для S3 , которая позволяет получать доступ к S3 напрямую из VPC без необходимости проходить через прокси-хост или экземпляр NAT. К счастью, из-за уважения к действительно частной природе VPC, эта функция по умолчанию отключена, но ее легко включить с помощью консоли AWS или через их API.

EEAA
источник
Как насчет контроля доступа? Когда трафик поступает через NAT-экземпляр, как работают политики сегмента S3 (поскольку источником является NAT, как S3 может знать, какую роль или пользователь запрашивает данные)?
Туукка Мустонен
@TuukkaMustonen Единственная проблема, если у вас есть политики, основанные на IP источника. В этом случае вам нужно использовать общедоступный IP-адрес экземпляра NAT в качестве исходного IP-адреса.
filipenf
2

Если ваш экземпляр находится в публичной подсети VPC, тогда:

  • Либо у вас должен быть публичный IP-адрес, назначенный вашему экземпляру
  • ИЛИ у вас должен быть эластичный IP, назначенный вашему экземпляру

Если ваш экземпляр находится в частной подсети VPC, тогда:

  • Вам необходимо иметь устройство NAT, работающее в общедоступной подсети. Так что экземпляр в частной подсети VPC может получить доступ к Интернету через NAT и получить доступ к S3. Вы можете использовать AWS VPC NAT или настроить свой собственный (Google для этого, если вы хотите настроить свой собственный NAT)

Итог, чтобы получить доступ к S3, Вы должны иметь доступ к интернету.

slayedbylucifer
источник
К вашему сведению: согласно моему обновлению выше, доступ в интернет больше не требуется.
EEAA
-3

Вам не нужно «выходить» и возвращаться «в» или что-либо менять в способе передачи данных в регионах AWS. Без комиссии за перевод в / из ведра в том же регионе . Вы должны заплатить за хранение.

quadruplebucky
источник
Это не отвечает на вопрос ОП.
EEAA
Не ясно, что он имеет в виду сеть за пределами AWS. Спасибо за видео!
quadruplebucky
Вы упускаете суть. У него есть экземпляры EC2 в частной подсети VPC. По умолчанию они не имеют доступа ни к чему, кроме этого VPC. Итак, как я уже сказал в своем ответе, ему нужно будет воспользоваться одним из двух вариантов, чтобы предоставить им доступ к S3. Это не имеет никакого отношения к тому, находятся ли сети внутри или вне AWS, скорее, это имеет отношение к доступу вне его VPC.
EEAA
@quadruplebucky, я даю понять, что я получаю доступ к «общедоступному интернету» для получения файлов по HTTPS.
Интернет
Я собираюсь поклониться здесь, у меня нет собаки в этом бою. EEAA ответило на ваш вопрос. Вы платите, если вы пересекаете регионы.
quadruplebucky