Konsep Otorisasi Biner

Halaman ini berisi informasi tentang konsep yang terkait dengan Otorisasi Biner.

Kebijakan

Kebijakan Otorisasi Biner, yang juga dikenal sebagai kebijakan singleton project, adalah sekumpulan aturan yang mengatur deployment image container.

Validasi berkelanjutan (CV), menggunakan jenis kebijakan yang berbeda, yang disebut kebijakan platform.

Kebijakan memiliki bagian berikut:

Anda dapat mengonfigurasi kebijakan menggunakan salah satu opsi berikut:

  • Google Cloud console
  • Perintah gcloud

Saat menggunakan perintah gcloud, Anda mengekspor dan mengubah definisi kebijakan dalam format YAML sebelum mengimpornya kembali ke project Anda. Format YAML mencerminkan struktur internal kebijakan dalam penyimpanan Otorisasi Biner. Untuk mengetahui informasi selengkapnya tentang format ini, lihat Referensi YAML Kebijakan.

Setiap project Google Cloud dapat memiliki tepat satu kebijakan. Anda harus mengonfigurasi kebijakan di project tempat Anda menjalankan platform deployment. Dalam konfigurasi satu project, kebijakan dan semua resource subordinat—pengesah dan pengesahan—berada di project yang sama. Untuk menerapkan pemisahan tugas, Anda dapat menggunakan konfigurasi multi-project. Dalam konfigurasi ini, platform deployment dapat berjalan dalam satu project, pengesah dapat berada dalam project lain, dan pengesahan dapat berada dalam project lain lagi.

Untuk menyiapkan dan menggunakan Binary Authorization di platform yang didukung, lihat Menyiapkan menurut platform.

Lihat contoh penyiapan multi-project untuk GKE.

Aturan

Saat mengonfigurasi kebijakan, Anda menentukan aturannya. Aturan menentukan batasan yang harus dipenuhi gambar sebelum dapat di-deploy. Kebijakan memiliki satu aturan default dan dapat memiliki aturan spesifik, bergantung pada platform. Untuk mengetahui informasi selengkapnya, lihat Jenis aturan yang didukung menurut platform.

Setiap aturan dapat dikonfigurasi dengan mode evaluasi dan mode penerapan, misalnya, aturan dapat mewajibkan image memiliki pengesahan yang ditandatangani sebelum dapat di-deploy.

Aturan default

Setiap kebijakan memiliki aturan default. Aturan ini berlaku untuk setiap permintaan deployment yang tidak cocok dengan aturan tertentu. Dalam file YAML kebijakan, aturan default ditentukan di node defaultAdmissionRule.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi aturan default, lihat Mengonfigurasi kebijakan.

Aturan spesifik

Satu atau beberapa aturan spesifik dapat ditambahkan ke kebijakan. Jenis aturan ini berlaku untuk image yang akan di-deploy ke cluster, akun layanan, atau identitas tertentu. Dukungan untuk aturan tertentu bervariasi menurut platform. Untuk mengetahui informasi selengkapnya, lihat Jenis aturan yang didukung menurut platform.

Dalam file YAML kebijakan, setiap aturan khusus cluster ditentukan dalam node clusterAdmissionRule.

Jenis aturan yang didukung menurut platform

Tabel berikut menunjukkan jenis aturan yang didukung untuk setiap platform deployment.

Platform Aturan default Aturan spesifik
GKE Didukung Cluster
Namespace Kubernetes
Akun Layanan Kubernetes
Cloud Run Didukung Tidak didukung
Cluster terpasang GKE Didukung Cluster
Namespace Kubernetes
Akun Layanan Kubernetes
GKE di AWS Didukung Cluster
Namespace Kubernetes
Akun Layanan Kubernetes
Google Distributed Cloud Didukung Cluster
Namespace Kubernetes
Akun Layanan Kubernetes
Google Distributed Cloud Didukung Cluster
Namespace Kubernetes
Akun Layanan Kubernetes
Mesh Layanan Cloud Didukung Identitas Layanan Cloud Service Mesh

Mode evaluasi

Setiap aturan memiliki mode evaluasi yang menentukan jenis batasan yang diterapkan Otorisasi Biner untuk aturan tersebut. Mode evaluasi untuk aturan ditentukan menggunakan properti evaluationMode dalam file YAML kebijakan.

Ada tiga mode evaluasi:

  • Izinkan semua gambar: mengizinkan semua gambar di-deploy.
  • Jangan izinkan semua gambar: tidak mengizinkan semua gambar di-deploy.
  • Mewajibkan pengesahan: mewajibkan penanda tangan menandatangani secara digital ringkasan image dan membuat pengesahan sebelum deployment. Pada waktu deployment, penegak Binary Authorization menggunakan pengesah untuk memverifikasi tanda tangan dalam pengesahan sebelum men-deploy image terkait.

Mode penerapan

