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.
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:
- Catatan Artifact Analysis yang sesuai
- Satu atau beberapa kunci publik kriptografis yang sesuai dengan kunci pribadi yang digunakan penanda tangan untuk membuat pengesahan.
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.