Konsep Otorisasi Biner

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

Kebijakan

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

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

Kebijakan memiliki beberapa 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 Anda. Format YAML mencerminkan struktur internal kebijakan dalam penyimpanan Otorisasi Biner. Untuk mengetahui informasi lebih lanjut tentang format ini, baca 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 project tunggal, kebijakan dan semua resource subordinat—attestor dan attestations—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, attestor dapat berada di project lain, dan pengesahan dapat berada di project lain.

Untuk menyiapkan dan menggunakan Otorisasi Biner pada platform yang didukung, lihat Menyiapkan berdasarkan 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. Suatu kebijakan memiliki satu aturan default dan dapat memiliki aturan spesifik, bergantung pada platformnya. 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 dalam node defaultAdmissionRule.

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

Aturan spesifik

Satu atau beberapa aturan khusus 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
Kubernetes Namespaces
Akun Layanan Kubernetes
Cloud Run Didukung Tidak didukung
Cluster GKE terpasang Didukung Cluster
Kubernetes Namespaces
Akun Layanan Kubernetes
GKE on AWS Didukung Cluster
Kubernetes Namespaces
Akun Layanan Kubernetes
GKE on Bare Metal Didukung Cluster
Kubernetes Namespaces
Akun Layanan Kubernetes
GKE on VMware Didukung Cluster
Kubernetes Namespaces
Akun Layanan Kubernetes
Anthos Service Mesh Didukung Identitas Layanan Anthos Service Mesh

Mode evaluasi

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

Ada tiga mode evaluasi:

  • Izinkan semua image: mengizinkan semua image di-deploy.
  • Larang semua image: tidak mengizinkan semua image di-deploy.
  • Wajibkan pengesahan: mewajibkan penandatangan untuk menandatangani ringkasan gambar secara digital dan membuat pengesahan sebelum deployment. Pada waktu deployment, pemberlakuan Otorisasi Biner menggunakan attestor untuk memverifikasi tanda tangan dalam pengesahan sebelum men-deploy image terkait.

Mode penerapan

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

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

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

Sebagian besar aturan produksi menggunakan mode penerapan Blokir dan Log Audit. Dry Run: Hanya Log Audit terutama digunakan untuk menguji kebijakan di lingkungan Anda sebelum kebijakan tersebut berlaku.

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

Baca artikel Melihat log audit (GKE, cluster GKE, Anthos Service Mesh) atau Melihat log audit (Cloud Run) untuk mengetahui informasi selengkapnya tentang pesan yang ditulis ke Log Audit Cloud.

Validasi Berkelanjutan

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

Pelajari CV lebih lanjut.

Kecualikan gambar

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

Daftar gambar yang dikecualikan ditentukan menggunakan properti admissionWhitelistPatterns dalam file YAML kebijakan.

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 registrynya 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 gambar 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 gambar tertentu melalui ringkasannya:

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

Pelajari lebih lanjut cara menggunakan ringkasan image container.

Pelajari cara mengelola gambar 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 akan menyebabkan Otorisasi Biner mengecualikan daftar image sistem yang dikelola Google dari evaluasi kebijakan lebih lanjut. Jika setelan ini diaktifkan, 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 di 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 menjamin gambar. Selama deployment, Otorisasi Biner memverifikasi pengesahan sebelum mengizinkan image di-deploy.

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

Pengesahan menandakan bahwa image terkait dibuat dengan berhasil mengeksekusi proses tertentu yang diperlukan. Misalnya, jika penanda tangan mewakili fungsi uji mutu (QA), pengesahan mungkin menunjukkan bahwa image telah lulus semua pengujian fungsi menyeluruh yang diperlukan dalam lingkungan staging.

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

Pelajari cara membuat dan menggunakan attestor dan pengesahan.

Penanda Tangan

Penandatangan adalah orang atau proses otomatis yang membuat pengesahan dengan menandatangani deskriptor gambar unik dengan kunci pribadi. Pengesahan ini diverifikasi pada waktu deployment oleh kunci publik terkait yang disimpan di attestor sebelum image terkait di-deploy.

Pelajari cara membuat dan menggunakan attestor dan pengesahan.

Attestor

Attestor adalah resource Google Cloud yang digunakan oleh Otorisasi Biner untuk memverifikasi pengesahan pada waktu deployment image. Attestor berisi kunci publik yang sesuai dengan kunci pribadi yang digunakan oleh penandatangan untuk menandatangani ringkasan image dan membuat pengesahan. Penegak Otorisasi Biner menggunakan attestor pada waktu deployment untuk membatasi image mana yang diizinkan untuk di-deploy ke image yang disertai pengesahan yang dapat diverifikasi dan dibuat sebelum deployment.

Attestor sering dikelola oleh personel operasi keamanan yang juga mengelola pasangan kunci publik dan pribadi, sedangkan penanda tangan biasanya adalah software engineer atau QA DevOps atau personel kepatuhan yang bertanggung jawab untuk menghasilkan 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 Memerlukan Pengesahan, Anda harus menambahkan attestor untuk setiap orang atau proses yang diwajibkan untuk memverifikasi bahwa image siap untuk deployment. Anda dapat menambahkan attestor menggunakan Konsol Google Cloud, antarmuka gcloud, atau Binary Authorization REST API.

Pelajari cara membuat dan menggunakan attestor dan pengesahan.

Kunci kriptografi

Otorisasi Biner menggunakan tanda tangan digital untuk memverifikasi gambar pada waktu deployment jika kebijakan berisi aturan Memerlukan Pengesahan.

Pasangan kunci akan dibuat. Kunci pribadi digunakan oleh penandatangan untuk menandatangani deskriptor image. Tindakan ini akan membuat pengesahan.

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

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

Otorisasi Biner mendukung dua jenis kunci:

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

Membuat kunci kriptografis dan attestor.

Catatan Artifact Analysis

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

Saat Otorisasi Biner mengevaluasi aturan yang mengharuskan attestor untuk memverifikasi gambar, ia akan memeriksa penyimpanan Analisis Artefak untuk melihat apakah pengesahan yang diperlukan tersedia.