Opsi ini ditujukan untuk layanan Cloud Run yang merupakan API publik atau situs web.
Ada dua cara untuk membuat layanan Cloud Run publik:
- Nonaktifkan pemeriksaan Cloud Run InvokerIAM (direkomendasikan).
- Tetapkan peran IAM Cloud Run Invoker ke jenis anggota
allUsers
.
Menonaktifkan pemeriksaan IAM Cloud Run Invoker
Cara yang direkomendasikan untuk membuat layanan publik adalah menonaktifkan pemeriksaan IAM Cloud Run Invoker. Pemeriksaan diterapkan secara default. Ini terutama merupakan solusi jika project tunduk pada batasan berbagi yang dibatasi domain dalam kebijakan organisasi.
Untuk menonaktifkan atau mengaktifkan kembali pemeriksaan IAM Pemanggil di layanan, Anda harus memiliki izin berikut:
run.services.create
run.services.update
run.services.setIamPolicy
Izin ini termasuk dalam peran Owner dan Cloud Run Admin. Lihat [Peran IAM Cloud Run][1] untuk mengetahui daftar lengkap peran dan izin terkaitnya.
Menonaktifkan pemeriksaan IAM Cloud Run Invoker
Untuk menonaktifkan pemeriksaan:
Konsol
Klik Buat Layanan jika Anda mengonfigurasi layanan baru, lalu isi halaman setelan layanan awal sesuai kebutuhan. Jika Anda mengonfigurasi layanan yang ada, klik layanan tersebut, lalu klik Security.
Hapus centang pada Use IAM to authenticate incoming requests.
Klik Buat atau Simpan.
gcloud
Untuk layanan baru, gunakan perintah
gcloud run deploy
dengan flag--no-invoker-iam-check
:gcloud run deploy SERVICE_NAME --no-invoker-iam-check
dengan
SERVICE_NAME
adalah nama layanan.Untuk layanan yang sudah ada, gunakan perintah
gcloud run services update
dengan flag--no-invoker-iam-check
:gcloud run services update SERVICE_NAME --no-invoker-iam-check
dengan
SERVICE_NAME
adalah nama layanan.
YAML
Untuk melihat dan mendownload konfigurasi:
gcloud run services describe SERVICE --format export > service.yaml
Update anotasi
run.googleapis.com/invoker-iam-disabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: true name: SERVICE_NAME
dengan SERVICE_NAME adalah nama layanan Cloud Run Anda.
Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
gcloud run services replace service.yaml
Pastikan pemeriksaan dinonaktifkan setelah deployment dengan membuka endpoint HTTPS layanan.
Mengaktifkan kembali pemeriksaan IAM Cloud Run Invoker
Untuk mengaktifkan kembali pemeriksaan:
Konsol
Klik layanan, lalu klik Security.
Pilih Gunakan IAM untuk mengautentikasi permintaan masuk.
Klik Simpan.
gcloud
Update layanan dengan meneruskan flag
--invoker-iam-check
:gcloud run services update SERVICE_NAME --invoker-iam-check
dengan
SERVICE_NAME
adalah nama layanan.
YAML
Untuk melihat dan mendownload konfigurasi:
gcloud run services describe SERVICE --format export > service.yaml
Update anotasi
run.googleapis.com/invoker-iam-disabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: false name: SERVICE_NAME
dengan SERVICE_NAME adalah nama layanan Cloud Run Anda.
Pastikan pemeriksaan diaktifkan kembali setelah deployment dengan membuka endpoint HTTPS layanan.
Mengonfigurasi kebijakan organisasi untuk pemeriksaan IAM pemanggil Cloud Run
Jika Anda adalah administrator, Anda dapat membatasi kemampuan untuk
menonaktifkan pemeriksaan IAM Pemanggil
menggunakan batasan terkelola constraints/run.managed.requireInvokerIam
.
Batasan ini tidak diterapkan secara default.
Menetapkan peran Cloud Run IAM Invoker ke jenis anggota allUsers
Anda dapat mengizinkan pemanggilan yang tidak diautentikasi ke layanan dengan menetapkan peran IAM Cloud Run Invoker ke jenis anggota allUsers
.
Anda harus memiliki izin run.services.setIamPolicy
untuk mengonfigurasi autentikasi
pada layanan Cloud Run. Izin ini termasuk dalam peran Owner dan Cloud Run Admin. Lihat peran IAM Cloud Run
untuk mengetahui daftar lengkap peran dan izin terkaitnya.
UI Konsol
Untuk layanan Cloud Run yang sudah ada:
Buka Google Cloud konsol:
Klik kotak centang di sebelah kiri layanan yang ingin dipublikasikan. (Jangan mengklik layanan.)
Di panel informasi pojok kanan atas, klik tab Izin. Jika panel informasi tidak terlihat, Anda mungkin perlu mengklik Tampilkan Panel Info, lalu klik Izin.
Klik Tambahkan akun utama.
Di kolom New principals, masukkan nilai allUsers
Dari menu drop-down Role, pilih peran Cloud Run Invoker.
Klik Simpan.
Anda akan diminta untuk memverifikasi bahwa Anda ingin menjadikan referensi ini publik. Klik Izinkan akses publik untuk menerapkan perubahan pada setelan layanan IAM.
Untuk layanan baru yang Anda buat, buat layanan, tetapi pastikan Anda memilih Izinkan pemanggilan tidak diautentikasi di tab Autentikasi untuk membuat layanan menjadi tersedia untuk publik. Memilih Wajibkan autentikasi akan membuat layanan menjadi pribadi.
gcloud
Untuk membuat layanan dapat diakses secara publik, gunakan perintah gcloud run services
untuk menambahkan jenis anggota allUsers
khusus ke layanan dan berikan
peran roles/run.invoker
:
gcloud run services add-iam-policy-binding [SERVICE_NAME] \ --member="allUsers" \ --role="roles/run.invoker"
Jalankan perintah gcloud run deploy
untuk membuat layanan Anda dapat diakses secara publik saat Anda men-deploy layanan:
gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated
YAML
Buat file bernama policy.yaml
dengan konten berikut:
bindings:
- members:
- allUsers
role: roles/run.invoker
Izinkan pemanggilan yang tidak diautentikasi untuk SERVICE yang ada menggunakan:
gcloud run services set-iam-policy SERVICE policy.yaml
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Tambahkan kode berikut ke resourcegoogle_cloud_run_v2_service
di konfigurasi Terraform Anda:Untuk memperbarui binding IAM layanan untuk roles/run.invoker
, tambahkan resource berikut yang merujuk ke layanan Cloud Run Anda:
Binding ini hanya bersifat otoritatif untuk peran yang diberikan. Binding IAM lainnya dalam kebijakan IAM layanan dipertahankan.