Panduan ini menunjukkan cara menyiapkan Otorisasi Biner untuk menerapkan deployment berbasis kebijakan pada layanan dan tugas Cloud Run.
Sebelum memulai
Siapkan Cloud Run dan aktifkan API dengan melakukan hal berikut:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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 Cloud Run, Artifact Registry, Binary Authorization APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the 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 Cloud Run, Artifact Registry, Binary Authorization APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the 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 Buka halaman Cloud Run di konsol Google Cloud .
Klik layanan.
Klik tab Keamanan.
Untuk mengaktifkan penerapan Otorisasi Biner di layanan, klik Aktifkan.
Opsional: Untuk mengonfigurasi kebijakan Otorisasi Biner, klik Configure Policy.
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui anotasi
run.googleapis.com/binary-authorization:sebagai berikut:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/binary-authorization: POLICY name: SERVICE spec: template:
Ganti kode berikut:
- SERVICE: nama Cloud Run Anda
- POLICY: tetapkan ke
default
Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
Buka halaman tugas Cloud Run di konsol Google Cloud .
Klik tugas untuk membuka detail tugas.
Klik tab Configuration.
Di bagian Binary Authorization, pilih kebijakan dari daftar kebijakan.
Klik Terapkan untuk mengaktifkan penerapan Otorisasi Biner pada tugas.
Opsional: Untuk mengonfigurasi kebijakan Otorisasi Biner, klik Configure Policy.
JOB_NAME: nama tugas Anda.POLICY: kebijakan yang ingin Anda terapkan. Gunakan nilaidefaultuntuk menggunakan kebijakan default.Buka halaman Cloud Run:
Klik Create service.
Di formulir Create service :
- Pilih Cloud Run sebagai platform pengembangan Anda.
- Pilih wilayah tempat Anda ingin layanan berada.
- Masukkan nama layanan.
- Klik Next untuk melanjutkan ke halaman Configure the service's first revision.
- Pilih Men-deploy satu revisi dari image container yang sudah ada.
- Masukkan atau pilih gambar yang akan di-deploy.
- Luaskan bagian Setelan lanjutan.
- Klik tab Keamanan.
Centang kotak Verify container deployment with Binary Authorization.
Opsional: Klik Configure policy untuk mengonfigurasi kebijakan Otorisasi Biner. Untuk mempelajari lebih lanjut cara mengonfigurasi kebijakan, lihat Mengonfigurasi kebijakan.
Men-deploy service.
SERVICE_NAME: nama untuk layanan Anda.IMAGE_URL: image yang ingin Anda deploy.REGION: region tempat Anda ingin men-deploy layanan.Buka halaman tugas Cloud Run:
Klik Buat Tugas untuk menampilkan formulir Buat tugas.
- Di bagian formulir, tentukan image container yang berisi kode tugas atau pilih dari daftar container yang sebelumnya di-deploy.
- Nama tugas dibuat secara otomatis dari image container. Anda dapat mengedit atau mengubah nama pekerjaan sesuai kebutuhan. Nama pekerjaan tidak dapat diubah setelah tugas dibuat.
- Pilih wilayah tempat Anda ingin tugas berada.
- Tentukan jumlah tugas yang ingin Anda jalankan dalam tugas. Semua tugas harus berhasil agar pekerjaan berhasil. Secara default, tugas dijalankan secara paralel.
Klik Container, Variabel & Rahasia, Koneksi, Keamanan untuk menetapkan properti tugas tambahan.
Klik tab Setelan. Di bagian Resources, konfigurasikan hal berikut:
- Di menu Memory, tentukan jumlah memori yang diperlukan. Setelan defaultnya adalah ukuran minimum yang diperlukan, 512 MiB.
- Di menu CPU, tentukan jumlah CPU yang diperlukan. Defaultnya adalah jumlah minimum yang diperlukan, 1 CPU.
Di bagian Kapasitas tugas:
Di bagian Waktu tunggu tugas, tentukan jumlah waktu maksimum dalam detik untuk menjalankan tugas, hingga 168 jam (7 hari). Setiap tugas harus selesai dalam waktu yang ditentukan. Nilai defaultnya adalah 10 menit.
Di bagian Jumlah percobaan ulang per tugas yang gagal, tentukan jumlah percobaan ulang jika terjadi kegagalan tugas. Defaultnya adalah 3 percobaan ulang.
Di bagian Paralelisme:
- Dalam sebagian besar kasus, Anda dapat memilih Jalankan sebanyak mungkin tugas secara serentak.
- Jika Anda perlu menetapkan batas yang lebih rendah karena batasan penskalaan pada resource yang diakses tugas Anda, pilih Batasi jumlah maksimum tugas serentak dan tentukan jumlah tugas serentak di kolom Batas paralelisme kustom.
Setelah selesai mengonfigurasi tugas, klik Create untuk membuat tugas di Cloud Run.
Untuk menjalankan tugas, lihat menjalankan tugas atau menjalankan tugas sesuai jadwal.
Buat tugas baru dengan Otorisasi Biner yang diaktifkan:
gcloud run jobs create JOB_NAME \ --image IMAGE_URL OPTIONS \ --binary-authorization=POLICY \ --region=REGION
Ganti kode berikut:
JOB_NAME: nama tugas yang ingin Anda buat. Anda dapat menghilangkan parameter ini, tetapi Anda akan diminta untuk memasukkan nama tugas jika menghilangkannya.POLICY: kebijakan yang ingin Anda terapkan. Gunakan nilaidefaultuntuk menggunakan kebijakan default.- IMAGE_URL: referensi ke
image container—misalnya,
us-docker.pkg.dev/cloudrun/container/job:latest. REGION: region tempat tugas ini akan dijalankan.OPTIONS: salah satu opsi yang tersedia yang dijelaskan di halaman pembuatan tugas Cloud Run.
Tunggu hingga pembuatan tugas selesai dibuat. Setelah berhasil diselesaikan, konsol akan menampilkan pesan berhasil.
Untuk menjalankan tugas, lihat Menjalankan tugas atau menjalankan tugas sesuai jadwal.
Buat file
job.yamlbaru dengan konten ini:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB annotations: run.googleapis.com/binary-authorization: POLICY spec: template: spec: containers: - image: IMAGE
Ganti kode berikut:
- JOB: nama tugas Cloud Run Anda
- IMAGE: URL image container Anda
- POLICY: tetapkan ke
default
Deploy tugas baru menggunakan perintah berikut:
gcloud run jobs replace job.yaml
- Gunakan pengesah
built-by-cloud-builduntuk men-deploy hanya image yang dibuat oleh Cloud Build. - Konfigurasi kebijakan Otorisasi Biner menggunakan konsolGoogle Cloud atau alat command line.
- Gunakan pengesahan untuk men-deploy hanya image container yang ditandatangani.
- Tonton video tentang cara menggunakan Otorisasi Biner di Cloud Run agar hanya build yang disetujui yang di-deploy.
Mengaktifkan Otorisasi Biner pada layanan Cloud Run yang ada
Anda dapat mengaktifkan penerapan Otorisasi Biner pada layanan yang ada. Untuk mengaktifkan penerapan setelah mengaktifkannya, Anda mungkin perlu men-deploy revisi atau memperbarui traffic layanan.
Anda dapat mengaktifkan penerapan Otorisasi Biner pada layanan yang ada menggunakan konsol Google Cloud atau Google Cloud CLI:
Konsol
gcloud
Aktifkan Otorisasi Biner di layanan dan deploy:
gcloud run services update SERVICE_NAME --binary-authorization=default
Ganti SERVICE_NAME dengan nama untuk layanan Anda.
YAML
gcloud run services replace service.yaml
Mengaktifkan Otorisasi Biner pada tugas Cloud Run yang ada
Anda dapat mengaktifkan penerapan Otorisasi Biner pada tugas yang ada menggunakan KonsolGoogle Cloud atau Google Cloud CLI:
Konsol
gcloud
Aktifkan Otorisasi Biner pada tugas:
gcloud run jobs update JOB_NAME --binary-authorization=POLICY
Ganti kode berikut:
Sebaiknya wajibkan Otorisasi Biner untuk Cloud Run dengan mengonfigurasi kebijakan organisasi untuk melakukannya. Otorisasi Biner dapat dinonaktifkan oleh developer Cloud Run jika kebijakan tidak dikonfigurasi.
Melihat kebijakan
Untuk melihat kebijakan, klik Lihat kebijakan.
Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi kebijakan Otorisasi Biner.
Kegagalan deployment layanan atau tugas
Jika layanan atau tugas Anda gagal di-deploy karena melanggar kebijakan Otorisasi Biner, Anda mungkin melihat error seperti berikut:
Revision REVISION_NAME uses an unauthorized container image. Container image IMAGE_NAME is not authorized by policy.
Error ini juga berisi informasi tentang alasan gambar melanggar kebijakan. Dalam hal ini, Anda dapat menggunakan breakglass untuk melewati penegakan kebijakan dan men-deploy image.
Mengaktifkan Otorisasi Biner di layanan baru
Anda dapat mengaktifkan Otorisasi Biner pada layanan baru menggunakan konsol Google Cloud atau Google Cloud CLI:
Konsol
gcloud
Aktifkan Otorisasi Biner di layanan dan deploy:
gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION
Ganti kode berikut:
Mengaktifkan Otorisasi Biner pada tugas baru
Anda dapat mengaktifkan Otorisasi Biner pada tugas baru menggunakan salah satu opsi berikut:
Konsol
gcloud
Saat Anda membuat tugas baru, agen layanan Cloud Run harus dapat mengakses container, yang merupakan kasus default.