Kontrol akses ALB menyediakan penyaringan detail halus untuk permintaan klien menggunakan daftar putih dan blacklist IP pada listener. Anda dapat membuat daftar kontrol akses (ACL), menambahkan entri IP, lalu mengaitkannya dengan listener untuk mengizinkan atau menolak traffic dari sumber tertentu.
ACL vs. security group
ALB menyediakan dua metode kontrol akses: daftar kontrol akses (ACL) dan security group.
|
Item |
ACL |
grup keamanan ALB |
|
Granularitas kontrol |
Berdasarkan IP sumber. Berlaku untuk masing-masing listener. |
Berdasarkan IP sumber, protokol, dan port. Berlaku untuk seluruh instans ALB. |
|
Dukungan IPv6 |
Tidak didukung. Anda hanya dapat menambahkan entri IPv4. |
Mendukung alamat IPv4 dan IPv6. |
|
Perilaku default |
Pada mode daftar putih, permintaan dari alamat IP yang tidak ada dalam ACL ditolak. Pada mode blacklist, permintaan dari alamat IP yang tidak ada dalam ACL diizinkan. |
Mengizinkan semua traffic secara default. Anda harus secara eksplisit menambahkan aturan deny untuk 0.0.0.0/0 guna membatasi akses. |
|
Kasus penggunaan |
Gunakan untuk daftar putih dan blacklist IP sederhana. Metode ini mudah dikonfigurasi dan tidak memerlukan pemahaman tentang prioritas aturan. |
Skenario yang memerlukan kontrol tingkat port, dukungan IPv6, atau kontrol ICMP. |
Prasyarat
Anda telah membuat instans ALB dan mengonfigurasi listener.
Membuat ACL
Daftar kontrol akses (ACL) adalah kumpulan entri IP. Setelah membuat ACL dan menambahkan entri, Anda dapat mengaitkannya dengan listener untuk menerapkan kontrol akses berbasis daftar putih atau blacklist.
Konsol
-
Buka halaman Access Control di Konsol ALB. Di bilah navigasi atas, pilih wilayah tempat instans target dideploy, lalu klik Create ACL.
-
Pada kotak dialog Create ACL, masukkan nama untuk ACL, lalu klik OK.
-
Setelah ACL dibuat, pada halaman Access Control, klik ID ACL target untuk membuka halaman detailnya. Pada tab Entry, tambahkan entri IP dengan salah satu cara berikut:
-
Tambahkan satu entri: Klik Add Entry. Di kotak dialog, masukkan IP/CIDR Block dan Remarks, lalu klik Add.
-
Tambahkan entri secara batch: Klik Add ACL Entries. Masukkan entri dalam format berikut:
-
Masukkan satu entri per baris.
-
Gunakan tanda pipa vertikal (|) untuk memisahkan alamat IP atau blok CIDR dari keterangannya, contohnya 192.168.1.0/24|test-remark.
-
Anda dapat menambahkan hingga 20 entri sekaligus.
-
Jika batch berisi entri yang sudah ada di ACL, operasi penambahan batch akan gagal. Hapus entri duplikat tersebut dan kirim ulang batch.
-
-
Setelah menambahkan entri, Anda dapat menghapus atau mengekspornya dari daftar entri.
API
-
Panggil CreateAcl untuk membuat ACL.
-
Panggil AddEntriesToAcl untuk menambahkan entri IP.
-
Panggil RemoveEntriesFromAcl untuk menghapus entri IP.
Aktifkan atau nonaktifkan kontrol akses
Anda dapat mengonfigurasi daftar putih atau blacklist untuk listener:
-
Daftar putih: Mengizinkan akses hanya dari alamat IP yang ada di ACL dan menolak semua permintaan lainnya.
-
Blacklist: Menolak akses dari alamat IP yang ada di ACL dan mengizinkan semua permintaan lainnya.
Baik Anda mengonfigurasi daftar putih maupun blacklist, jika ACL yang terkait tidak berisi entri IP apa pun, kontrol akses tidak berpengaruh dan listener meneruskan semua permintaan. Sebelum mengonfigurasi daftar putih, pastikan ACL berisi alamat IP yang ingin Anda izinkan guna mencegah gangguan layanan.
Konsol
-
Buka halaman Instances di Konsol ALB. Di bilah navigasi atas, pilih wilayah tempat instans target dideploy, lalu klik ID instans tersebut.
-
Pada tab Listener, temukan listener target. Di kolom Access Control, klik Enable atau Close.
-
Enable: Di kotak dialog, pilih Access Control Mode (Whitelist atau Blacklist) dan ACL, lalu klik Save.
-
Close: Di kotak dialog konfirmasi, klik OK.
-
Anda juga dapat mengaktifkan atau menonaktifkan kontrol akses di bagian Access Control pada halaman detail listener.
API
-
Panggil AssociateAclsWithListener untuk mengaitkan ACL dengan listener.
-
Panggil DissociateAclsFromListener untuk memutuskan kaitan ACL dari listener.
FAQ
Daftar putih tidak berpengaruh
Penyebab: ACL tidak dikaitkan dengan listener, atau ACL tidak memiliki entri IP. ACL kosong mengizinkan semua traffic.
Solusi: Di tab Listener instans ALB, pastikan kolom Access Control untuk listener target menampilkan Enabled. Pastikan juga ACL yang terkait berisi entri IP.
Tidak dapat menambahkan 0.0.0.0/0 ke daftar putih
Penyebab: ACL tidak mendukung penambahan entri 0.0.0.0/0. Konsol akan melaporkan kesalahan format.
Solusi: Metode yang benar adalah menonaktifkan kontrol akses, lalu mengaktifkannya kembali saat diperlukan.
Blacklist tidak berpengaruh
Penyebab: Permintaan diteruskan ke ALB melalui CDN atau WAF. IP sumber yang terlihat oleh ALB adalah IP sumber CDN atau WAF, bukan alamat IP klien sebenarnya.
Solusi: Kontrol akses ALB beroperasi di Lapisan 4 dan mencocokkan alamat IP sumber dalam paket permintaan. Saat permintaan diteruskan oleh proxy seperti CDN atau WAF, IP sumber adalah IP sumber proxy tersebut. Oleh karena itu, blacklist ALB tidak dapat memblokir alamat IP klien. Konfigurasikan blacklist di lapisan WAF atau CDN.
Blacklist tidak dapat memblokir IP X-Forwarded-For
Penyebab: Kontrol akses ALB beroperasi di Lapisan 4 dan hanya mencocokkan alamat IP sumber dalam paket permintaan. Fitur ini tidak mengurai header HTTP X-Forwarded-For di Lapisan 7.
Solusi: Anda dapat menerapkan ini dengan menggunakan aturan kustom di WAF. Atur Match Field ke X-Forwarded-For, Logical Operator ke Contains, Match Content ke alamat IP target, dan Rule Action ke Block. Untuk informasi lebih lanjut, lihat Konfigurasi kondisi pencocokan untuk aturan kustom.
Aturan allow/deny NGINX backend tidak berpengaruh
Penyebab: Setelah traffic diproksi melalui ALB, server backend menerima IP lokal instans ALB (alamat IP pribadi yang ditetapkan dari vSwitch tempat instans ALB berada) sebagai IP sumber. Aturan allow/deny NGINX didasarkan pada IP sumber ini sehingga tidak dapat mencocokkan alamat IP klien.
Solusi:
-
(Direkomendasikan) Gunakan fitur kontrol akses ALB untuk mengonfigurasi daftar putih atau blacklist IP langsung di lapisan ALB.
-
Di NGINX, peroleh alamat IP klien sebenarnya dari header permintaan
X-Forwarded-For, lalu konfigurasikan aturan allow/deny berdasarkan alamat IP sebenarnya.
Membatasi akses berdasarkan domain atau path
Deskripsi: ACL beroperasi di tingkat listener dan tidak dapat membedakan berdasarkan nama domain atau path. Saat diaktifkan, ACL memengaruhi semua domain yang terkait dengan listener tersebut.
Solusi alternatif: Untuk instans ALB Jenis Standar atau yang diaktifkan WAF, Anda dapat menggunakan aturan pengalihan. Di kondisi pengalihan, konfigurasikan kondisi Domain Name/Path dan SourceIp untuk Return Fixed Responses (misalnya 403) untuk permintaan yang cocok. Kondisi SourceIp dalam satu aturan pengalihan mendukung hingga lima alamat IP atau blok CIDR dan tidak mendukung format 0.0.0.0/x. Jika Anda memiliki banyak alamat IP atau menggunakan instans ALB Basic, kami merekomendasikan penggunaan WAF. Anda dapat membuat aturan kustom di WAF untuk menggabungkan kondisi host/path dan IP guna melakukan kontrol akses.
Memblokir alamat IP dari negara asing
Deskripsi: Kontrol akses ALB tidak menyediakan fitur geo-blocking dan tidak dapat secara otomatis mengidentifikasi negara asal alamat IP.
Solusi alternatif: Anda dapat menambahkan rentang IP asing yang diketahui secara manual ke blacklist, tetapi metode ini tidak diperbarui secara otomatis dan tunduk pada batas entri. Kami merekomendasikan penggunaan fitur geo-blocking WAF.
Kontrol akses dalam skenario proxy multi-lapis
Saat proxy Lapisan 7 dideploy di depan instans ALB, fitur kontrol akses ALB yang beroperasi di Lapisan 4 hanya dapat melihat alamat IP sumber dari hop proxy sebelumnya dan tidak dapat mengidentifikasi alamat IP klien sebenarnya. Oleh karena itu, Anda harus mengonfigurasi kontrol akses di lapisan yang tepat. Ambil contoh skenario di mana WAF dihubungkan menggunakan rekaman CNAME (Klien → CDN → WAF → ALB → ECS). Alamat IP sumber dan rekomendasi kontrol akses untuk setiap lapisan adalah sebagai berikut.
Instans ALB yang diaktifkan WAF menggunakan SDK untuk perlindungan. WAF tidak berpartisipasi dalam penerusan traffic, sehingga tidak ada hop IP sumber WAF. Jika tidak ada proxy Lapisan 7 seperti CDN yang dideploy di depan instans ALB, masalah yang dijelaskan dalam bagian ini tidak berlaku.
|
Lapisan |
IP sumber yang terlihat |
Rekomendasi kontrol akses |
|
WAF |
|
Konfigurasikan daftar putih dan blacklist IP di lapisan ini. Saat dikonfigurasi dengan benar, WAF memblokir permintaan berdasarkan alamat IP klien sebenarnya dan juga mendukung geo-blocking. |
|
ALB |
IP sumber WAF. |
Konfigurasikan daftar putih pada instans ALB untuk hanya mengizinkan akses dari rentang IP sumber WAF. Hal ini mencegah penyerang melewati WAF dan langsung mengakses alamat IP publik instans ALB. Anda dapat melihat rentang IP sumber WAF di halaman Access Management di Konsol WAF. |
|
Backend ECS |
Alamat IP lokal instans ALB (alamat IP pribadi yang ditetapkan dari vSwitch tempat instans ALB berada). |
Pastikan blok CIDR IP lokal instans ALB tidak diblokir oleh iptables atau perangkat lunak keamanan pihak ketiga lainnya di instans ECS backend. Jika diblokir, pemeriksaan kesehatan dan penerusan permintaan akan gagal. |
Penagihan
Fitur kontrol akses tidak dikenai biaya. Untuk informasi lebih lanjut tentang penagihan instans ALB, lihat penagihan ALB.
Kuota
|
Item |
Edisi |
Kuota |
|
Jumlah listener yang dapat dikaitkan dengan ACL |
Basic/Standard/WAF-enabled |
50 |
|
Jumlah ACL yang dapat dikaitkan dengan listener |
Basic/Standard/WAF-enabled |
3 |
|
Jumlah ACL yang dapat dibuat di wilayah |
Basic/Standard/WAF-enabled |
1.000 |
|
Jumlah entri yang dapat ditambahkan ke ACL |
Basic/Standard/WAF-enabled |
500 |
|
Jumlah entri ACL yang dapat dikaitkan dengan instans ALB |
Basic/Standard/WAF-enabled |
800 |
|
Jumlah entri ACL yang dapat dikaitkan dengan listener |
Basic |
300 |
|
Standard/WAF-enabled |
500 |
Kuota ini merupakan batas maksimum dan tidak dapat ditingkatkan. Untuk informasi lebih lanjut, lihat kuota dan batasan ALB.