Mengakses Amazon S3 dari subnet VPC pribadi

12

Jika saya memiliki VPC berjalan dan beberapa server terletak di bagian pribadi dari jaringan yang melakukan pemrosesan backend dengan mengunduh file dari amazon s3, dapatkah saya mengakses S3 secara internal untuk mendapatkan file-file itu? Atau apakah saya harus mengakses internet publik melalui NAT, mengunduh file s3 melalui https, dan memprosesnya?

Internet
sumber
Lihat jawaban saya untuk stackoverflow.com/questions/25539057/... untuk satu cara untuk melakukan ini, meskipun jawaban saya lebih terkait dengan menyiapkan ember S3 sehingga HANYA dapat diakses dari VPC tertentu, sehingga mungkin hanya menjawab sebagian Anda pertanyaan.
Eddie

Jawaban:

29

Dengan nama pengguna seperti "Internet", saya harap Anda tahu ini. Tapi karena kau bertanya ...

:)

VPC benar - benar pribadi. Hanya lalu lintas yang Anda izinkan secara eksplisit yang dapat mentransport perbatasan VPC.

Jadi, di dalam VPC, instance yang membutuhkan akses ke sumber daya eksternal harus diberi EIP (dalam hal ini mereka dapat mengakses sumber daya eksternal menggunakan infrastruktur AWS), atau Anda perlu menyediakan host NAT (dalam hal ini semua lalu lintas keluar VPC melalui NAT Anda sendiri).

Jika Anda memilih untuk menyediakan host NAT Anda sendiri, ingatlah bahwa Anda harus menonaktifkan pemeriksaan sumber / dest pada instance itu serta menambahkan rute default ke subnet pribadi Anda, menunjuk ke host NAT.

UPDATE (2015-05-10): Pada 11 Mei 2015, AWS telah merilis "VPC Endpoint" untuk S3 , yang memungkinkan akses ke S3 langsung dari VPC tanpa harus melalui host proxy atau instance NAT. Untungnya karena menghormati sifat VPC yang benar-benar pribadi, fitur ini tidak aktif secara default, tetapi dapat dengan mudah dihidupkan menggunakan Konsol AWS atau melalui API mereka.

EEAA
sumber
Bagaimana dengan kontrol akses? Ketika lalu lintas datang melalui NAT-instance, bagaimana cara kerja kebijakan bucket S3 (karena asalnya adalah NATted, bagaimana S3 dapat mengetahui peran atau pengguna apa yang meminta data)?
Tuukka Mustonen
@ TuukkaMustonen Satu-satunya masalah adalah jika Anda memiliki kebijakan berdasarkan IP sumber. Dalam hal ini Anda harus menggunakan IP publik instance NAT sebagai IP sumber.
filipenf
2

Jika instance Anda berada di Subnet Publik VPC, maka:

  • Entah Anda harus memiliki alamat IP publik yang ditetapkan untuk instance Anda
  • ATAU Anda harus memiliki IP elastis yang ditetapkan untuk instance Anda

Jika instance Anda berada di subnet pribadi VPC, maka:

  • Anda harus memiliki perangkat NAT yang berjalan di subnet publik. Sehingga instance dalam subnet pribadi VPC dapat mengakses internet melalui NAT dan akses S3. Anda dapat menggunakan AWS VPC NAT atau Anda dapat mengonfigurasi sendiri (google untuk ini jika Anda ingin mengatur NAT Anda sendiri)

Intinya, untuk mengakses S3, Anda harus dapat mengakses internet.

dibunuh oleh lucifer
sumber
FYI: per pembaruan saya di atas, akses internet tidak lagi diperlukan.
EEAA
-3

Anda tidak harus "keluar" dan kembali "masuk" atau mengubah apa pun tentang cara Anda mentransfer data dalam wilayah AWS. Tidak ada biaya untuk transfer ke / dari ember di wilayah yang sama . Anda harus membayar penyimpanan.

quadruplebucky
sumber
Ini tidak menjawab pertanyaan OP.
EEAA
Tidak jelas bahwa dia merujuk ke jaringan di luar AWS. Terima kasih untuk dv!
quadruplebucky
Anda tidak mengerti intinya. Dia memiliki instance EC2 di subnet VPC pribadi. Secara default, ini tidak memiliki akses ke apa pun di luar VPC itu. Jadi, seperti yang saya nyatakan dalam jawaban saya, dia harus mengambil satu dari dua opsi untuk memberi mereka akses ke S3. Ini tidak ada hubungannya dengan apakah jaringan ada di dalam atau di luar AWS, melainkan berkaitan dengan mengakses di luar VPC-nya.
EEAA
@ quadruplebucky, saya jelaskan bahwa saya sedang mengakses "internet publik" untuk mendapatkan file melalui HTTPS.
Internet
Saya akan tunduk di sini, saya tidak punya anjing dalam pertarungan ini. EEAA menjawab pertanyaan Anda. Anda membayar jika Anda melintasi wilayah.
quadruplebucky