Gatekeeper Policy Manager adalah UI Web Read-only sederhana untuk melihat status kebijakan Gatekeeper OPA di kluster Kubernetes.
Cluster target Kubernetes dapat sama di mana GPM berjalan atau beberapa cluster jarak jauh lainnya menggunakan file kubeconfig . Anda juga dapat menjalankan GPM secara lokal di mesin klien dan terhubung ke cluster jarak jauh.
GPM dapat menampilkan semua templat kendala yang ditentukan dengan kode REGO mereka, semua CRD konfigurasi penjaga gerbang, dan semua kendala dengan status saat ini, pelanggaran, tindakan penegakan hukum, mencocokkan definisi, dll.
Anda dapat melihat beberapa tangkapan layar di bawah ini.
Anda akan memerlukan penjaga gerbang OPA yang berjalan di cluster Anda dan setidaknya beberapa templat kendala dan kendala yang didefinisikan untuk memanfaatkan alat ini.
ℹ Anda dapat dengan mudah menggunakan penjaga gerbang ke cluster Anda menggunakan modul Kubernetes Fury OPA (juga open source).
Untuk menggunakan GatEkeeper Policy Manager ke cluster Anda, terapkan file kustomization yang disediakan menjalankan perintah berikut:
kubectl apply -k . Secara default, ini akan membuat penyebaran maupun layanan baik dengan name gatekeper-policy-manager di namespace gatekeeper-system . Kami mengundang Anda untuk melihat ke dalam file kustomization.yaml untuk melakukan konfigurasi lebih lanjut.
Aplikasi ini dapat dijalankan sebagai pod di kluster Kubernetes atau secara lokal dengan file
kubeconfig. Ini akan mencoba yang terbaik untuk secara otodeksi konfigurasi yang benar.
Setelah Anda menggunakan aplikasi, jika Anda belum mengatur masuknya, Anda dapat mengakses Web-UI menggunakan port-forward:
kubectl -n gatekeeper-system port-forward svc/gatekeeper-policy-manager 8080:80Kemudian akses dengan browser Anda di: http://127.0.0.1:8080
Dimungkinkan juga untuk menggunakan GPM menggunakan grafik helm yang disediakan.
Pertama-tama buat file nilai, misalnya my-values.yaml , dengan nilai kustom Anda untuk rilis. Lihat ReadMe Bagan dan Nilai Default.YAML untuk informasi lebih lanjut.
Lalu, jalankan:
helm repo add gpm https://sighupio.github.io/gatekeeper-policy-manager
helm upgrade --install --namespace gatekeeper-system --set image.tag=v1.0.13 --values my-values.yaml gatekeeper-policy-manager gpm/gatekeeper-policy-managerJangan lupa untuk mengganti
my-values.yamldengan jalur ke file nilai Anda.
GPM juga dapat dijalankan secara lokal menggunakan Docker dan kubeconfig , dengan asumsi bahwa file kubeconfig yang ingin Anda gunakan terletak di ~/.kube/config perintah untuk menjalankan GPM secara lokal adalah:
docker run -v ~ /.kube/config:/home/gpm/.kube/config -p 8080:8080 quay.io/sighup/gatekeeper-policy-manager:v1.0.13Kemudian akses dengan browser Anda di: http://127.0.0.1:8080
Anda juga dapat menjalankan aplikasi Flask secara langsung, lihat bagian pengembangan untuk informasi lebih lanjut.
GPM adalah aplikasi tanpa kewarganegaraan, tetapi dapat dikonfigurasi menggunakan variabel lingkungan. Konfigurasi yang mungkin adalah:
| Nama Variabel Lingkungan | Keterangan | Bawaan |
|---|---|---|
GPM_SECRET_KEY | Kunci rahasia yang digunakan untuk menghasilkan token. Ubah nilai ini dalam produksi . | g8k1p3rp0l1c7m4n4g3r |
KUBECONFIG | Jalur ke file KubeConfig, jika disediakan saat berjalan di dalam cluster file konfigurasi ini akan digunakan sebagai ganti API cluster. | |
GPM_LOG_LEVEL | Level Log (lihat Python Logging Documents untuk level yang tersedia) | INFO |
GPM_AUTH_ENABLED | Aktifkan Opsi Otentikasi Saat Ini: "Anonim", "OIDC" | Anonim |
GPM_PREFERRED_URL_SCHEME | Skema URL yang akan digunakan saat menghasilkan tautan. | http |
GPM_OIDC_REDIRECT_DOMAIN | Domain tempat GPM sedang berjalan. Di sinilah klien akan diarahkan setelah mengautentikasi | |
GPM_OIDC_CLIENT_ID | ID klien yang digunakan untuk mengotentikasi terhadap penyedia OIDC | |
GPM_OIDC_CLIENT_SECRET | Rahasia klien yang digunakan untuk mengotentikasi terhadap penyedia OIDC (opsional) | |
GPM_OIDC_ISSUER | Nama host penerbit OIDC (diperlukan jika OIDC Auth diaktifkan) | |
GPM_OIDC_AUTHORIZATION_ENDPOINT | Titik akhir otorisasi OIDC (opsional, pengaturan parameter ini menonaktifkan penemuan konfigurasi penyedia lainnya, atur semua nilai lain juga jika mengatur yang satu ini) | |
GPM_OIDC_JWKS_URI | OIDC JWKS URI (Opsional, Pengaturan Parameter ini menonaktifkan penemuan konfigurasi penyedia lainnya, atur semua nilai lainnya juga jika mengatur yang satu ini) | |
GPM_OIDC_TOKEN_ENDPOINT | OIDC Token Endpoint (Opsional, Pengaturan Parameter ini menonaktifkan penemuan konfigurasi penyedia lainnya, atur semua nilai lain juga jika mengatur yang satu ini) | |
GPM_OIDC_INTROSPECTION_ENDPOINT | Titik akhir introspeksi OIDC (opsional, pengaturan parameter ini menonaktifkan penemuan sisa konfigurasi penyedia, atur semua nilai lain juga jika mengatur yang satu ini) | |
GPM_OIDC_USERINFO_ENDPOINT | OIDC UserInfo Endpoint (Opsional, Pengaturan Parameter ini menonaktifkan penemuan konfigurasi penyedia lainnya, atur semua nilai lain juga jika mengatur yang ini) | |
GPM_OIDC_END_SESSION_ENDPOINT | Titik akhir sesi akhir oidc (opsional, pengaturan parameter ini menonaktifkan penemuan konfigurasi penyedia lainnya, atur semua nilai lainnya juga jika mengatur yang satu ini) |
️ Harap perhatikan bahwa otentikasi OIDC ada dalam keadaan beta. Telah diuji untuk bekerja dengan Keycloak sebagai penyedia.Variabel lingkungan ini sudah disediakan dan siap diatur dalam file
manifests/enable-oidc.yaml.
Karena v1.0.13 GPM memiliki dukungan multi-cluster dasar saat menggunakan kubeconfig dengan lebih dari satu konteks. GPM akan membiarkan Anda memilih konteks langsung dari UI.
Jika Anda ingin menjalankan GPM di sebuah cluster tetapi dengan dukungan multi-cluster, semudah memasang file kubeconfig di pod GPM dengan konfigurasi akses cluster dan mengatur variabel lingkungan KUBECONFIG dengan jalur ke file kubeconfig yang dipasang. Atau Anda dapat memasangnya di /home/gpm/.kube/config dan GPM akan mendeteksi secara otomatis.
Harap diingat bahwa pengguna untuk cluster harus memiliki izin yang tepat. Anda dapat menggunakan file
manifests/rabc.yamlsebagai referensi.Perhatikan juga bahwa cluster tempat GPM berjalan harus dapat mencapai cluster lainnya.
Saat Anda menjalankan GPM secara lokal, Anda sudah menggunakan file kubeconfig untuk terhubung ke cluster, sekarang Anda akan melihat semua konteks yang Anda tentukan dan Anda dapat beralih di antara mereka dengan mudah dari UI.
Jika Anda ingin menggunakan KubeConfig dengan otentikasi IAM, Anda harus menyesuaikan gambar kontainer GPM karena otentikasi IAM menggunakan binari AWS eksternal yang tidak disertakan secara default pada gambar.
Anda dapat menyesuaikan gambar kontainer dengan Dockerfile seperti yang berikut:
FROM curlimages/curl:7.81.0 as downloader
RUN curl https://github.com/kubernetes-sigs/aws-iam-authenticator/releases/download/v0.5.5/aws-iam-authenticator_0.5.5_linux_amd64 --output /tmp/aws-iam-authenticator
RUN chmod +x /tmp/aws-iam-authenticator
FROM quay.io/sighup/gatekeeper-policy-manager:v1.0.13
COPY --from=downloader --chown=root:root /tmp/aws-iam-authenticator /usr/local/bin/ Anda mungkin perlu menambahkan juga aws CLI, Anda dapat menggunakan pendekatan yang sama seperti sebelumnya.
Pastikan bahwa kubeconfig Anda telah apiVersion sebagai client.authentication.k8s.io/v1beta1
Anda dapat membaca lebih lanjut dalam masalah ini.








