Ada dua cara untuk membuat layanan Cloud Run publik:
- Nonaktifkan pemeriksaan IAM Cloud Run Invoker (direkomendasikan).
- Tetapkan peran IAM Cloud Run Invoker ke jenis anggota
allUsers
.
Peran yang diperlukan
Untuk menonaktifkan atau mengaktifkan kembali pemeriksaan IAM Pemanggil pada layanan, Anda harus memiliki izin berikut:
run.services.create
run.services.update
run.services.setIamPolicy
Izin ini disertakan dalam peran
Admin Cloud Run
(roles/run.admin
). Lihat
Peran IAM Cloud Run
untuk mengetahui daftar lengkap peran dan izin terkaitnya.
Menonaktifkan pemeriksaan IAM Cloud Run Invoker
Cara yang direkomendasikan untuk membuat layanan publik adalah dengan menonaktifkan pemeriksaan IAM Cloud Run Invoker. Cloud Run menerapkan pemeriksaan ini secara default. Gunakan solusi ini saat project tunduk pada batasan berbagi yang dibatasi domain dalam kebijakan organisasi.
Untuk menonaktifkan pemeriksaan:
Konsol
Di konsol Google Cloud , buka halaman Cloud Run:
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 tab Security.
Pilih Izinkan akses publik.
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
Ganti
SERVICE_NAME
dengan 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
Ganti SERVICE_NAME
dengan 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
Ganti SERVICE_NAME dengan 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
Di konsol Google Cloud , buka halaman Cloud Run:
Klik layanan, lalu klik Security.
Pilih Wajibkan autentikasi, lalu pilih Identity and Access Management (IAM).
Klik Simpan.
gcloud
Perbarui layanan dengan meneruskan flag
--invoker-iam-check
:gcloud run services update SERVICE_NAME --invoker-iam-check
Ganti
SERVICE_NAME
dengan 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
Ganti
SERVICE_NAME
dengan 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
dengan menggunakan batasan terkelola constraints/run.managed.requireInvokerIam
.
Batasan ini tidak diterapkan secara default.
Tetapkan peran Cloud Run IAM Invoker ke jenis anggota allUsers
Anda dapat mengizinkan akses publik 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 disertakan dalam
peran Cloud Run Admin. Lihat
Peran IAM Cloud Run
untuk mengetahui daftar lengkap peran dan izin terkaitnya.
Konsol
Untuk layanan Cloud Run yang sudah ada:
Di konsol Google Cloud , buka halaman Cloud Run:
Di sebelah kiri layanan yang ingin Anda publikasikan, klik kotak centang. Jangan mengklik layanan itu sendiri.
Di panel informasi di 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 Akun utama baru, masukkan nilai allUsers
.
Dari menu Select a 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 IAM layanan.
Untuk layanan baru yang Anda buat, buat layanan dan pilih Izinkan akses publik di bagian Autentikasi untuk membuat layanan tersedia untuk publik. Untuk membuat layanan menjadi pribadi, pilih Wajibkan autentikasi.
gcloud
Untuk membuat layanan dapat diakses secara publik, gunakan perintah gcloud run services
untuk menambahkan jenis anggota allUsers
khusus ke layanan dan memberikan 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 akses publik 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.