Mengaktifkan Otorisasi Biner untuk Cloud Run

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:

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Instal Google Cloud CLI.

  6. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  7. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  8. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Instal Google Cloud CLI.

  12. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  13. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init

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

  1. Buka halaman Cloud Run di Google Cloud konsol.

    Buka Cloud Run

  2. Klik layanan.

  3. Klik tab Security.

  4. Untuk mengaktifkan penerapan Otorisasi Biner pada layanan, klik Enable.

  5. Opsional: Untuk mengonfigurasi kebijakan Otorisasi Biner, klik Configure Policy.

gcloud

Aktifkan Otorisasi Biner pada layanan dan deploy:

gcloud run services update SERVICE_NAME --binary-authorization=default

Ganti SERVICE_NAME dengan nama untuk layanan Anda.

YAML

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda memperbarui layanan yang ada, download konfigurasi YAML-nya:

    gcloud run services describe SERVICE --format export > service.yaml
  2. 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
  3. Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:

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 Google Cloud konsol atau Google Cloud CLI:

Konsol

  1. Buka halaman tugas Cloud Run di Google Cloud konsol.

    Buka Cloud Run

  2. Klik tugas untuk membuka detail tugas.

  3. Klik tab Configuration.

  4. Di bagian Binary Authorization, pilih kebijakan dari daftar kebijakan.

  5. Klik Apply untuk mengaktifkan penerapan Otorisasi Biner pada tugas.

  6. Opsional: Untuk mengonfigurasi kebijakan Otorisasi Biner, klik Configure Policy.

gcloud

Aktifkan Otorisasi Biner pada tugas:

gcloud run jobs update JOB_NAME --binary-authorization=POLICY

Ganti kode berikut:

  • JOB_NAME: nama tugas Anda.
  • POLICY: kebijakan yang ingin Anda terapkan. Gunakan nilai default untuk menggunakan kebijakan default.

Sebaiknya Anda mewajibkan 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 View policy.

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 akan 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 image melanggar kebijakan. Dalam hal ini, Anda dapat menggunakan breakglass untuk melewati penerapan kebijakan dan men-deploy image.

Mengaktifkan Otorisasi Biner pada layanan baru

Anda dapat mengaktifkan Otorisasi Biner pada layanan baru menggunakan Google Cloud konsol atau Google Cloud CLI:

Konsol

  1. Buka halaman Cloud Run:

    Buka Cloud Run

  2. Klik Create service.

  3. Di dalam formulir Create service :

    1. Pilih Cloud Run sebagai platform pengembangan Anda.
    2. Pilih wilayah tempat Anda ingin layanan berada.
    3. Masukkan nama layanan.
    4. Klik Next untuk melanjutkan ke halaman Configure the service's first revision.
    5. Pilih Deploy one revision from an existing container image.
    6. Masukkan atau pilih image yang akan di-deploy.
    7. Luaskan bagian Advanced settings.
    8. Klik tab Security.
    9. Centang kotak Verify container deployment with Binary Authorization.

    10. Opsional: Klik Configure policy untuk mengonfigurasi kebijakan Otorisasi Biner. Untuk mempelajari lebih lanjut cara mengonfigurasi kebijakan, lihat Mengonfigurasi kebijakan.

    11. Men-deploy service.

gcloud

Aktifkan Otorisasi Biner pada layanan dan deploy:

  gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION

Ganti kode berikut:

  • SERVICE_NAME: nama untuk layanan Anda.
  • IMAGE_URL: image yang ingin Anda deploy.
  • REGION: region tempat Anda ingin men-deploy layanan.

Mengaktifkan Otorisasi Biner pada tugas baru

Anda dapat mengaktifkan Otorisasi Biner pada tugas baru menggunakan salah satu hal berikut:

Konsol

  1. Buka halaman tugas Cloud Run:

    Buka tugas Cloud Run

  2. Klik Create Job untuk menampilkan formulir Create job.

    1. Di bagian formulir, tentukan image container yang berisi kode tugas atau pilih dari daftar container yang sebelumnya di-deploy.
    2. 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.
    3. Pilih wilayah tempat Anda ingin tugas berada.
    4. Tentukan jumlah tugas yang ingin Anda jalankan dalam tugas. Semua tugas harus berhasil agar pekerjaan berhasil. Secara default, tugas dijalankan secara paralel.
  3. Klik Container, Variables &Secrets, Connections, Security untuk menetapkan properti tugas tambahan.

    • Klik tab Settings. Di bagian Resources, konfigurasi hal berikut:

      1. Di menu Memory, tetapkan jumlah memori yang diperlukan. Setelan defaultnya adalah ukuran minimum yang diperlukan, 512 MiB.
      2. Di menu CPU, tetapkan jumlah CPU yang diperlukan. Defaultnya adalah jumlah minimum yang diperlukan, 1 CPU.
    • Di bagian Task capacity:

      1. Di bagian Task timeout, tentukan jumlah waktu maksimum dalam detik untuk menjalankan tugas, hingga 168 jam (7 hari). Setiap tugas harus selesai dalam jangka waktu yang ditentukan. Waktu defaultnya adalah 10 menit.

      2. Di bagian Number of retries per failed task, tentukan jumlah percobaan ulang jika terjadi kegagalan tugas. Defaultnya adalah 3 percobaan ulang.

    • Di bagian Parallelism:

      1. Dalam sebagian besar kasus, Anda dapat memilih Run as many tasks concurrently as possible.
      2. Jika Anda perlu menetapkan batas yang lebih rendah karena batasan penskalaan pada resource yang diakses tugas Anda, pilih Limit the maximum number of concurrent tasks dan tentukan jumlah tugas serentak di kolom Custom parallelism limit.
  4. Setelah selesai mengonfigurasi tugas, klik Create untuk membuat tugas di Cloud Run.

  5. Untuk menjalankan tugas, lihat menjalankan tugas atau menjalankan tugas sesuai jadwal.

gcloud

  1. Buat tugas baru dengan Otorisasi Biner 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 nilai default untuk menggunakan kebijakan default.
    • IMAGE_URL: referensi ke image container—misalnya, us-docker.pkg.dev/cloudrun/container/job:latest.
    • REGION: region tempat tugas ini akan berjalan.
    • OPTIONS: salah satu opsi yang tersedia yang dijelaskan di halaman pembuatan tugas Cloud Run .
  2. Tunggu hingga pembuatan tugas selesai dibuat. Setelah berhasil diselesaikan, konsol akan menampilkan pesan berhasil.

  3. Untuk menjalankan tugas, lihat Jalankan tugas atau jalankan tugas sesuai jadwal.

Saat Anda membuat tugas baru, agen layanan Cloud Run harus dapat mengakses container, yang merupakan kasus default.

YAML

  1. Buat file job.yaml baru 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
  2. Deploy tugas baru menggunakan perintah berikut:

    gcloud run jobs replace job.yaml

Langkah berikutnya