Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konsolidasikan pembuatan URL presigned Amazon S3 dan unduhan objek dengan menggunakan titik akhir yang terkait dengan alamat IP statis
Song Jin, Eunhye Jo, dan Jun Soung Lee, Amazon Web Services
Ringkasan
Pola ini menyederhanakan akses ke Amazon Simple Storage Service (Amazon S3) dengan membuat aman, custom presigned untuk unduhan objek. URLs Solusinya menyediakan titik akhir tunggal dengan domain unik dan alamat IP statis. Ini disesuaikan untuk pelanggan yang memerlukan konsolidasi titik akhir API dan Amazon S3 di bawah domain terpadu dengan alamat IP statis. Kasus penggunaan melibatkan pengguna yang mengikuti kebijakan firewall IP dan domain allowlist, membatasi akses API ke domain dan alamat IP tertentu.
Arsitektur menggunakan kunci Layanan AWS, termasuk AWS Global Accelerator, Amazon API Gateway AWS Lambda, Application Load Balancer AWS PrivateLink, dan Amazon S3. Desain ini memusatkan API untuk menghasilkan presigned URLs dan endpoint Amazon S3 di bawah satu domain, ditautkan ke akselerator dengan dua alamat IP statis. Akibatnya, pengguna dapat dengan mudah meminta presigned URLs dan men-download objek Amazon S3 melalui endpoint domain terpadu dengan alamat IP statis.
Arsitektur ini sangat bermanfaat bagi pelanggan dengan kebijakan atau persyaratan kepatuhan yang ketat, seperti yang ada di sektor publik, medis, dan keuangan.
Prasyarat dan batasan
Prasyarat
Aktif Akun AWS
Zona yang dihosting publik untuk nama domain kustom Anda
Domain yang diimpor AWS Certificate Manager (ACM) sesuai Wilayah AWS pilihan Anda
Batasan
Nama bucket Amazon S3 harus cocok dengan nama domain titik akhir. Persyaratan ini untuk memastikan bahwa titik akhir Amazon S3 dapat dilayani melalui titik akhir API tunggal.
Nama domain kustom yang digunakan dalam API Gateway harus sejajar dengan nama domain dari titik akhir API tunggal.
Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat AWS Layanan menurut Wilayah
. Untuk titik akhir tertentu, lihat Titik akhir dan kuota layanan, dan pilih tautan untuk layanan.
Arsitektur
Diagram berikut menunjukkan arsitektur target dan alur kerja untuk pola ini.

