Open Policy Agent (OPA) memungkinkan Anda menentukan kebijakan kontrol akses setelah menyuntikkan proxy sidecar OPA ke dalam aplikasi. Untuk menerapkan otorisasi dan kontrol akses yang mendetail pada aplikasi di namespace tertentu, aktifkan fitur pengendalian ruang lingkup injeksi proxy sidecar OPA. Proxy sidecar OPA hanya disuntikkan ke pod di namespace dengan label opa-istio-injection=enabled.
Prasyarat
Sebuah kluster Container Service for Kubernetes (ACK) telah ditambahkan ke instance Service Mesh (ASM) versi 1.12.4.19 atau lebih baru. Untuk informasi lebih lanjut, lihat Tambahkan Kluster ke Instance ASM.
Dua namespace bernama default dan develop telah dibuat. Untuk informasi lebih lanjut, lihat Kelola Namespace dan Kuota Sumber Daya.
Aplikasi NGINX diterapkan di namespace default dan aplikasi sleep diterapkan di namespace develop. Untuk informasi lebih lanjut, lihat Buat Aplikasi Tanpa Status Menggunakan Deployment.
Langkah 1: Aktifkan Plugin OPA dan fitur pengendalian ruang lingkup injeksi proxy sidecar OPA
Dalam contoh ini, setelah Anda mengaktifkan plugin OPA dan fitur pengendalian ruang lingkup injeksi proxy sidecar OPA, tambahkan label opa-istio-injection=enabled ke namespace default dan jangan tambahkan label opa-istio-injection=enabled ke namespace develop. Verifikasi bahwa ruang lingkup injeksi proxy sidecar OPA dikendalikan dengan memeriksa apakah proxy sidecar OPA disuntikkan ke kedua aplikasi NGINX dan aplikasi sleep.
Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi sebelah kiri, pilih .
Di halaman OPA Policy, pilih Enable Open Policy Agent (OPA) Plug-in dan Enable OPA Injection Range Control, lalu klik Enable OPA. Dalam pesan Note, klik OK.
Langkah 2: Tambahkan label yang diperlukan ke namespace
Bagian berikut menjelaskan cara menambahkan label opa-istio-injection=enabled ke namespace default di Konsol ACK. Anda juga dapat menggunakan kubectl untuk terhubung ke kluster ACK dan menjalankan perintah kubectl label namespace default opa-istio-injection=enabled --overwrite untuk menambahkan label opa-istio-injection=enabled ke namespace default. Untuk informasi lebih lanjut tentang cara terhubung ke kluster, lihat Dapatkan File kubeconfig Kluster dan Gunakan kubectl untuk Terhubung ke Kluster.
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel navigasi sebelah kiri, klik Namespaces and Quotas.
Di halaman Namespace, klik Edit di kolom Actions dari namespace default.
Di kotak dialog Edit Namespace, atur nama label menjadi opa-istio-injection, atur nilai label menjadi enabled, klik Add, lalu klik OK.
Langkah 3: Mulai ulang aplikasi
Pada langkah ini, mulai ulang aplikasi dengan menghapus pod. Setelah aplikasi dimulai ulang, proxy sidecar OPA secara otomatis disuntikkan ke aplikasi jika namespace tempat aplikasi tersebut berada memiliki label yang diperlukan.
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel sebelah kiri, pilih .
Di bagian atas halaman Pods, atur Namespace menjadi default dan pilih di kolom Actions dari pod tempat aplikasi NGINX diterapkan. Di kotak dialog Note, klik OK.
Jika aplikasi memiliki beberapa pod, Anda perlu menghapus semua pod tersebut untuk memulai ulang aplikasi. Jika status pod adalah Running, pod tersebut dimulai ulang.
Ulangi operasi sebelumnya di langkah ini untuk memulai ulang pod aplikasi sleep di namespace develop.
Langkah 4: Periksa apakah pengendalian ruang lingkup injeksi berhasil
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel sebelah kiri, pilih .
Di halaman Pods, periksa apakah proxy sidecar OPA disuntikkan ke aplikasi NGINX dan sleep.
Atur Namespace menjadi default dan klik nama pod aplikasi NGINX. opa-istio ditampilkan di tab Container, yang menunjukkan bahwa proxy sidecar OPA disuntikkan ke aplikasi NGINX.

Atur Namespace menjadi develop dan klik nama pod aplikasi sleep. opa-istio tidak ditampilkan di tab Container, yang menunjukkan bahwa tidak ada proxy sidecar OPA yang disuntikkan ke aplikasi sleep.

Hasil verifikasi menunjukkan bahwa setelah mengaktifkan fitur pengendalian ruang lingkup injeksi proxy sidecar OPA, proxy sidecar OPA disuntikkan hanya ke aplikasi yang berada di namespace dengan label
opa-istio-injection=enabled. Ini berarti Anda telah berhasil mengendalikan ruang lingkup injeksi proxy sidecar OPA.