Setiap aturan juga memiliki mode penerapan, yang menentukan tindakan yang dilakukan oleh GKE saat image tidak sesuai dengan aturan. Aturan dapat memiliki mode penerapan berikut:

  • Blokir dan Audit Log: Memblokir deployment gambar yang tidak sesuai dengan aturan dan menulis pesan ke log audit untuk menunjukkan alasan gambar tidak di-deploy.

  • Uji Coba: Hanya Log Audit: Mode uji coba adalah mode penerapan dalam kebijakan yang memungkinkan image yang tidak sesuai di-deploy, tetapi menulis detail tentang deployment ke Cloud Audit Logs. Mode uji coba memungkinkan Anda menguji kebijakan, misalnya di lingkungan produksi, sebelum penegakan benar-benar berlaku.

Sebagian besar aturan produksi menggunakan mode penerapan Blokir dan Log Audit. Uji Coba: Hanya Log Audit terutama digunakan untuk menguji kebijakan di lingkungan Anda sebelum diterapkan.

Mode penerapan untuk aturan ditentukan menggunakan properti enforcementMode dalam file YAML kebijakan.

Lihat Melihat log audit (GKE, Google Distributed Cloud, Cloud Service Mesh) atau Melihat log audit (Cloud Run) untuk mengetahui informasi selengkapnya tentang pesan yang ditulis ke Cloud Audit Logs.

Validasi Berkelanjutan

Validasi Berkelanjutan (CV) adalah fitur Otorisasi Biner yang secara berkala memeriksa image yang terkait dengan Pod yang sedang berjalan untuk memastikan kesesuaian kebijakan yang berkelanjutan.

Pelajari CV lebih lanjut.

Mengecualikan gambar

