Tutorial ini menunjukkan cara mengonfigurasi dan menguji kebijakan Otorisasi Biner yang memerlukan pengesahan. Jenis kebijakan ini mengamankan software supply chain berbasis container Anda dengan menentukan siapa yang dapat men-deploy image container di Google Kubernetes Engine (GKE) dan image container mana yang diizinkan untuk di-deploy oleh GKE.
Pada waktu deployment, Otorisasi Biner menggunakan attestor untuk memverifikasi tanda tangan digital dalam pengesahan. Pengesahan dibuat oleh penandatangan sebagai bagian dari proses build.
Dalam tutorial ini, cluster GKE, pengesahan, dan attestor semuanya berada dalam satu project. Konfigurasi satu project sebagian besar berguna untuk menguji atau bereksperimen dengan layanan. Untuk contoh yang lebih nyata, lihat konfigurasi multi-project.
Langkah-langkah di bawah menjelaskan tugas yang Anda lakukan dari Google Cloud konsol, serta
beberapa tugas yang Anda lakukan menggunakan gcloud perintah. Untuk melakukan langkah-langkah ini
menggunakan gcloud, lihat Memulai menggunakan Google Cloud CLI.
Tujuan
Dalam tutorial ini, Anda akan mempelajari cara:
- Membuat cluster (GKE) dengan Otorisasi Biner diaktifkan
- Membuat attestor yang digunakan penegak Otorisasi Biner untuk memverifikasi tanda tangan pada pengesahan
- Mengonfigurasi kebijakan yang memerlukan pengesahan
- Membuat pasangan kunci kriptografi untuk menandatangani pengesahan dan memverifikasinya nanti
- Menandatangani ringkasan image container, membuat tanda tangan
- Membuat pengesahan menggunakan tanda tangan
- Menguji kebijakan dengan men-deploy image container ke GKE
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen yang dapat ditagih berikut Google Cloud:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Sebelum memulai
- Login keakun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Container Registry, Artifact Analysis and Binary Authorization APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Container Registry, Artifact Analysis and Binary Authorization APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init - Instal
kubectl.
Menetapkan project default
Untuk memfasilitasi perintah yang mengikuti, simpan Google Cloud project ID Anda dalam variabel lingkungan sebagai berikut:
PROJECT_ID=PROJECT_ID
dengan PROJECT_ID adalah nama project Anda.
Jika project default belum dipilih, tetapkan sekarang:
gcloud config set project ${PROJECT_ID}
Membuat cluster dengan Otorisasi Biner diaktifkan
Membuat cluster
Sekarang Anda dapat membuat cluster GKE dengan Otorisasi Biner diaktifkan. Di sini, Anda membuat cluster bernama test-cluster di zona GKE us-central1-a.
Untuk membuat cluster, ikuti langkah-langkah berikut:
Buka menu GKE di Google Cloud konsol.
Klik Create Cluster.
Masukkan
test-clusterdi kolom Name.Pilih Zonal di opsi Location type.
Pilih
us-central1-adari menu drop-down Zone.Klik Availability, networking, security, and additional features.
Di bagian Security, pilih Enable Binary Authorization.
Pilih Enforce-only.
Klik Create.
Mengonfigurasi kubectl
Anda juga harus memperbarui file kubeconfig lokal untuk penginstalan kubectl. Hal ini memberikan informasi endpoint dan kredensial yang diperlukan untuk mengakses cluster di GKE.
Untuk memperbarui file kubeconfig lokal, ikuti langkah-langkah berikut:
gcloud container clusters get-credentials \
--zone us-central1-a \
test-cluster
Melihat kebijakan default
A kebijakan di Otorisasi Biner adalah kumpulan aturan yang mengatur deployment image container. Anda dapat memiliki satu kebijakan per project. Secara default, kebijakan dikonfigurasi untuk mengizinkan semua image container di-deploy.
Untuk melihat kebijakan default, ikuti langkah-langkah berikut:
Buka halaman Binary Authorization di Google Cloud konsol.
Klik Edit Policy.
Di Project Default Rule, opsi Allow All Images akan ditampilkan.
Klik Save Policy.