Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Batasi akses ke Penyeimbang Beban Aplikasi
Anda dapat menggunakan Penyeimbang Beban Aplikasi internal dan yang menghadap ke internet dengan Amazon. CloudFront Anda dapat menggunakan Penyeimbang Beban Aplikasi internal di dalam subnet pribadi CloudFront dengan menggunakan asal VPC. CloudFront Asal VPC memungkinkan Anda untuk menyajikan konten dari aplikasi yang dihosting di subnet VPC pribadi tanpa mengeksposnya ke internet publik. Untuk informasi selengkapnya, lihat Batasi akses dengan asal VPC.
Jika Anda menggunakan Application Load Balancer yang menghadap ke internet dengan CloudFront, Anda dapat menggunakan mitigasi keamanan berikut untuk mencegah pengguna mengakses Penyeimbang Beban Aplikasi secara langsung, dan mengizinkan akses hanya melalui. CloudFront
-
Konfigur CloudFront asikan untuk menambahkan header HTTP kustom ke permintaan yang dikirim ke Application Load Balancer.
-
Mengonfigurasi Application Load Balancer untuk hanya meneruskan permintaan yang berisi header HTTP kustom.
-
Memerlukan HTTPS untuk meningkatkan keamanan solusi ini.
CloudFront juga dapat membantu mengurangi latensi dan bahkan menyerap beberapa serangan penolakan layanan terdistribusi (DDoS).
Jika kasus penggunaan Anda memerlukan akses ganda ke aplikasi web dari keduanya CloudFront dan Application Load Balancer langsung melalui internet, pertimbangkan untuk memisahkan API aplikasi web Anda sebagai berikut:
API yang harus dilalui CloudFront. Dalam hal ini, pertimbangkan untuk menggunakan Application Load Balancer pribadi yang terpisah sebagai asal.
API yang memerlukan akses melalui Application Load Balancer. Dalam hal ini, Anda melewati CloudFront.
Atau, untuk aplikasi web atau konten lain yang dilayani oleh Application Load Balancer yang menghadap ke internet di Elastic Load Balancing, CloudFront dapat menyimpan objek dan menyajikannya langsung ke pengguna (pemirsa), mengurangi beban pada Penyeimbang Beban Aplikasi Anda. Penyeimbang beban yang menghadap ke internet memiliki nama DNS yang dapat diselesaikan secara publik dan merutekan permintaan dari klien ke target melalui internet.
Untuk informasi selengkapnya, lihat topik berikut. Setelah Anda menyelesaikan langkah-langkah ini, pengguna hanya dapat mengakses Penyeimbang Beban Aplikasi Anda melalui CloudFront.
Topik
Konfigur CloudFront asikan untuk menambahkan header HTTP kustom ke permintaan
Anda dapat mengonfigurasi CloudFront untuk menambahkan header HTTP kustom ke permintaan yang dikirim ke asal Anda (dalam hal ini, Penyeimbang Beban Aplikasi).
penting
Kasus penggunaan ini bergantung pada menjaga nama header kustom dan rahasia nilai. Jika nama header dan nilai tidak rahasia, klien HTTP lain berpotensi memasukkannya dalam permintaan yang mereka kirim langsung ke Application Load Balancer. Hal ini dapat menyebabkan Application Load Balancer berperilaku seolah-olah permintaan berasal dari pad CloudFront ahal tidak. Untuk mencegah hal ini, rahasiakan nama header kustom dan nilai.
Anda dapat mengonfigurasi CloudFront untuk menambahkan header HTTP kustom ke permintaan asal dengan CloudFront konsol CloudFormation,, atau CloudFront API.
- Untuk menambahkan header HTTP kustom (CloudFront konsol)
-
Di CloudFront konsol, gunakan setelan Origin Custom Headers di Origin Sett ings. Masukkan Nama Header dan nil ainya.
catatan
Dalam produksi, gunakan nama dan nilai header yang dihasilkan secara acak. Perlakukan nama dan nilai header sebagai kredentif aman, seperti nama pengguna dan kata sandi.
Anda dapat mengedit set elan Origin Custom Headers saat Anda membuat atau mengedit asal untuk CloudFront distribusi yang ada, dan saat Anda membuat distribusi baru. Untuk informasi selengkapnya, lihat Perbarui distribusi dan Buat distribusi.
- Untuk menambah header HTTP kustom (CloudFormation)
-
Dalam CloudFormation template, gunakan
OriginCustomHeadersproperti, seperti yang ditunjukkan pada contoh berikut.catatan
Nama header dan nilai dalam contoh ini hanya untuk demonstrasi. Dalam produksi, gunakan nilai yang dihasilkan secara acak. Perlakukan nama header dan nilai sebagai kredensial aman, seperti nama pengguna dan kata sandi.
AWSTemplateFormatVersion: '2010-09-09' Resources: TestDistribution: Type: 'AWS::CloudFront::Distribution' Properties: DistributionConfig: Origins: - DomainName: app-load-balancer.example.com Id: Example-ALB CustomOriginConfig: OriginProtocolPolicy: https-only OriginSSLProtocols: - TLSv1.2 OriginCustomHeaders: - HeaderName: X-Custom-Header HeaderValue: random-value-1234567890 Enabled: 'true' DefaultCacheBehavior: TargetOriginId: Example-ALB ViewerProtocolPolicy: allow-all CachePolicyId: 658327ea-f89d-4fab-a63d-7e88639e58f6 PriceClass: PriceClass_All ViewerCertificate: CloudFrontDefaultCertificate: 'true'Untuk informasi selengkapnya, lihat Origin dan OriginCustomHeader properti di Panduan AWS CloudFormation Pengguna.
- Untuk menambahkan header HTTP kustom (CloudFront API)
-
Di CloudFront API, gunakan
CustomHeadersobjek di dalamnyaOrigin. Untuk informasi selengkapnya, lihat CreateDistribution dan UpdateDistribution di Referensi CloudFront API Amazon, dan dokumentasi untuk SDK atau klien API lainnya.
Ada beberapa nama header yang Anda tidak dapat tentukan sebagai header kustom asal. Untuk informasi selengkapnya, lihat Header khusus yang tidak CloudFront dapat ditambahkan ke permintaan asal.
Mengkonfigurasi Application Load Balancer untuk hanya meneruskan permintaan yang berisi header tertentu
Setelah Anda mengonfigurasi CloudFront untuk menambahkan header HTTP kustom ke permintaan yang dikirimkan ke Application Load Balancer Anda (lihat bagian sebelumnya), Anda dapat mengonfigurasi penyeimbang beban untuk hanya meneruskan permintaan yang berisi header kustom ini. Anda melakukan ini dengan menambah aturan baru dan memodifikasi aturan default dalam listener penyeimbang beban Anda.
Prasyarat
Untuk menggunakan prosedur berikut, Anda memerlukan Application Load Balancer dengan setidaknya satu listener. Jika Anda belum membuatnya, lihat Membuat Application Load Balancer di Panduan Pengguna untuk Application Load Balancers.
Prosedur berikut ini memodifikasi listener HTTPS. Anda dapat menggunakan proses yang sama untuk memodifikasi listener HTTP.
Untuk memperbarui aturan dalam listener Application Load Balancer
-
Tambahkan aturan baru. Gunakan instruksi dari Tambahkan aturan, dengan modifikasi berikut:
Tambahkan aturan ke penyeimbang beban yang merupakan asal untuk CloudFront distribusi Anda.
Untuk Tam bah kondisi, pilih header Http. Tentukan nama header HTTP dan nilai yang Anda tambahkan sebagai header kustom asal di CloudFront.
Untuk Tambah tindakan, pilih Teruskan ke. Pilih grup target tempat Anda ingin meneruskan permintaan.
-
Edit aturan default di pendengar penyeimbang beban Anda. Gunakan instruksi dari Edit aturan, dengan modifikasi berikut:
Edit aturan default penyeimbang beban yang merupakan asal untuk CloudFront distribusi Anda.
Hapus tindakan default, lalu untuk Tam bah tindakan, pilih Kem balikan respons tetap.
Untuk Kode respons, masukkan
403.Untuk Isi respons, masukkan
Access denied.
Setelah Anda menyelesaikan langkah-langkah ini, pendengar penyeimbang beban Anda memiliki dua aturan. Satu aturan meneruskan permintaan yang berisi header HTTP (permintaan yang berasal dari CloudFront). Aturan lainnya mengirimkan respons tetap ke semua permintaan lain (permintaan yang tidak berasal CloudFront).
Anda dapat memverifikasi bahwa solusi berfungsi dengan mengirimkan permintaan ke CloudFront distribusi Anda dan satu ke Application Load Balancer Anda. Permintaan untuk CloudFront mengembalikan aplikasi web atau konten Anda, dan yang dikirim langsung ke Application Load Balancer mengembalikan 403 respons dengan pesan Access denied teks biasa.
(Opsional) tingkatkan keamanan solusi ini.
Untuk meningkatkan keamanan solusi ini, Anda dapat mengonfigurasi CloudFront distribusi Anda untuk selalu menggunakan HTTPS saat mengirim permintaan ke Application Load Balancer Anda. Ingat, solusi ini hanya berfungsi jika Anda menyimpan nama header kustom dan rahasia nilai. Menggunakan HTTPS dapat membantu mencegah penyadap menemukan nama dan nilai header. Kami juga merekomendasikan merotasi nama header dan nilai secara berkala.
Menggunakan HTTPS untuk permintaan asal
CloudFront Untuk mengonfigurasi penggunaan HTTPS untuk permintaan asal, setel pengaturan Kebijakan Protokol Asal ke Hanya HTTPS. Pengaturan ini tersedia di CloudFront konsol, CloudFormation, dan CloudFront API. Untuk informasi selengkapnya, lihat Protokol (hanya asal khusus).
Hal berikut juga berlaku saat Anda mengonfigurasi CloudFront untuk menggunakan HTTPS untuk permintaan asal:
-
Anda harus CloudFront mengonfigurasi untuk meneruskan
Hostheader ke asal dengan kebijakan permintaan asal. Anda dapat menggunakan kebijakan permintaan AllViewer asal terkelola. -
Pastikan Application Load Balancer Anda memiliki pendengar HTTPS (seperti yang ditunjukkan pada bagian sebelumnya). Untuk informasi lebih lanjut, lihat Buat listener HTTPS di Panduan pengguna untuk Application Load Balancers. Menggunakan pendengar HTTPS mengharuskan Anda memiliki SSL/TLS sertifikat yang cocok dengan nama domain yang dialihkan ke Application Load Balancer Anda.
-
SSL/TLS sertifikat untuk hanya CloudFront dapat diminta (atau diimpor) di
us-east-1Wilayah AWS in AWS Certificate Manager (ACM). Karena CloudFront merupakan layanan global, layanan ini secara otomatis mendistribusikan sertifikat dari Wilus-east-1ayah ke semua Wilayah yang terkait dengan CloudFront distribusi Anda.-
Misalnya, jika Anda memiliki Application Load Balancer (ALB) di Wil
ap-southeast-2ayah, Anda harus mengonfigurasi SSL/TLS sertifikat di Wilap-southeast-2ayah (untuk menggunakan HTTPS antara CloudFront dan asal ALB) dan Wilus-east-1ayah (untuk menggunakan HTTPS antara pemirsa dan CloudFront). Kedua sertifikat harus cocok dengan nama domain yang dialihkan ke Application Load Balancer Anda. Untuk informasi selengkapnya, lihat Wilayah AWS untuk AWS Certificate Manager.
-
-
Jika pengguna akhir (juga dikenal sebagai pemirsa, atau klien) aplikasi web Anda dapat menggunakan HTTPS, Anda juga dapat mengonfigurasi CloudFront untuk memilih (atau bahkan memerlukan) koneksi HTTPS dari pengguna akhir. Untuk melakukannya, gunakan pengaturan Kebijakan Protokol Penampil. Anda dapat mengaturnya untuk mengarahkan pengguna akhir dari HTTP ke HTTPS, atau untuk menolak permintaan yang menggunakan HTTP. Pengaturan ini tersedia di CloudFront konsol, CloudFormation, dan CloudFront API. Untuk informasi selengkapnya, lihat Kebijakan protokol penampil.
Memutar nama header dan nilai
Selain menggunakan HTTPS, kami juga merekomendasikan merotasi nama header dan nilai secara berkala. Langkah-langkah tingkat tinggi untuk melakukan ini adalah sebagai berikut:
-
Konfigur CloudFront asikan untuk menambahkan header HTTP kustom tambahan untuk permintaan yang dikirim ke Application Load Balancer.
-
Perbarui aturan listener Application Load Balancer untuk meneruskan permintaan yang berisi header HTTP kustom tambahan ini.
-
Konfigur CloudFront asikan untuk berhenti menambahkan header HTTP kustom asli ke permintaan yang dikirim ke Application Load Balancer.
-
Perbarui aturan listener Application Load Balancer untuk menghentikan penerusan permintaan yang berisi header HTTP kustom tambahan ini.
Untuk informasi lebih lanjut tentang pencapaian langkah-langkah ini, lihat bagian sebelumnya.
(Opsional) Batasi akses ke asal dengan menggunakan AWS-daftar awalan yang dikelola untuk CloudFront
Untuk lebih membatasi akses ke Application Load Balancer Anda, Anda dapat mengonfigurasi grup keamanan yang terkait dengan Application Load Balancer sehingga hanya menerima lalu lintas dari CloudFront saat layanan menggunakan daftar awalan yang AWS dikelola -managed. Ini mencegah lalu lintas yang tidak berasal CloudFront dari mencapai Application Load Balancer Anda di lapisan jaringan (lapisan 3) atau lapisan transport (lapisan 4).
Untuk informasi selengkapnya, lihat Batasi akses ke asal Anda menggunakan daftar awalan AWS yang dikelola -untuk posting CloudFront