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 serangkaian 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:

  • Konsol Google Cloud
  • Perintah gcloud

Saat menggunakan perintah gcloud, Anda mengekspor dan mengubah definisi kebijakan dalam format YAML sebelum mengimpornya kembali ke project. Format YAML mencerminkan struktur internal kebijakan dalam penyimpanan Otorisasi Biner. Untuk 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—penanda tangan dan penandatanganan—berada di project yang sama. Untuk menetapkan pemisahan tugas, Anda dapat menggunakan konfigurasi multi-project. Dalam konfigurasi ini, platform deployment dapat berjalan di satu project, pengautentikasi dapat berada di project lain, dan pengesahan dapat berada di project lain.

Untuk menyiapkan dan menggunakan Otorisasi Biner 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 image sebelum dapat di-deploy. Kebijakan memiliki satu aturan default dan dapat memiliki aturan tertentu, bergantung pada platform. Untuk 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 pernyataan 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 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 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 on 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.
  • Disallow all images: melarang semua gambar di-deploy.
  • Wajibkan pengesahan: mewajibkan penanda tangan untuk menandatangani ringkasan gambar secara digital dan membuat pengesahan sebelum deployment. Pada waktu deployment, penegak Binary Authorization menggunakan penanda tangan untuk memverifikasi tanda tangan dalam pengesahan sebelum men-deploy image terkait.

Mode penerapan

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

  • Block and 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: Khusus Log Audit: Mode uji coba adalah mode penerapan dalam kebijakan yang memungkinkan deployment image yang tidak sesuai, tetapi menulis detail tentang deployment ke Log Audit Cloud. Mode uji coba memungkinkan Anda menguji kebijakan, misalnya di lingkungan produksi, sebelum penerapannya benar-benar diterapkan.

Sebagian besar aturan produksi menggunakan mode penerapan Block and Audit Log. Pengujian Coba: Khusus Log Audit terutama digunakan untuk menguji kebijakan di lingkungan Anda sebelum kebijakan tersebut 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 berjalan untuk memastikan kesesuaian kebijakan yang berkelanjutan.

Pelajari CV lebih lanjut.

Gambar yang dikecualikan

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 registry. Image 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 kebijakan default yang aktif.

Untuk menambahkan gambar yang dikecualikan ke daftar yang diizinkan, tambahkan hal 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 mengizinkan semua image yang lokasi registry-nya cocok dengan jalur yang ditentukan:

gcr.io/example-project/*

Untuk mengizinkan semua gambar yang lokasi registry-nya adalah subdirektori dari jalur yang ditentukan (misalnya, gcr.io/example-project/my-directory/helloworld):

gcr.io/example-project/**

Untuk mengizinkan gambar tertentu:

gcr.io/example-project/helloworld

Untuk mengizinkan versi image tertentu berdasarkan tag:

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

Untuk mengizinkan semua versi/tag gambar:

gcr.io/example-project/helloworld:*

Untuk mengizinkan versi image tertentu berdasarkan ringkasannya:

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

Pelajari lebih lanjut cara menggunakan ringkasan image container.

Pelajari cara mengelola image yang dikecualikan di konsol Google 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, image yang diperlukan oleh GKE tidak akan diblokir oleh penerapan kebijakan. Kebijakan sistem dievaluasi sebelum dan sebagai tambahan terhadap evaluasi kebijakan pengguna.

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

gcloud alpha container binauthz policy export-system-policy

Pengesahan

Pengesahan adalah dokumen digital yang memberikan sertifikasi pada gambar. Selama deployment, Binary Authorization memverifikasi pengesahan sebelum mengizinkan deployment image.

Proses pembuatan pengesahan terkadang disebut menandatangani image. Pengesahan dibuat setelah image di-build. 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, penegak Otorisasi Biner menggunakan kunci publik attestor untuk memverifikasi tanda tangan dalam pengesahan. Biasanya, satu pengautentikasi sesuai dengan tepat satu penanda tangan.

Pengesahan menandakan bahwa image terkait dibuat dengan berhasil menjalankan proses tertentu yang diperlukan. Misalnya, jika penanda tangan adalah perwakilan fungsi jaminan kualitas (QA) Anda, pengesahan mungkin 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 ditetapkan ke REQUIRE_ATTESTATION.

Pelajari cara membuat dan menggunakan pengautentikasi dan pengesahan.

Penanda Tangan

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

Pelajari cara membuat dan menggunakan pengautentikasi dan pengesahan.

Attestor

Pemberi pengesahan adalah resource Google Cloud 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. Penegakan Otorisasi Biner menggunakan pengautentikasi pada waktu deployment untuk membatasi image yang diizinkan untuk di-deploy ke image dengan pengesahan yang 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 QA DevOps atau personel kepatuhan 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 menyiapkan kebijakan yang berisi aturan Require Attestations, Anda harus menambahkan pengautentikasi untuk setiap orang atau proses yang diwajibkan untuk memverifikasi bahwa image siap di-deploy. Anda dapat menambahkan pengautentikasi menggunakan konsol Google Cloud, antarmuka gcloud, atau Binary Authorization REST API.

Pelajari cara membuat dan menggunakan pengautentikasi dan pengesahan.

Kunci kriptografi

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

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

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

Saat upaya dilakukan untuk men-deploy image, Otorisasi Biner menggunakan pengautentikasi 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 pengautentikasi yang Anda buat, Anda harus membuat satu catatan Analisis Artefak. Setiap pernyataan autentikasi disimpan sebagai kemunculan catatan ini.

Saat mengevaluasi aturan yang mewajibkan attestor telah memverifikasi image, Otorisasi Biner akan memeriksa penyimpanan Analisis Artefak untuk melihat apakah pengesahan yang diperlukan ada.