Saat menggunakan Application Load Balancer (ALB) Ingress untuk mengekspos Layanan, Anda dapat mengonfigurasi daftar kontrol akses (ACL) untuk mengizinkan atau menolak permintaan dari klien berdasarkan alamat IP tertentu. Topik ini menjelaskan cara menggunakan AlbConfig untuk membuat atau memodifikasi ACL dan mengaitkannya dengan listener.
Cara kerja ACL
Ingress ALB mengimplementasikan kontrol granular atas permintaan dari klien berdasarkan alamat IP tertentu dengan mengaitkan ACL pada listener dan mengonfigurasi daftar putih atau daftar hitam. ACL mencakup sekelompok blok CIDR. Setelah ACL dikaitkan dengan listener melalui AlbConfig, listener menggunakan entri dalam ACL untuk mencocokkan alamat IP sumber permintaan yang mengakses Layanan backend. Anda dapat menggunakan salah satu metode berikut untuk mengontrol permintaan:
Konfigurasikan daftar putih untuk hanya mengizinkan permintaan dari alamat IP sumber yang sesuai dengan entri dalam ACL untuk mengakses Layanan backend.
Konfigurasikan daftar hitam untuk menolak permintaan dari alamat IP sumber yang sesuai dengan entri dalam ACL dari mengakses Layanan backend.
ACL hanya mendukung kontrol akses menggunakan alamat IPv4.
Gambar berikut menunjukkan cara kerja ACL.
Metode konfigurasi
Tabel berikut menjelaskan metode yang dapat digunakan untuk mengaitkan listener dengan ACL. Kami merekomendasikan penggunaan parameter aclIds.
Item | ||
Versi Controller Ingress ALB | Controller Ingress ALB 2.7.0 dan versi lebih baru mendukung parameter ini. | Semua versi controller Ingress ALB mendukung parameter ini. |
Asosiasi dengan ACL yang Sudah Ada | Anda dapat menggunakan ID ACL yang sudah ada untuk mengaitkan listener dengan ACL. | Controller Ingress ALB 2.7.0 dan versi lebih baru tidak mengizinkan Anda untuk mengaitkan listener dengan ACL yang sudah ada. |
Metode untuk Membuat ACL | Anda harus secara manual membuat ACL di konsol Server Load Balancer (SLB) sebelum menggunakan ACL. | Anda dapat membuat ACL menggunakan AlbConfig. |
Skenario Penggunaan | Metode ini cocok untuk skenario di mana Anda perlu sering mengubah entri dalam ACL dan ingin memelihara ACL dengan cara yang hemat biaya. | Metode ini cocok untuk skenario di mana Anda ingin mengaktifkan kontrol akses menggunakan sejumlah kecil listener dan ACL yang berisi sejumlah kecil entri. |
Parameter
aclIdsdanaclEntriessaling eksklusif dalam konfigurasi ACL. Anda hanya dapat menggunakan salah satu dari mereka untuk mengonfigurasi ACL untuk listener. Jika Anda menggunakan kedua parameter pada saat yang sama, kesalahan akan terjadi.Dalam controller Ingress ALB 2.7.0 dan versi lebih baru, Anda hanya dapat menggunakan parameter
aclIdsuntuk mengaitkan ACL yang sudah ada dengan listener.
Prasyarat
Sebuah AlbConfig telah dibuat, dan listener telah dikonfigurasi menggunakan AlbConfig. Parameter aclConfig telah dikaitkan dengan listener untuk digunakan.
Gunakan parameter aclIds untuk mengaitkan listener dengan ACL
Langkah 1: Buat ACL
Sebelum mengaktifkan kontrol akses, Anda harus membuat ACL.
Masuk ke konsol ALB.
Di bilah navigasi atas, pilih wilayah tempat Anda ingin membuat ACL.
Di panel navigasi sisi kiri, pilih ALB > Access Control.
Pada halaman Access Control, klik Create Access Control List.
Dalam kotak dialog Create ACL, konfigurasikan parameter berikut dan klik OK.
Parameter
Deskripsi
ACL Name
Masukkan nama untuk ACL jaringan.
Tags and Resource Group
Konfigurasikan parameter Tag Key dan Tag Value.
Setelah Anda menentukan tag, Anda dapat memfilter ACL berdasarkan tag pada halaman Access Control.
Pilih grup sumber daya dari daftar drop-down Resource Group.
Langkah 2: Tambahkan entri ke ACL
Setelah membuat ACL, Anda dapat menambahkan entri ke ACL. Entri ACL menentukan alamat IP sumber atau blok CIDR dari mana permintaan dikirim ke instance ALB Anda. Anda dapat menambahkan beberapa entri ke setiap ACL.
Pada halaman Access Control, temukan ACL yang ingin Anda kelola dan klik Manage di kolom Actions.
Pada tab Entry halaman detail ACL, gunakan salah satu metode berikut untuk menambahkan entri:
Tambahkan satu alamat IP atau blok CIDR
Klik Add Entry. Dalam kotak dialog Add ACL Entries, konfigurasikan parameter IP/CIDR Block dan Remarks. Lalu, klik Add.
Tambahkan beberapa alamat IP atau blok CIDR sekaligus
Klik Add ACL Entries. Dalam kotak dialog Add ACL Entries, tambahkan beberapa alamat IP atau blok CIDR dan catatan. Lalu, klik Add.
CatatanSaat menambahkan beberapa entri sekaligus, perhatikan item berikut:
Masukkan satu entri per baris. Tekan tombol ENTER untuk memulai baris baru.
Gunakan tanda vertikal (|) untuk memisahkan alamat IP atau blok CIDR dari catatan dalam entri. Misalnya, Anda dapat memasukkan 192.168.1.0/24|Catatan.
Anda dapat menambahkan maksimal 20 entri sekaligus.
Setelah menambahkan entri, lakukan operasi berikut berdasarkan kebutuhan bisnis Anda:
Lihat alamat IP atau blok CIDR yang Anda tambahkan di kolom Entri.
Hapus entri. Untuk melakukannya, temukan entri yang ingin Anda hapus dan klik Delete di kolom Actions. Anda juga dapat memilih entri yang ingin Anda hapus dan klik Delete di bawah daftar.
Untuk mengekspor entri, klik ikon
di sudut kanan atas daftar untuk mengekspor semua entri, atau pilih entri yang ingin Anda ekspor dan klik ikon
.
Langkah 3: Kaitkan ACL dengan listener
Kode YAML sampel berikut menambahkan parameter spec.listeners.aclConfig ke AlbConfig yang ada dan menentukan ID ACL yang dibuat sebagai nilai parameter aclIds. Dalam contoh ini, ID ACL yang dibuat adalah acl-wtg***.
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
name: default
spec:
config:
#...
listeners:
- port: #...
protocol: #...
aclConfig:
aclType: White # Mode daftar putih.
aclIds:
- acl-wtg*** # Tambahkan ID ACL yang sudah ada ke konfigurasi ACL. Dalam contoh ini, ID ACL yang sudah ada adalah acl-wtg***.
#...Tabel berikut menjelaskan parameter dalam aclConfig.
Parameter | Deskripsi |
| Jenis ACL. Nilai valid: Black dan White. |
| ID ACL yang akan dikaitkan dengan listener. Penting Setiap listener dapat dikaitkan dengan maksimal tiga ACL. |
Langkah 4: Verifikasi efek kontrol akses
Anda dapat menggunakan klien yang alamat IP publiknya sesuai dengan entri dalam daftar putih atau tidak ada entri dalam daftar hitam untuk mengakses Layanan backend dan memverifikasi efek konfigurasi ACL.
Dalam contoh ini, sumber daya yang dibuat dalam topik Memulai dengan ALB Ingress digunakan.
Jika akses dari klien diizinkan, klien dapat mengakses Layanan backend sesuai harapan.

