Dostęp do Amazon S3 z prywatnej podsieci VPC

12

Jeśli mam działającego VPC i niektóre serwery znajdujące się w prywatnej części tej sieci, które przetwarzają backend poprzez pobieranie plików z Amazon S3, czy mogę uzyskać dostęp do S3 wewnętrznie, aby uzyskać dostęp do tych plików? Czy też muszę uzyskiwać dostęp do publicznego Internetu przez NAT, pobierać pliki s3 przez https i przetwarzać w ten sposób?

Internet
źródło
Zobacz moją odpowiedź na stackoverflow.com/questions/25539057/ ..., aby dowiedzieć się, jak to zrobić, chociaż moja odpowiedź dotyczy bardziej konfiguracji wiadra S3, aby można było uzyskać do niego dostęp TYLKO z określonego VPC, więc może tylko częściowo odpowiedzieć na twoje pytanie.
Eddie

Odpowiedzi:

29

W przypadku nazwy użytkownika takiej jak „Internet” spodziewam się, że to wiesz. Ale skoro zapytałeś ...

:)

VPC są naprawdę prywatne. Tylko ruch, na który wyraźnie zezwalasz, może przekraczać granice VPC.

Tak więc wewnątrz VPC instancjom wymagającym dostępu do zasobów zewnętrznych albo trzeba przypisać EIP (w takim przypadku mogą uzyskać dostęp do zasobów zewnętrznych za pomocą infrastruktury AWS), albo musisz zapewnić host NAT (w którym to przypadku cały ruch wychodzi VPC za pośrednictwem własnego NAT).

Jeśli zdecydujesz się na zapewnienie własnego hosta NAT, pamiętaj, że musisz wyłączyć sprawdzanie źródła / dest w tej instancji, a także dodać domyślną trasę do prywatnej podsieci, wskazując na hosta NAT.

AKTUALIZACJA (10.05.2015): Od 11 maja 2015 r. AWS wydało „Punkt końcowy VPC” dla S3 , który umożliwia dostęp do S3 bezpośrednio z VPC bez konieczności przechodzenia przez host proxy lub NAT. Na szczęście z szacunku dla naprawdę prywatnego charakteru VPC ta funkcja jest domyślnie wyłączona, ale można ją łatwo włączyć za pomocą konsoli AWS lub interfejsu API.

EEAA
źródło
Co powiesz na kontrolę dostępu? Kiedy ruch przychodzi przez instancję NAT, w jaki sposób działają zasady segmentu S3 (skoro źródło jest NAT, w jaki sposób S3 może wiedzieć, jaką rolę lub użytkownik żąda danych)?
Tuukka Mustonen,
@TuukkaMustonen Jedyny problem dotyczy tego, czy masz zasady oparte na źródłowym adresie IP. W takim przypadku musisz użyć publicznego adresu IP instancji NAT jako źródłowego adresu IP.
filipenf
2

Jeśli Twoja instancja znajduje się w publicznej podsieci VPC, wówczas:

  • Albo powinieneś mieć publiczny adres IP przypisany do twojej instancji
  • LUB powinieneś mieć elastyczne IP przypisane do twojej instancji

Jeśli Twoje wystąpienie znajduje się w prywatnej podsieci VPC, wówczas:

  • Musisz mieć urządzenie NAT działające w publicznej podsieci. Aby instancja w prywatnej podsieci VPC mogła uzyskać dostęp do Internetu za pośrednictwem NAT i uzyskać dostęp do S3. Możesz użyć AWS VPC NAT lub możesz skonfigurować swój własny (google, jeśli chcesz skonfigurować własny NAT)

Podsumowując, aby uzyskać dostęp do S3, musisz mieć dostęp do Internetu.

slayedbylucifer
źródło
Do Twojej wiadomości: zgodnie z moją aktualizacją powyżej dostęp do Internetu nie jest już wymagany.
EEAA
-3

Nie musisz wychodzić i wychodzić z powrotem ani zmieniać niczego w sposobie przesyłania danych w regionach AWS. Brak opłaty za transfer do / z wiader w tym samym regionie . Musisz zapłacić za przechowywanie.

quadruplebucky
źródło
To nie odpowiada na pytanie PO.
EEAA
Nie jest jasne, że ma na myśli sieć poza AWS. Dzięki za dv!
quadruplebucky
Nie rozumiesz sedna sprawy. Ma instancje EC2 w prywatnej podsieci VPC. Domyślnie nie mają one dostępu do niczego poza tym VPC. Tak więc, jak powiedziałem w mojej odpowiedzi, będzie musiał wziąć jedną z dwóch opcji, aby dać im dostęp do S3. Nie ma to nic wspólnego z tym, czy sieci znajdują się w AWS, czy poza nim, a raczej z dostępem poza jego VPC.
EEAA
@ quadruplebucky, wyjaśniam, że uzyskuję dostęp do „publicznego Internetu”, aby uzyskać pliki przez HTTPS.
Internet
Będę się kłaniać, nie mam psa w tej walce. EEAA odpowiedziało na twoje pytanie. Płacisz, jeśli przekroczysz regiony.
quadruplebucky