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
ACL dari ALB Ingress dikaitkan dengan listener untuk menerima atau menolak permintaan dari alamat IP yang masuk dalam daftar putih atau daftar hitam. ACL berisi sekelompok blok CIDR. Setelah Anda mengaitkan ACL dengan listener menggunakan AlbConfig, listener menggunakan entri dalam ACL untuk mencocokkan alamat IP sumber dari mana permintaan dikirim untuk mengakses Layanan backend. Anda dapat menggunakan salah satu metode berikut untuk mengontrol permintaan:
Konfigurasikan ACL untuk hanya mengizinkan permintaan dari alamat IP sumber yang cocok dengan entri dalam ACL.
Konfigurasikan ACL untuk menolak permintaan dari alamat IP sumber yang cocok dengan entri dalam ACL.
ACL mendukung kontrol akses hanya dengan 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 ALB Ingress Controller | Parameter ini tersedia untuk ALB Ingress controller versi 2.7.0 atau lebih baru. | Parameter ini tersedia untuk semua versi ALB Ingress controller. |
Asosiasi dengan ACL yang Ada | Anda dapat menggunakan ID ACL yang ada untuk mengaitkan listener dengan ACL. | ALB Ingress controller versi 2.7.0 atau lebih baru tidak mengizinkan Anda untuk mengaitkan listener dengan ACL yang ada. |
Metode Pembuatan ACL | Anda harus secara manual membuat ACL di konsol Server Load Balancer (SLB) sebelum menggunakan ACL. | Anda dapat membuat ACL dengan 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 dengan 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 tersebut pada saat yang sama, akan terjadi kesalahan.Untuk ALB Ingress controller versi 2.7.0 atau lebih baru, Anda hanya dapat menggunakan parameter
aclIdsuntuk mengaitkan ACL yang ada dengan listener.
Prasyarat
AlbConfig dibuat, dan listener dikonfigurasi dengan menggunakan AlbConfig. Parameter aclConfig dikaitkan dengan listener untuk digunakan.
Gunakan parameter aclIds untuk mengaitkan ACL dengan listener
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 di sebelah kiri, pilih ALB > Access Control.
Di halaman Access Control, klik Create Access Control List.
Di kotak dialog Create ACL, konfigurasikan parameter berikut dan klik OK.
Parameter
Deskripsi
ACL Name
Masukkan nama untuk ACL jaringan.
Resource Group
Pilih grup sumber daya.
Tag
Konfigurasikan parameter Tag Key dan Tag Value.
Setelah Anda menentukan tag, Anda dapat memfilter ACL berdasarkan tag di halaman Access Control.
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.
Di halaman Access Control, temukan ACL yang ingin Anda kelola dan klik Manage di kolom Actions.
Di tab Entry halaman detail ACL, gunakan salah satu metode berikut untuk menambahkan entri:
Tambahkan satu alamat IP atau blok CIDR
Klik Add Entry. Di 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. Di 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 hingga 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 dihapus 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 diekspor dan klik ikon
.
Langkah 3: Kaitkan ACL dengan listener
Dalam kode YAML sampel berikut, parameter spec.listeners.aclConfig ditambahkan ke AlbConfig yang ada, dan parameter aclIds disetel ke ID ACL yang dibuat. 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 ada ke konfigurasi ACL. Dalam contoh ini, ID ACL yang 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 cocok 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 kode 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 ada dari nilai parameter ini. Dalam contoh ini, ID ACL yang ada adalah acl-wtg***.
#...Anda tidak dapat menghapus ACL dari AlbConfig. Untuk menghapus ACL, masuk ke konsol SLB.
Gunakan parameter aclEntries untuk membuat ACL
Untuk ALB Ingress controller versi 2.7.0 atau lebih baru, Anda tidak dapat lagi menggunakan parameter
aclNameuntuk mengaitkan ACL yang ada dengan listener. Setiap kali Anda memperbarui parameter dalamaclName, ACL baru dibuat dan dikaitkan dengan listener.ALB Ingress controller versi 2.6.0 atau lebih lama mendukung mekanisme penulisan balik. Bagian berikut menjelaskan cara kerja mekanisme penulisan balik:
Jika parameter
aclConfigdibiarkan kosong dalam AlbConfig, entri ACL yang dikaitkan dengan listener ditulis kembali ke AlbConfig.Jika parameter
aclConfigdikonfigurasikan dalam AlbConfig atau entri ACL yang dikaitkan dengan listener ditulis kembali ke AlbConfig, AlbConfig tetap tidak berubah.
Jika sumber daya Ingress diubah, ALB Ingress controller menggunakan AlbConfig yang dikonfigurasikan untuk menimpa konfigurasi ACL di konsol. Dalam hal ini, Anda perlu memelihara konsistensi konfigurasi.
Langkah 1: Konfigurasikan entri dalam ACL
Dalam kode YAML sampel berikut, parameter spec.listeners.aclConfig dalam AlbConfig yang ada ditambahkan atau dimodifikasi, dan blok CIDR ditentukan 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 dibuat secara otomatis 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 cocok 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
Anda dapat menghapus ACL dengan memperbarui AlbConfig. Dalam kode sampel berikut, ACL tipe daftar putih yang berisi blok CIDR 172.10.XX.XX/16 dihapus. Parameter aclEntries yang diperbarui dalam AlbConfig disinkronkan ke ACL yang terkait. Dalam contoh ini, ACL diberi nama 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.