Halaman ini memberikan petunjuk tentang cara menggunakan breakglass dengan Otorisasi Biner.
Sebelum memulai
Panduan ini mengasumsikan bahwa Anda telah menyiapkan Otorisasi Biner.
Ringkasan
Anda menggunakan breakglass untuk men-deploy image container yang diblokir oleh Otorisasi Biner.
Akses darurat menyediakan jalan keluar darurat yang memungkinkan Anda mengganti penerapan kebijakan Otorisasi Biner untuk mengizinkan image di-deploy, bahkan image yang tidak akan diizinkan oleh kebijakan.
Fitur ini diterapkan sesuai dengan rekomendasi dalam spesifikasi pengontrol penerimaan Kubernetes.
Saat Anda menggunakan breakglass untuk men-deploy image, peristiwa breakglass akan otomatis dicatat ke Cloud Audit Logs, terlepas dari apakah deployment tersebut memenuhi atau melanggar kebijakan. Di Cloud Audit Logs, Anda dapat melakukan audit secara manual atau memicu pemberitahuan atau peristiwa hilir lainnya secara otomatis.
Untuk mengaktifkan breakglass, Anda menambahkan kolom label
ke spesifikasi Pod dengan tanda kebijakan
break-glass
.
Mendemonstrasikan peristiwa breakglass
Bagian ini menunjukkan cara menggunakan breakglass untuk men-deploy image, termasuk image yang melanggar kebijakan Otorisasi Biner.
Perbarui kebijakan Otorisasi Biner untuk menolak semua permintaan deployment
Untuk memperbarui kebijakan agar tidak mengizinkan semua gambar di-deploy, lakukan langkah-langkah berikut:
Google Cloud console
Buka halaman Binary Authorization di konsol Google Cloud .
Klik Edit kebijakan.
Di halaman Edit kebijakan, di Aturan default project, catat mode evaluasi asli, lalu klik Jangan izinkan semua gambar.
Klik Save policy.
gcloud
Untuk menyimpan kebijakan yang ada di project saat ini, jalankan perintah berikut:
gcloud container binauthz policy export > SAVE_POLICY_YAML
Ganti SAVE_POLICY_YAML dengan jalur file ekspor—misalnya,
/tmp/save_policy.yaml
.Buat file kebijakan:
cat > TEST_POLICY_YAML << EOM admissionWhitelistPatterns: defaultAdmissionRule: enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG evaluationMode: ALWAYS_DENY globalPolicyEvaluationMode: DISABLE EOM
Ganti TEST_POLICY_YAML dengan jalur file—misalnya,
/tmp/policy.yaml
.Impor kebijakan:
gcloud container binauthz policy import TEST_POLICY_YAML
Ganti TEST_POLICY_YAML dengan jalur file—misalnya,
/tmp/policy.yaml
.
Secara default, semua gambar kini diblokir agar tidak di-deploy.
Mencoba men-deploy image
Di bagian ini, Anda akan mencoba men-deploy image. Aturan default kebijakan dikonfigurasi untuk melarang semua gambar di-deploy, sehingga permintaan deployment gagal.
Buat file konfigurasi dalam format YAML. File ini berisi informasi dasar yang diperlukan untuk membuat pod:
cat > /tmp/create_pod.yaml << EOM apiVersion: v1 kind: Pod metadata: name: breakglass-pod spec: containers: - name: container-name image: us-docker.pkg.dev/google-samples/containers/gke/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4 EOM
Buat Pod menggunakan
kubectl
:kubectl create -f /tmp/create_pod.yaml
Anda melihat error yang menunjukkan bahwa gambar diblokir oleh kebijakan Anda. Error terlihat seperti berikut:
Error from server (Forbidden): error when creating "/tmp/create_pod.yaml": pods "breakglass-pod" is forbidden: image policy webhook backend denied one or more images: Image gcr.io/google-samples/hello-app denied by Binary Authorization default admission rule. Denied by always_deny admission rule`.
Aktifkan breakglass dan deploy lagi
Di bagian ini, Anda akan mengaktifkan breakglass. Meskipun breakglass khusus untuk
Otorisasi Biner, Anda harus memperbarui kolom label
pada spesifikasi Pod untuk
mengaktifkannya.
Untuk mengaktifkan breakglass, jalankan perintah berikut:
Buat file konfigurasi dalam format YAML.
Perintah berikut akan membuat file yang berisi label
break-glass
dan informasi lain yang diperlukan untuk membuat pod:cat > /tmp/create_pod.yaml << EOM apiVersion: v1 kind: Pod metadata: name: pod-name labels: image-policy.k8s.io/break-glass: "true" spec: containers: - name: container-name image: us-docker.pkg.dev/google-samples/containers/gke/hello-app@sha256:c62ead5b8c15c231f9e786250b07909daf6c266d0fcddd93fea882eb722c3be4 EOM
Buat pod menggunakan
kubectl
:kubectl create -f /tmp/create_pod.yaml
Perhatikan output:
pod/pod-name created
Temukan entri log akses darurat di Cloud Audit Logs
Lihat peristiwa akses darurat di Cloud Audit Logs.
PodSpec lama yang menentukan annotations: alpha.image-policy.k8s.io/break-glass
juga memicu breakglass dan menghasilkan entri log. Penggunaan anotasi tersebut tidak lagi direkomendasikan, tetapi masih didukung untuk mempertahankan kompatibilitas mundur.
Pembersihan
Untuk menghapus Pod dan menonaktifkan breakglass, lakukan hal berikut:
Hapus Pod:
kubectl delete -f /tmp/create_pod.yaml
Verifikasi bahwa Anda menerima output seperti
pod <var>pod-name</var> deleted
.Hapus blok
label
dari spesifikasi Pod Anda.Reset kebijakan Anda:
Google Cloud console
Buka halaman Binary Authorization di konsol Google Cloud .
Klik Edit kebijakan.
Di halaman Edit kebijakan, di Aturan default project, reset mode evaluasi ke setelan sebelumnya.
Klik Save policy.
gcloud
Impor ulang kebijakan asli Anda.
gcloud container binauthz policy import SAVE_POLICY_YAML
Ganti SAVE_POLICY_YAML dengan jalur ke file yang Anda buat sebelumnya dalam panduan ini.
Kebijakan Anda direset.
Langkah berikutnya
- Lihat peristiwa akses darurat di Cloud Audit Logs.