Langkah 5: (Opsional) Putuskan kaitan ACL dari listener
Dalam file YAML berikut, jika Anda ingin memutuskan kaitan ACL dari listener, Anda hanya perlu menghapus ID ACL dari nilai parameter aclIds atau mengubah nilai parameter aclIds menjadi null.
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
name: default
spec:
config:
#...
listeners:
- port: #...
protocol: #...
aclConfig:
aclType: White
aclIds: null # Hapus ID ACL yang sudah ada dari nilai parameter ini. Dalam contoh ini, ID ACL yang sudah ada adalah acl-wtg***.
#...Anda tidak dapat menghapus ACL dari AlbConfig. Untuk menghapus ACL, masuk ke konsol SLB.
Gunakan parameter aclEntries untuk membuat ACL
Dalam controller Ingress ALB v2.7.0 dan versi lebih baru, Anda tidak dapat lagi menggunakan parameter
aclNameuntuk mengaitkan ACL yang sudah ada dengan listener. Setiap kali Anda memperbarui parameter dalamaclName, ACL baru dibuat dan dikaitkan dengan listener.Controller Ingress ALB v2.6.0 dan versi lebih lama menggunakan mekanisme write-back secara default. Bagian berikut menjelaskan cara kerja mekanisme write-back:
Jika parameter
aclConfigdibiarkan kosong dalam AlbConfig, entri ACL yang dikaitkan dengan listener ditulis kembali ke AlbConfig.Jika parameter
aclConfigdikonfigurasi atau entri ACL yang dikaitkan dengan listener ditulis kembali ke AlbConfig, AlbConfig tetap tidak berubah.
Jika sumber daya Ingress diubah, controller Ingress ALB menggunakan AlbConfig yang dikonfigurasi untuk menimpa konfigurasi ACL di konsol. Dalam hal ini, Anda perlu memelihara konsistensi konfigurasi.
Langkah 1: Konfigurasikan entri dalam ACL
Kode YAML sampel berikut menambahkan atau memodifikasi parameter spec.listeners.aclConfig dalam AlbConfig yang ada dan menentukan blok CIDR dalam parameter aclEntries. Jika nilai ditentukan dalam parameter aclName, ACL dibuat dan menggunakan nilai tersebut sebagai namanya. Jika tidak ada nilai yang ditentukan dalam parameter aclName, nama akan secara otomatis dibuat dalam format acl-{albName}-{port}.
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
name: default
spec:
config:
#...
listeners:
- port: #...
protocol: #...
aclConfig:
aclEntries:
- 192.168.XX.XX/16
- 172.10.XX.XX/16
aclType: White # Mode daftar putih.
aclName: "acl-test" # ACL bernama acl-test dibuat dan dikaitkan dengan listener.
#...Tabel berikut menjelaskan parameter dalam aclConfig.
Parameter | Deskripsi |
| Entri ACL. Entri harus berupa blok CIDR, seperti 127.0.0.1/32. |
| Jenis ACL. Nilai valid: Black dan White. |
| Nama ACL. |
Langkah 2: Verifikasi efek kontrol akses
Anda dapat menggunakan klien yang alamat IP publiknya sesuai dengan entri dalam daftar putih atau tidak ada entri dalam daftar hitam untuk mengakses Layanan backend dan memverifikasi efek konfigurasi ACL.
Dalam contoh ini, sumber daya yang dibuat dalam topik Memulai dengan ALB Ingress digunakan.
Jika akses dari klien diizinkan, klien dapat mengakses Layanan backend sesuai harapan.