Gambar yang dikecualikan adalah gambar yang dikecualikan dari aturan kebijakan. Otorisasi Biner selalu mengizinkan image yang dikecualikan untuk di-deploy. Setiap project memiliki daftar yang diizinkan untuk image yang dikecualikan yang ditentukan oleh jalur registri. Gambar di jalur gcr.io/google_containers/*, k8s.gcr.io/**, dan jalur tambahan dikecualikan secara default, karena berisi resource yang diperlukan agar GKE dapat memulai cluster dengan berhasil saat kebijakan default aktif.

Untuk menambahkan gambar yang dikecualikan ke daftar yang diizinkan, tambahkan berikut ke file kebijakan:

admissionWhitelistPatterns:
  - namePattern: EXEMPT_IMAGE_PATH

Ganti EXEMPT_IMAGE_PATH dengan jalur ke gambar yang akan dikecualikan. Untuk mengecualikan gambar tambahan, tambahkan entri - namePattern tambahan. Pelajari admissionWhitelistPatterns lebih lanjut.

Pola daftar yang diizinkan

Untuk memasukkan semua image yang lokasi registrinya cocok dengan jalur yang ditentukan ke dalam daftar yang diizinkan:

gcr.io/example-project/*

Untuk memasukkan semua gambar yang lokasi registrinya adalah subdirektori dari jalur yang ditentukan (mis. gcr.io/example-project/my-directory/helloworld) ke dalam daftar yang diizinkan:

gcr.io/example-project/**

Untuk memasukkan gambar tertentu ke dalam daftar yang diizinkan:

gcr.io/example-project/helloworld

Untuk memasukkan versi image tertentu ke daftar yang diizinkan menurut tag:

gcr.io/example-project/helloworld:latest
gcr.io/example-project/helloworld:my-tag

Untuk memasukkan semua versi dan tag gambar ke daftar yang diizinkan:

gcr.io/example-project/helloworld@*

Untuk memasukkan versi tertentu dari image ke daftar yang diizinkan berdasarkan ringkasannya:

gcr.io/example-project/helloworld@sha256:77b0b75136b9bd0fd36fb50f4c92ae0dbdbbe164ab67885e736fa4374e0cbb8c

Pelajari lebih lanjut cara menggunakan ringkasan image container.

Pelajari cara mengelola gambar yang dikecualikan di konsolGoogle Cloud , menggunakan alat command line, atau menggunakan REST API.

Image sistem yang dikelola Google

Percayai semua image sistem yang dikelola Google menyebabkan Otorisasi Biner mengecualikan daftar image sistem yang dikelola Google dari evaluasi kebijakan lebih lanjut. Jika Anda mengaktifkan setelan ini, gambar yang diperlukan oleh GKE tidak akan diblokir oleh penerapan kebijakan. Kebijakan sistem dievaluasi sebelum dan selain evaluasi kebijakan pengguna.

Anda dapat mengaktifkan atau menonaktifkan setelan ini menggunakan properti globalPolicyEvaluationMode dalam file YAML kebijakan. Anda dapat melihat isi kebijakan sistem menggunakan perintah berikut:

gcloud alpha container binauthz policy export-system-policy

Pengesahan

Pengesahan adalah dokumen digital yang mengesahkan gambar. Selama deployment, Otorisasi Biner memverifikasi pengesahan sebelum mengizinkan image di-deploy.

Proses pembuatan pengesahan terkadang disebut menandatangani image. Pengesahan dibuat setelah image dibangun. Setiap gambar tersebut memiliki ringkasan yang unik secara global. Penanda tangan menandatangani ringkasan gambar menggunakan kunci pribadi dari pasangan kunci dan menggunakan tanda tangan untuk membuat pengesahan. Pada waktu deployment, penguat Otorisasi Biner menggunakan kunci publik attestor untuk memverifikasi tanda tangan dalam pengesahan. Biasanya, satu pengesah sesuai dengan tepat satu penanda tangan.

Pengesahan menandakan bahwa gambar terkait dibuat dengan berhasil menjalankan proses tertentu yang diperlukan. Misalnya, jika penandatangan adalah perwakilan dari fungsi penjaminan kualitas (QA) Anda, pengesahan dapat menunjukkan bahwa image telah lulus semua pengujian fungsional end-to-end yang diperlukan di lingkungan staging.

Untuk mengaktifkan pengesahan di Otorisasi Biner, evaluationMode kebijakan Anda harus ditetapkan ke REQUIRE_ATTESTATION.

Pelajari cara membuat dan menggunakan pengesah dan pengesahan.

Penanda Tangan

Penanda tangan adalah orang atau proses otomatis yang membuat pengesahan dengan menandatangani deskriptor gambar unik menggunakan kunci pribadi. Pengesahan diverifikasi pada waktu deployment oleh kunci publik yang sesuai yang disimpan di pengesah sebelum image terkait di-deploy.

Pelajari cara membuat dan menggunakan pengesah dan pengesahan.

Attestor

Pengesah adalah Google Cloud resource yang digunakan Otorisasi Biner untuk memverifikasi pengesahan pada waktu deployment image. Pengesah berisi kunci publik yang sesuai dengan kunci pribadi yang digunakan oleh penanda tangan untuk menandatangani ringkasan image dan membuat pengesahan. Enforcer Binary Authorization menggunakan pengesah pada waktu deployment untuk membatasi gambar yang diizinkan di-deploy hanya pada gambar yang memiliki pengesahan yang menyertainya dan dapat diverifikasi yang dibuat sebelum deployment.

Pengesah sering kali dikelola oleh personel operasi keamanan yang juga mengelola pasangan kunci publik dan pribadi, sedangkan penanda tangan biasanya adalah engineer software atau personel QA atau kepatuhan DevOps yang bertanggung jawab untuk membuat image yang dapat di-deploy, menandatanganinya dengan kunci pribadi, dan membuat pengesahan sebelum mencoba men-deploy-nya.

Attestor memiliki:

Saat Anda menyiapkan kebijakan yang berisi aturan Wajibkan Pengesahan, Anda harus menambahkan pengesah untuk setiap orang atau proses yang diwajibkan untuk memverifikasi bahwa gambar siap di-deploy. Anda dapat menambahkan pengesah menggunakan konsol Google Cloud , antarmuka gcloud, atau Binary Authorization REST API.

Pelajari cara membuat dan menggunakan pengesah dan pengesahan.

Kunci kriptografi

Otorisasi Biner menggunakan tanda tangan digital untuk memverifikasi image pada waktu deployment saat kebijakan berisi aturan Wajibkan Pengesahan.

Pasangan kunci akan dibuat. Kunci pribadi digunakan oleh penanda tangan untuk menandatangani deskriptor gambar. Tindakan ini akan membuat pengesahan.

Kemudian, pengesah dibuat dan disimpan dalam kebijakan. Kunci publik yang sesuai dengan kunci pribadi yang digunakan untuk penandatanganan diupload dan dilampirkan ke pengesah.

Saat upaya dilakukan untuk men-deploy image, Otorisasi Biner menggunakan pengesah dalam kebijakan untuk memverifikasi pengesahan image. Jika pengesahan dapat diverifikasi, image akan di-deploy.

Otorisasi Biner mendukung dua jenis kunci:

  • Infrastruktur Kunci Publik (X.509) (PKIX)
  • PGP

Kunci PKIX dapat disimpan secara lokal, eksternal, atau di Cloud Key Management Service.

Buat kunci kriptografis dan pengesah.

Catatan Artifact Analysis

Otorisasi Biner menggunakan Artifact Analysis untuk menyimpan metadata tepercaya yang digunakan dalam proses otorisasi. Untuk setiap pengesah yang Anda buat, Anda harus membuat satu catatan Analisis Artefak. Setiap pengesahan disimpan sebagai kemunculan catatan ini.

Saat mengevaluasi aturan yang mewajibkan pengesah telah memverifikasi image, Otorisasi Biner akan memeriksa penyimpanan Artifact Analysis untuk melihat apakah pengesahan yang diperlukan ada.