Diagram menggambarkan konsep dan alur kerja berikut:
Pengguna memulai permintaan untuk menghasilkan URL presigned dengan menggunakan endpoint kustom yang disajikan melalui AWS Global Accelerator, menggunakan nama domain kustom dan alamat IP terkait.
Fungsi Lambda menghasilkan URL yang telah ditetapkan sebelumnya, menunjuk ke titik akhir kustom. Ini merespons dengan pengalihan 301 yang berisi URL presigned yang dihasilkan. Melalui URL presigned yang dialihkan, pengguna mengunduh objek secara otomatis dengan menggunakan titik akhir kustom yang disajikan melalui Global Accelerator.
Komponen arsitektur keseluruhan untuk pembuatan URL presigned dan alur kerja pengunduhan objek adalah sebagai berikut:
Penyediaan alamat IP statis oleh Global Accelerator.
Pendaftaran alias akselerator sebagai catatan A ke zona host publik Amazon Route 53 dengan nama domain khusus.
Pembuatan bucket Amazon S3 dengan nama bucket yang cocok dengan nama domain kustom terdaftar.
Pembuatan titik akhir VPC untuk API Gateway dan layanan Amazon S3.
Konfigurasi Application Load Balancer yang menghadap ke internal untuk terhubung ke Global Accelerator.
Penetapan nama domain kustom untuk API Gateway dengan sertifikat ACM terlampir.
Penerapan API Gateway pribadi yang terintegrasi dengan fungsi Lambda.
Fungsi Lambda dilengkapi dengan peran AWS Identity and Access Management (IAM) yang dilampirkan (dengan GetObjectizin).
Alat
Layanan AWS
Amazon API Gateway membantu Anda membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, dan WebSocket APIs dalam skala apa pun.
Application Load Balancer mendistribusikan lalu lintas aplikasi yang masuk ke beberapa target, seperti instans Amazon Elastic Compute Cloud (Amazon EC2), di beberapa Availability Zone.
AWS Certificate Manager (ACM) membantu Anda membuat, menyimpan, dan memperbarui sertifikat dan kunci SSL/TLS X.509 publik dan pribadi yang melindungi situs web dan aplikasi Anda. AWS
AWS Cloud Development Kit (AWS CDK)adalah kerangka pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan AWS Cloud infrastruktur dalam kode.
AWS Global Acceleratoradalah layanan global yang mendukung titik akhir dalam banyak Wilayah AWS. Anda dapat membuat akselerator yang mengarahkan lalu lintas ke titik akhir optimal melalui jaringan AWS global. Hal ini meningkatkan ketersediaan dan performa aplikasi internet Anda yang digunakan oleh khalayak global.
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.
AWS PrivateLinkmembantu Anda membuat koneksi pribadi searah dari cloud pribadi virtual Anda (VPCs) ke layanan di luar VPC.
Amazon Route 53 adalah layanan web DNS yang sangat tersedia dan dapat diskalakan.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
Alat lainnya
Terraform
adalah alat infrastruktur sebagai kode (IAc) HashiCorp yang membantu Anda membuat dan mengelola sumber daya cloud dan lokal.
Repositori kode
Anda dapat menerapkan pola ini dengan menggunakan AWS CDK atau Terraform berdasarkan preferensi Anda. Bagian Epik berisi instruksi untuk kedua metode penerapan. Kode untuk pola ini tersedia di GitHub repositori berikut:
Terraform — s3
- -terraform presignedurl-staticips-endpoint-with
Praktik terbaik
Untuk meningkatkan keamanan di lingkungan produksi, sangat penting untuk menerapkan mekanisme otorisasi, seperti Amazon Cognito, untuk membatasi akses ke
PresignedUrlAPI generasi.Ikuti prinsip hak istimewa terkecil dan berikan izin minimum yang diperlukan untuk melakukan tugas. Untuk informasi selengkapnya, lihat Berikan hak istimewa terkecil dan praktik terbaik Keamanan dalam dokumentasi IAM.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Tentukan nama domain. | Tentukan nama domain publik untuk titik akhir Amazon S3 terpadu. Nama domain juga digunakan sebagai nama bucket Amazon S3. | Administrator AWS, Administrator jaringan |
Membuat zona yang di-hosting publik. | Buat zona yang dihosting publik di Amazon Route 53. Nama domainnya harus sesuai dengan nama domain yang digunakan di API Gateway. | Administrator AWS, Administrator jaringan |
Siapkan sertifikat SSL. | Gunakan AWS Certificate Manager (ACM) untuk meminta atau mengimpor sertifikat SSL untuk domain aplikasi web Anda. | Administrator AWS, Administrator jaringan |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Siapkan lingkungan pengembangan Terraform. | Untuk mengatur lingkungan pengembangan, lakukan hal berikut:
| Administrator AWS, Administrator cloud |
Memodifikasi |
Perhatikan hal berikut:
| Administrator AWS, Administrator cloud |
Penyediaan sumber daya jaringan. | Untuk menyediakan sumber daya jaringan, jalankan perintah berikut:
Selama eksekusi | Administrator AWS, Administrator cloud |
Penyediaan API Gateway, Amazon S3, dan Lambda. | Untuk menyediakan sumber daya jaringan, gunakan perintah berikut:
| Administrator AWS, Administrator cloud |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Mengatur lingkungan AWS CDK pengembangan. | Untuk mengatur lingkungan pengembangan, lakukan hal berikut:
| Administrator AWS, Administrator cloud |
Konfigurasikan pengaturan domain dalam | Untuk mengedit opsi variabel konstan, gunakan perintah berikut:
Dalam perintah, ganti setiap placeholder dengan informasi Anda sendiri:
| Administrator AWS, Administrator cloud |
Menyebarkan tumpukan. | Untuk menyebarkan dua tumpukan, satu untuk virtual private cloud (VPC) dan satu lagi untuk aplikasi, gunakan perintah berikut:
| Administrator AWS, Administrator cloud |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Verifikasi alamat IP titik akhir. | Untuk memverifikasi bahwa domain untuk pola ini memiliki alamat IP statis, gunakan perintah berikut:
| Administrator jaringan |
Unggah file pengujian yang nantinya dapat Anda unduh. | Unggah file pengujian ke | Administrator AWS, Administrator cloud |
Memanggil API untuk menghasilkan URL presigned. | Untuk menghasilkan URL yang telah ditetapkan sebelumnya, panggil URL dari browser atau klien API (misalnya, Tukang Pos
Ganti nilai placeholder di | Pemilik aplikasi |
Periksa hasilnya. | Hasil yang diharapkan adalah Anda harus menerima kode status pengalihan 301 (Dipindahkan Secara Permanen). Respons ini akan berisi URL yang telah ditetapkan sebelumnya, yang akan secara otomatis memulai pengunduhan file pengujian Anda. | Insinyur uji |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Hancurkan sumber daya API Gateway, Amazon S3, dan Lambda. | Untuk menghapus sumber daya, gunakan perintah berikut:
| Administrator AWS, Administrator cloud |
Hancurkan sumber daya jaringan. | Untuk menghapus sumber daya jaringan, gunakan perintah berikut:
| Administrator AWS, Administrator cloud |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Hancurkan tumpukan. | Untuk menghancurkan tumpukan VPC dan aplikasi, gunakan perintah berikut:
| Administrator AWS, Administrator cloud |
Kosongkan dan hapus ember Amazon S3. | Kosongkan dan hapus objek bucket Amazon S3 dan log bucket Amazon S3 yang tidak dihapus secara default. Nama bucket Amazon S3 adalah Jika Anda lebih suka menggunakan AWS Command Line Interface (AWS CLI) untuk menghapus bucket, gunakan perintah berikut:
Ganti | Administrator AWS, Administrator cloud |
Sumber daya terkait
AWS Blog