GPM ditulis dalam python menggunakan kerangka flask untuk backend dan bereaksi dengan elastis UI dan tema kemarahan untuk frontend.
Untuk mengembangkan GPM, Anda harus membuat lingkungan virtual Python 3, menginstal semua dependensi yang ditentukan dalam requirements.txt yang disediakan.txt, membangun Frontend React dan Anda baik untuk mulai meretas.
Perintah berikut harus membuat Anda bangun dan berjalan:
# Build frontend and copy over to static folder
$ pushd app/web-client
$ yarn install && yarn build
$ cp -r build/ * ../static-content/
$ popd
# Create a virtualenv
$ python3 -m venv env
# Activate it
$ source ./env/bin/activate
# Install all the dependencies
$ pip install -r app/requirements.txt
# Run the development server
$ FLASK_APP=app/app.py flask runAkses ke kluster Kubernetes dengan penjaga gerbang OPA yang digunakan disarankan untuk men -debug aplikasi.
Anda akan memerlukan penyedia OIDC untuk menguji otentikasi OIDC. Anda dapat menggunakan modul Fury-Kubernetes-Keycloak kami.
Berikut ini adalah daftar harapan fitur yang ingin kami tambahkan ke GPM (tanpa urutan tertentu):
ConstraintTemplate Tolong, beri tahu kami jika Anda menggunakan GPM dan fitur apa yang ingin Anda miliki dengan membuat masalah di sini di GitHub ??