Gateway S3 atau titik akhir antara muka untuk klien di premis?
Titik akhir gateway hidup dalam jadual laluan dan melayani trafik VPC. Titik akhir antara muka memberi laluan premis alamat peribadi, serta DNS dan dasar.
Mencapai S3 dari rangkaian pejabat melalui VPN tapak bukan masalah penghalaan yang boleh diselesaikan oleh laluan statik sahaja. Titik akhir gateway dilampirkan pada jadual laluan dan melayani permintaan yang berasal dari dalam VPC. Titik akhir antara muka meletakkan antara muka rangkaian elastik dengan alamat peribadi dalam subnet anda, dan alamat itu boleh dicapai dari premis melalui VPN atau Direct Connect. Tempat permintaan bermula menentukan yang mana antara kedua-duanya sebenarnya anda perlukan, dan kerja DNS, kumpulan keselamatan serta dasar menyusul daripada jawapan itu.
Asingkan jenis titik akhir mengikut tempat permintaan bermula
Titik akhir gateway muncul sebagai entri jadual laluan yang menunjuk kepada senarai awalan terurus. Ia tiada antara muka rangkaian, tiada kumpulan keselamatan dan tiada alamat peribadi sendiri, dan itulah sebabnya hos di premis tidak boleh menghala ke arahnya: tiada apa-apa di sisi lain untuk dihala. Trafik dari dalam VPC sampai ke S3 kerana jadual laluan subnet menghantar awalan itu ke titik akhir. Trafik dari mana-mana tempat lain tiada entri sedemikian untuk diikuti.
Titik akhir antara muka ialah satu set antara muka rangkaian dalam subnet yang anda pilih, setiap satu dengan alamat peribadi daripada subnet itu dan kumpulan keselamatan yang dilampirkan. Itulah bentuk yang boleh digunakan oleh klien hibrid, kerana ia destinasi biasa yang terowong anda boleh bawa paket ke sana. Ia juga bermakna titik akhir menggunakan alamat dalam subnet dan boleh kehabisan alamat tersebut.
aws ec2 describe-vpc-endpoints --query "VpcEndpoints[].{Id:VpcEndpointId,Type:VpcEndpointType,Service:ServiceName,State:State}" --output table
Baca lajur Type dan bukan nama. Satu VPC biasanya menyimpan kedua-dua jenis untuk perkhidmatan yang sama, dan entri yang diperlukan oleh aplikasi premis anda ialah entri antara muka.
Bina laluan ke alamat antara muka sebelum menguji S3
Tiga perkara mesti benar serentak: penghala di premis mempunyai laluan ke subnet titik akhir, laluan balik dari subnet itu sampai ke rangkaian klien, dan kumpulan keselamatan titik akhir menerima julat sumber klien. ACL rangkaian subnet masih boleh menggugurkan paket selepas ketiga-tiganya lulus, jadi periksalah ia sebagai perkara keempat dan bukan sebagai fikiran lewat.
Laluan yang berfungsi ke mana-mana instans EC2 dalam VPC tidak membuktikan apa-apa daripada ini. Ia hanya menunjukkan terowong hidup, iaitu satu-satunya bahagian laluan yang anda sudah tahu. Buktikan alamat titik akhir secara berasingan, kemudian buktikan nama itu diselesaikan kepadanya.
ip route get 10.60.4.37 nc -vz 10.60.4.37 443 openssl s_client -connect 10.60.4.37:443 -servername bucket.vpce-0123456789abcdef0-abc123.s3.us-east-1.vpce.amazonaws.com </dev/null
Perintah pertama menunjukkan antara muka yang akan digunakan oleh klien. Yang kedua membuktikan jabat tangan TCP. Yang ketiga membuktikan TLS selesai dengan sijil yang sah untuk nama titik akhir, dan itulah pemeriksaan yang menangkap alamat salah sebelum anda menyalahkan kebenaran.
Tentukan jawapan DNS yang diterima oleh aplikasi
Kewujudan titik akhir antara muka dalam VPC tidak mengubah hala SDK di premis dengan sendirinya. Klien sama ada menggunakan nama khusus titik akhir yang diterbitkan AWS untuk titik akhir itu, atau zon hos peribadi yang anda sengaja jadikan boleh diselesaikan dari pejabat.
Untuk penyelesaian hibrid, penyelesai di premis memerlukan laluan yang disokong ke paparan DNS VPC, biasanya melalui titik akhir masuk Resolver. Mengaktifkan DNS peribadi tanpa memahami sumber pertanyaan mana yang terjejas ialah cara carian mula memulangkan alamat yang tidak dapat dicapai pejabat. Tetapan itu mengubah jawapan bagi pertanyaan yang datang melalui penyelesai VPC, bukan bagi setiap klien di mana-mana.
dig +short bucket.vpce-0123456789abcdef0-abc123.s3.us-east-1.vpce.amazonaws.com aws s3api head-bucket --bucket example-artifacts --endpoint-url https://bucket.vpce-0123456789abcdef0-abc123.s3.us-east-1.vpce.amazonaws.com
Jalankan kedua-duanya pada hos aplikasi, bukan pada kotak lompat dalam VPC. Penyelesai yang menjawab di sana ialah yang digunakan oleh beban kerja anda, dan jawapan berbeza daripada hos berbeza ialah punca kekeliruan paling biasa dalam reka bentuk ini.
Kebolehcapaian bukan kebenaran
Permintaan yang tiba di titik akhir masih memerlukan prinsipal yang dibenarkan dan kebenaran baldi yang berkenaan. Dasar titik akhir boleh menyempitkan apa yang dibenarkan oleh titik akhir, dan dasar baldi boleh menyempitkannya lagi. Mencapai antara muka tidak mengatakan apa-apa tentang objek mana yang boleh dibaca oleh pemanggil.
Uji kedua-dua arah: satu panggilan dibenarkan yang tidak berbahaya terhadap baldi yang dimaksudkan, dan satu panggilan yang dijangka ditolak untuk identiti atau sumber di luar dasar. Simpan nama titik akhir, alamat yang diselesaikan dan konteks dasar bersama hasilnya supaya orang seterusnya boleh menghasilkannya semula. Penolakan yang menamakan jenis dasar menjimatkan satu jam meneka.
Akhir sekali, harga kedua-dua pilihan sebelum memperuntukkan. Titik akhir antara muka mengenakan bayaran setiap jam antara muka dan setiap gigabait, manakala titik akhir gateway tidak, dan perbezaan itu menentukan soalan bagi banyak beban kerja berjumlah rendah yang hanya memerlukan akses dari sisi VPC.