Langkah 3: (Opsional) Hapus ACL
Kode YAML sampel berikut menunjukkan cara menghapus ACL dengan memperbarui AlbConfig. Kode sampel menghapus ACL tipe daftar putih yang berisi blok CIDR 172.10.XX.XX/16. Parameter aclEntries yang diperbarui dalam AlbConfig disinkronkan ke ACL yang terkait. Dalam contoh ini, ACL bernama acl-test. Jika parameter aclEntries dibiarkan kosong, semua entri dihapus dari ACL.
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
name: default
spec:
config:
#...
listeners:
- port: #...
protocol: #...
aclConfig:
aclEntries:
- 192.168.XX.XX/16
aclType: White
aclName: "acl-test" # Entri 172.10.XX.XX/16 dalam ACL acl-test juga dihapus.
#...Anda tidak dapat menghapus ACL dari AlbConfig. Untuk menghapus ACL, masuk ke konsol SLB.
Referensi
Anda dapat mengonfigurasi ACL untuk server API kluster. Untuk informasi lebih lanjut, lihat Konfigurasikan Kebijakan Kontrol Akses untuk Server API.
Lalu lintas masuk dan keluar node dalam kluster dikendalikan oleh grup keamanan. Untuk informasi lebih lanjut tentang cara mengonfigurasi grup keamanan, lihat Konfigurasikan Grup Keamanan untuk Kluster.