Halaman ini menjelaskan cara mengaktifkan IAP langsung di layanan Cloud Run
dan mengamankan traffic yang menuju ke layanan Cloud Run dengan
merutekannya ke IAP untuk autentikasi. Dengan mengaktifkan IAP
di Cloud Run secara langsung, Anda dapat mengamankan traffic dengan sekali klik
dari semua jalur traffic masuk, termasuk URL run.app
default dan load balancer.
Saat mengintegrasikan IAP dengan Cloud Run, Anda dapat Mengelola akses pengguna atau grup dengan cara berikut:
- Di dalam organisasi - mengonfigurasi akses ke pengguna yang berada dalam organisasi yang sama dengan layanan Cloud Run Anda
- Di luar organisasi - mengonfigurasi akses ke pengguna yang berasal dari organisasi yang berbeda dengan layanan Cloud Run Anda
- Tidak ada organisasi - mengonfigurasi akses dalam project yang bukan bagian dari organisasi Google mana pun
Batasan umum
- Anda tidak dapat mengonfigurasi IAP di load balancer dan layanan Cloud Run.
- Cloud Run menerapkan kebijakan IAP sebelum melakukan pemeriksaan IAM pada akun layanan IAP. Karena IAP mencegat permintaan dan mengganti identitas pemanggil asli, layanan seperti Pub/Sub yang mengandalkan autentikasinya sendiri mungkin akan gagal.
Sebelum memulai
Aktifkan IAP API:
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengaktifkan IAP, minta administrator untuk memberi Anda peran IAM berikut:
- Cloud Run Admin (
roles/run.admin) pada project -
Memberikan akses ke layanan yang mendukung IAP:
IAP Policy Admin (
roles/iap.admin) pada project -
Buat layanan yang mendukung IAP atau update layanan yang ada untuk mengaktifkan IAP:
- Artifact Registry Reader (
roles/artifactregistry.reader) pada image container yang di-deploy - Pengguna Akun Layanan (
roles/iam.serviceAccountUser) pada identitas layanan
- Artifact Registry Reader (
-
Memberikan akses kepada pengguna yang bukan bagian dari organisasi Google:
Admin Setelan IAP (
roles/iap.settingsAdmin) pada project -
Memberikan akses kepada pengguna dari luar organisasi atau yang bukan bagian dari organisasi:
OAuth Config Editor (
roles/oauthconfig.editor) pada project -
Tambahkan atau kelola tingkat akses untuk akses kontekstual:
- Access Context Manager Reader (
roles/accesscontextmanager.policyReader) di organisasi, dan Organization Viewer - Organization Viewer (
roles/resourcemanager.organizationViewer) di organisasi
- Access Context Manager Reader (
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mengaktifkan IAP dari Cloud Run
Sebaiknya aktifkan IAP di Cloud Run secara langsung.
Aktifkan IAP dari Cloud Run menggunakan konsol Google Cloud , Google Cloud CLI, atau Terraform.
Konsol
Saat Anda mengaktifkan IAP untuk Cloud Run, IAP
memerlukan izin untuk memanggil layanan Cloud Run Anda. Jika
Anda mengaktifkan IAP menggunakan konsol Google Cloud , izin
ini diberikan secara otomatis dengan menetapkan peran Cloud Run Invoker
(roles/run.invoker) ke agen layanan IAP.
Untuk mengaktifkan IAP dari Cloud Run:
Di konsol Google Cloud , buka Cloud Run:
Pilih Services dari menu navigasi Cloud Run:
Jika Anda mengonfigurasi layanan baru, klik Deploy container dan isi halaman setelan layanan awal.
Jika Anda mengonfigurasi layanan yang ada, klik layanan tersebut, lalu klik tab Security.
Pilih Require authentication, lalu pilih Identity-Aware Proxy (IAP).
Opsional: Untuk memberikan akses kepada pengguna, ikuti petunjuk untuk Mengelola akses pengguna atau grup untuk IAP. Jika Anda mengalami masalah saat mengonfigurasi akses untuk pengguna di luar organisasi, lihat bagian Pemecahan masalah. Untuk menyimpan konfigurasi, klik Save.
Klik Create untuk layanan baru. Klik View diff & redeploy, lalu Deploy changes untuk layanan yang ada.
gcloud
Untuk mengaktifkan IAP langsung dari Cloud Run, tambahkan flag --iap
saat men-deploy aplikasi dan berikan izin invoker ke agen layanan
IAP:
Deploy layanan Cloud Run Anda menggunakan salah satu perintah berikut:
Untuk layanan baru:
gcloud run deploy
SERVICE_NAME\ --region=REGION\ --image=IMAGE_URL\ --no-allow-unauthenticated \ --iapJika Anda mengaktifkan IAP untuk pertama kalinya dalam project tanpa organisasi, Anda mungkin melihat peringatan berikut:
Deploying services with IAP enabled in a project without an organization may require initial setup via the Cloud Console. Please use the Cloud Run UI to enable IAP for the first time in the project.Peringatan ini muncul karena Anda tidak dapat membuat klien OAuth secara terprogram. Sebaiknya Anda mengaktifkan IAP di Cloud Run terlebih dahulu langsung dari konsol Google Cloud , atau Mengonfigurasi klien OAuth kustom, lalu menambahkan pengguna menggunakan gcloud CLI.
Untuk layanan yang sudah ada:
gcloud run services update
SERVICE_NAME\ --region=REGION\ --iapGanti kode berikut:
SERVICE_NAME: nama layanan Cloud Run Anda.REGION: nama region Cloud Run Anda. Contoh,europe-west1.IMAGE_URL: referensi ke image container, misalnya,us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.PROJECT_NUMBER: Nomor project Google Cloud Anda.
Berikan izin invoker ke agen layanan IAP:
gcloud run services add-iam-policy-binding
SERVICE_NAME\ --region=REGION\ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com \ --role=roles/run.invokerGanti kode berikut:
SERVICE_NAME: nama layanan Cloud Run Anda.REGION: nama region Cloud Run Anda. Contoh,europe-west1.PROJECT_NUMBER: Nomor project Google Cloud Anda.
Opsional. Untuk memberikan akses pengguna, lihat Mengelola akses pengguna atau grup untuk IAP.
Untuk memverifikasi bahwa layanan Anda dikonfigurasi dengan IAP yang diaktifkan, jalankan perintah berikut:
gcloud run services describe
SERVICE_NAMEOutput harus berisi string berikut:
Iap Enabled: true
IAP kini merutekan semua traffic yang ditujukan untuk layanan Cloud Run yang dikonfigurasi ke IAP untuk autentikasi sebelum diteruskan ke container.
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Untuk mengaktifkan IAP menggunakan Terraform, Anda harus memperbarui definisi layanan dan menambahkan binding kebijakan IAM untuk memberikan izin invoker ke IAP.
Tambahkan
iap_enabled = trueke resourcegoogle_cloud_run_v2_servicedi konfigurasi Terraform Anda untuk mengaktifkan IAP pada layanan:resource "google_cloud_run_v2_service" "default" { name = "cloudrun-iap-service" location = "europe-west1" ingress = "INGRESS_TRAFFIC_ALL" iap_enabled = true template { containers { image = "us-docker.pkg.dev/cloudrun/container/hello" } } }Tambahkan kode berikut untuk memberikan peran
roles/run.invokerkepada agen layanan IAP.resource "google_cloud_run_v2_service_iam_member" "iap_invoker" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name role = "roles/run.invoker" member = "serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com" }Ganti
PROJECT_NUMBERdengan nomor project Anda.Opsional. Untuk mengambil data kebijakan IAM saat ini, tambahkan kode berikut ke resource
google_cloud_run_v2_service_iam_policydalam konfigurasi Terraform Anda.data "google_cloud_run_v2_service_iam_policy" "policy" { project = google_cloud_run_v2_service.default.project location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name }
Mengelola akses pengguna atau grup
Secara default, IAP untuk Cloud Run menggunakan klien OAuth yang dikelola Google yang memungkinkan Anda menambahkan identitas dalam organisasi dengan alamat email yang terkait dengan pengguna. Anda juga dapat mengelola akun utama dari luar organisasi atau tanpa organisasi, menggunakan konsol Google Cloud di IAP dengan membuat klien OAuth kustom seperti yang dijelaskan dalam langkah-langkah berikut.
Tambahkan atau hapus akses IAP ke layanan Cloud Run menggunakan konsol Google Cloud , gcloud CLI, atau Terraform.
Di dalam organisasi
Konsol
Untuk menambahkan atau menghapus akses:
Di konsol Google Cloud , buka halaman Cloud Run:
Klik layanan yang ada yang ingin Anda ubah, lalu klik Security.
Di bagian Identity-Aware Proxy (IAP), klik Edit policy.
Untuk menambahkan akses, masukkan akun utama, dan secara opsional, tingkat akses yang ingin Anda tambahkan, atau biarkan tingkat akses kosong. Untuk melihat dan menambahkan tingkat akses, Anda harus memiliki Peran yang diperlukan untuk Access Context Manager.
Untuk menghapus akses jika hanya ada satu akun utama dalam kebijakan, klik ikon Delete policy di samping Access levels.
Untuk menghapus akun utama satu per satu dari kebijakan, klik ikon X di samping nama akun utama yang ingin Anda hapus.
Untuk menyimpan konfigurasi pengguna, klik Save.
gcloud
Untuk menambahkan atau menghapus akses ke layanan Cloud Run bagi pengguna atau grup perorangan, jalankan salah satu perintah berikut:
Untuk menambahkan akses:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEUntuk menghapus akses:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEUntuk melihat akses:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Ganti kode berikut:
USER_EMAIL: alamat email pengguna.REGION: nama region Cloud Run Anda.SERVICE_NAME: nama layanan Cloud Run Anda.
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Untuk memberikan akses otoritatif ke daftar akun utama:
Gunakan resource
google_iap_web_cloud_run_service_iam_bindinguntuk memberikan peran ke daftar akun utama yang kredibel. Resource ini memastikan bahwa hanya anggota dalam daftar yang diberi peran. Akun utama lain yang diberi peran akan dihapus.Tambahkan kode berikut ke resource
google_iap_web_cloud_run_service_iam_bindingdi konfigurasi Terraform Anda.resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }Ganti kode berikut:
PROJECT_ID: nama project.REGION: region Google Cloud —misalnya,europe-west1.SERVICE_NAME: nama layanan Cloud Run Anda.PRINCIPAL: ID untuk akun utama, atau anggota, yang biasanya memiliki formulir berikut:PRINCIPAL_TYPE:ID. Misalnya,user:my-user@example.com. Untuk daftar lengkap nilai yang dapat dimilikiPRINCIPAL, lihat referensi Pengikatan Kebijakan.
Untuk memberikan akses bagi satu akun utama:
Gunakan resource
google_iap_web_cloud_run_service_iam_memberuntuk memberikan peran ke satu akun utama tanpa memengaruhi akun utama lain yang mungkin memiliki peran yang sama.Tambahkan kode berikut ke resource
google_iap_web_cloud_run_service_iam_memberdi konfigurasi Terraform Anda.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "/span>PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }<Ganti kode berikut:
PROJECT_ID: nama project.REGION: region Google Cloud —misalnya,europe-west1.SERVICE_NAME: nama layanan Cloud Run Anda.PRINCIPAL: ID untuk akun utama, atau anggota, yang biasanya memiliki formulir berikut:PRINCIPAL_TYPE:ID. Misalnya,user:my-user@example.com. Untuk daftar lengkap nilai yang dapat dimilikiPRINCIPAL, lihat referensi Pengikatan Kebijakan.
Di luar organisasi
Konsol
Untuk menambahkan pengguna dari luar organisasi Anda menggunakan IAP, selesaikan proses penyiapan satu kali berikut:
Di konsol Google Cloud , buka halaman Cloud Run:
Klik layanan yang ada yang ingin Anda ubah, lalu klik Security.
Di halaman detail keamanan layanan Cloud Run Anda, di bagian IAP, klik Edit policy.
Klik Configure in IAP. Tindakan ini akan membuka halaman setelan resource di IAP.
Klik Configure consent screen untuk mengonfigurasi layar izin OAuth Anda. Untuk jenis audiens, pilih External.
Untuk penyiapan tercepat, klik Buat kredensial otomatis.
Atau, ikuti petunjuk untuk Membuat client ID OAuth. Pilih Custom OAuth, lalu masukkan client ID dan rahasia kustom Anda.
Untuk menyimpan konfigurasi, klik Save.
Sekarang Anda dapat kembali ke layanan Cloud Run di Cloud Run untuk menambahkan akun utama di luar organisasi.
Untuk menambahkan atau menghapus akses pengguna, selesaikan langkah-langkah berikut:
Di konsol Google Cloud , buka halaman Cloud Run:
Klik layanan yang ada yang ingin Anda ubah, lalu klik Security.
Di bagian IAP, klik Edit policy.
Untuk menambahkan akses, masukkan akun utama, dan secara opsional, tingkat akses yang ingin Anda tambahkan, atau biarkan tingkat akses kosong. Untuk melihat dan menambahkan tingkat akses, Anda harus memiliki Peran yang diperlukan untuk Access Context Manager.
Untuk menghapus akses jika hanya ada satu akun utama dalam kebijakan, klik ikon Delete policy di samping Access levels.
Untuk menghapus akun utama satu per satu dari kebijakan, klik ikon X di samping nama akun utama yang ingin Anda hapus.
Untuk menyimpan konfigurasi pengguna, klik Save.
gcloud
Sebelum memulai
- Untuk menambahkan akun utama pengguna dari luar organisasi, Anda harus mengonfigurasi klien OAuth terlebih dahulu.
Untuk menambahkan atau menghapus akses ke layanan Cloud Run bagi pengguna atau grup perorangan, jalankan salah satu perintah berikut:
Untuk menambahkan akses:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEUntuk menghapus akses:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEUntuk melihat akses:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Ganti kode berikut:
USER_EMAIL: alamat email pengguna.REGION: nama region Cloud Run Anda.SERVICE_NAME: nama layanan Cloud Run Anda.
Terraform
Sebelum memulai
- Untuk menambahkan akun utama pengguna dari luar organisasi, Anda harus mengonfigurasi klien OAuth terlebih dahulu.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Untuk memberikan akses otoritatif ke daftar akun utama:
Gunakan resource
google_iap_web_cloud_run_service_iam_bindinguntuk memberikan peran ke daftar akun utama yang kredibel. Resource ini memastikan bahwa hanya anggota dalam daftar yang diberi peran. Akun utama lain yang diberi peran akan dihapus.Tambahkan kode berikut ke resource
google_iap_web_cloud_run_service_iam_bindingdi konfigurasi Terraform Anda.resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }Ganti kode berikut:
PROJECT_ID: nama project.REGION: region Google Cloud —misalnya,europe-west1.SERVICE_NAME: nama layanan Cloud Run Anda.PRINCIPAL: ID untuk akun utama, atau anggota, yang biasanya memiliki formulir berikut:PRINCIPAL_TYPE:ID. Misalnya,user:my-user@example.com. Untuk daftar lengkap nilai yang dapat dimilikiPRINCIPAL, lihat referensi Pengikatan Kebijakan.
Untuk memberikan akses bagi satu akun utama:
Gunakan resource
google_iap_web_cloud_run_service_iam_memberuntuk memberikan peran ke satu akun utama tanpa memengaruhi akun utama lain yang mungkin memiliki peran yang sama.Tambahkan kode berikut ke resource
google_iap_web_cloud_run_service_iam_memberdi konfigurasi Terraform Anda.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "/span>PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }<Ganti kode berikut:
PROJECT_ID: nama project.- REGION: region Google Cloud —misalnya,
europe-west1. - SERVICE_NAME: nama layanan Cloud Run Anda.
- PRINCIPAL: ID untuk akun utama,
atau anggota, yang biasanya memiliki formulir berikut:
PRINCIPAL_TYPE:ID. Misalnya,
user:my-user@example.com. Untuk daftar lengkap nilai yang dapat dimiliki PRINCIPAL, lihat referensi Pengikatan Kebijakan.
Tidak ada organisasi
Konsol
Untuk menambahkan atau menghapus akses:
Di konsol Google Cloud , buka halaman Cloud Run:
Klik layanan yang ada yang ingin Anda ubah, lalu klik Security.
Di bagian IAP, klik Edit policy.
Untuk menambahkan akses, masukkan akun utama, dan secara opsional, tingkat akses yang ingin Anda tambahkan, atau biarkan tingkat akses kosong. Untuk melihat dan menambahkan tingkat akses, Anda harus memiliki Peran yang diperlukan untuk Access Context Manager.
Untuk menghapus akses jika hanya ada satu akun utama dalam kebijakan, klik ikon Delete policy di samping Access levels.
Untuk menghapus akun utama satu per satu dari kebijakan, klik ikon X di samping nama akun utama yang ingin Anda hapus.
Untuk menyimpan konfigurasi pengguna, klik Save.
gcloud
Sebelum memulai
- Untuk menambahkan pengguna ke project yang tidak memiliki organisasi, Anda harus terlebih dahulu mengikuti penyiapan satu kali untuk Mengonfigurasi klien OAuth kustom.
Untuk menambahkan atau menghapus akses ke layanan Cloud Run bagi pengguna atau grup perorangan, jalankan salah satu perintah berikut:
Untuk menambahkan akses:
gcloud iap web add-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEUntuk menghapus akses:
gcloud iap web remove-iam-policy-binding \ --member=user:
USER_EMAIL\ --role=roles/iap.httpsResourceAccessor \ --region=REGION\ --resource-type=cloud-run \ --service=SERVICE_NAMEUntuk melihat akses:
gcloud iap web get-iam-policy \ --region=
REGION\ --resource-type=cloud-run \ --service=SERVICE_NAME
Ganti kode berikut:
USER_EMAIL: alamat email pengguna.REGION: nama region Cloud Run Anda.SERVICE_NAME: nama layanan Cloud Run Anda.
Terraform
Sebelum memulai
- Untuk menambahkan akun utama pengguna dari luar organisasi, Anda harus mengonfigurasi klien OAuth terlebih dahulu.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Untuk memberikan akses otoritatif ke daftar akun utama:
Gunakan resource
google_iap_web_cloud_run_service_iam_bindinguntuk memberikan peran ke daftar akun utama yang kredibel. Resource ini memastikan bahwa hanya anggota dalam daftar yang diberi peran. Akun utama lain yang diberi peran akan dihapus.Tambahkan kode berikut ke resource
google_iap_web_cloud_run_service_iam_bindingdi konfigurasi Terraform Anda.resource "google_iap_web_cloud_run_service_iam_binding" "binding" { project = "PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" members = [ "PRINCIPAL_A", "PRINCIPAL_B" ] }Ganti kode berikut:
PROJECT_ID: nama project.REGION: region Google Cloud —misalnya,europe-west1.SERVICE_NAME: nama layanan Cloud Run Anda.PRINCIPAL: ID untuk akun utama, atau anggota, yang biasanya memiliki formulir berikut:PRINCIPAL_TYPE:ID. Misalnya,user:my-user@example.com. Untuk daftar lengkap nilai yang dapat dimilikiPRINCIPAL, lihat referensi Pengikatan Kebijakan.
Untuk memberikan akses bagi satu akun utama:
Gunakan resource
google_iap_web_cloud_run_service_iam_memberuntuk memberikan peran ke satu akun utama tanpa memengaruhi akun utama lain yang mungkin memiliki peran yang sama.Tambahkan kode berikut ke resource
google_iap_web_cloud_run_service_iam_memberdi konfigurasi Terraform Anda.resource "google_iap_web_cloud_run_service_iam_member" "member" { project = "/span>PROJECT_ID" location = "REGION" cloud_run_service_name = "SERVICE_NAME" role = "roles/iap.httpsResourceAccessor" member = "PRINCIPAL" }<Ganti kode berikut:
PROJECT_ID: nama project.REGION: region Google Cloud —misalnya,europe-west1.SERVICE_NAME: nama layanan Cloud Run Anda.PRINCIPAL: ID untuk akun utama, atau anggota, yang biasanya memiliki bentuk berikut:PRINCIPAL_TYPE:ID. Misalnya,user:my-user@example.com. Untuk daftar lengkap nilai yang dapat dimilikiPRINCIPAL, lihat referensi Pengikatan Kebijakan.
Menonaktifkan IAP dari Cloud Run
Anda dapat menonaktifkan IAP menggunakan konsol Google Cloud atau gcloud CLI.
Konsol
Untuk menonaktifkan IAP dari Cloud Run, lakukan hal berikut:
Di konsol Google Cloud , buka halaman Cloud Run:
Pilih layanan yang ingin Anda ubah.
Klik tab Security.
Batalkan pilihan Identity-Aware Proxy (IAP). Layanan Anda dilindungi oleh kebijakan IAM Anda. Namun, jika Anda tidak menggunakan IAM, buat layanan Anda dapat diakses secara publik dengan memilih Allow Public access.
Klik View diff & redeploy, lalu Deploy changes.
gcloud
Untuk menonaktifkan IAP langsung dari Cloud Run, tambahkan flag --no-iap saat men-deploy aplikasi Anda sebagai berikut:
Deploy layanan Cloud Run Anda menggunakan salah satu perintah berikut:
Untuk layanan baru:
gcloud run deploy
SERVICE_NAME\ --region=REGION\ --image=IMAGE_URL\ --no-iapUntuk layanan yang sudah ada:
gcloud run services update
SERVICE_NAME\ --region=REGION\ --no-iapGanti kode berikut:
SERVICE_NAME: nama layanan Cloud Run Anda.REGION: nama region Cloud Run Anda.IMAGE_URL: referensi ke image container, misalnya,us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Untuk memverifikasi bahwa layanan Anda tidak lagi dikonfigurasi dengan IAP yang diaktifkan, jalankan perintah berikut:
gcloud run services describe
SERVICE_NAMEOutput tidak boleh lagi berisi string berikut:
Iap Enabled: true
IAP tidak lagi merutekan semua traffic yang ditujukan untuk layanan Cloud Run yang dikonfigurasi ke IAP untuk autentikasi sebelum diteruskan ke container.
Mengonfigurasi klien OAuth kustom
Sebaiknya Anda menggunakan konsol Google Cloud saat mengaktifkan IAP untuk pertama kalinya. Dengan demikian, Anda dapat membuat kredensial secara otomatis untuk menghindari keharusan membuat klien OAuth kustom secara manual. Saat Anda mengaktifkan IAP di Cloud Run langsung dari konsol Google Cloud , IAP akan otomatis menyiapkan klien OAuth kustom untuk Anda di level project.
Jika Anda menggunakan gcloud CLI untuk mengelola akses bagi pengguna tanpa organisasi, aktifkan IAP di Cloud Run langsung dari konsol Google Cloud atau ikuti langkah-langkah di bagian ini untuk membuat klien OAuth kustom secara manual.
Untuk skenario lanjutan, seperti menyesuaikan layar izin atau mengelola klien OAuth di tingkat organisasi, gunakan langkah-langkah berikut.
Mengonfigurasi brand
Di konsol Google Cloud , buka halaman Branding OAuth:
Klik Mulai.
Isi formulir App Information, lalu klik Next.
Di bagian Audience, pilih External.
Isi bagian formulir lainnya, lalu klik Create.
Membuat klien OAuth kustom secara manual
Jika ini pertama kalinya Anda menyiapkan Google Auth Platform:
Di konsol Google Cloud , buka halaman Clients:
Klik Mulai di halaman ringkasan Google Auth Platform jika diminta.
- Isi detail App information, lalu klik Next.
- Pilih External untuk jenis audiens.
- Isi informasi kontak, setujui persyaratan, lalu klik Create.
- Klik Buat klien.
- Di Application type, pilih aplikasi web dan isi nama klien OAuth Anda.
- Klik Create.
- Catat client ID dan rahasia klien, lalu klik OK.
- Klik nama klien OAuth yang baru dibuat untuk mengeditnya.
- Di kolom Authorized redirect URIs, tambahkan URI berikut:
Gantihttps://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
CLIENT_IDdengan client ID OAuth yang baru saja Anda buat. - Klik Simpan.
Jika Anda sudah menyiapkan Google Auth Platform:
Di konsol Google Cloud , buka halaman Clients:
Klik Buat klien.
Di Application type, pilih aplikasi web dan isi nama klien OAuth Anda.
Isi detail Informasi aplikasi.
Klik Create.
Catat client ID dan rahasia klien, lalu klik OK.
Klik nama klien OAuth yang baru dibuat untuk mengeditnya.
Di kolom Authorized redirect URIs, tambahkan URI berikut:
Gantihttps://iap.googleapis.com/v1/oauth/clientIds/
CLIENT_ID:handleRedirectCLIENT_IDdengan client ID OAuth yang baru saja Anda buat.Klik Simpan.
Menerapkan klien OAuth ke IAP
Anda dapat menerapkan klien OAuth di level project atau organisasi.
Di level project, lakukan langkah-langkah berikut:
Buat file bernama
iap_settings.yamldan tambahkan konten berikut:access_settings: oauth_settings: client_id:
CLIENT_IDclient_secret:CLIENT_SECRETJalankan perintah
gcloud iap settings setuntuk menerapkan klien OAuth di level project:gcloud iap settings set iap_settings.yaml --project=
PROJECT_ID
Ganti kode berikut:
CLIENT_ID: client ID OAuth yang Anda simpan di langkah sebelumnya.CLIENT_SECRET: secret yang Anda simpan di langkah sebelumnya.PROJECT_ID: ID project Anda.
Di tingkat organisasi, lakukan langkah-langkah berikut:
Untuk menerapkan klien OAuth di tingkat organisasi, jalankan perintah
gcloud iap settings set:gcloud iap settings set iap_settings.yaml --organization=
ORGANIZATION_NUMBERGanti kode berikut:
CLIENT_ID: client ID OAuth yang Anda simpan di langkah sebelumnya.CLIENT_SECRET: secret yang Anda simpan di langkah sebelumnya.ORGANIZATION_NUMBER: nomor organisasi Anda.
Pemecahan masalah
Bagian berikut menjelaskan cara memecahkan masalah IAP dengan Cloud Run.
Error akses di luar organisasi
Berikut adalah error yang mungkin Anda alami saat mengonfigurasi akses untuk pengguna di luar organisasi Anda.
Akses pengguna di luar organisasi: Dinonaktifkan
Untuk memastikan akses di luar organisasi dinonaktifkan, sebaiknya nonaktifkan akses tersebut di level project. Kontrol di tingkat lain (layanan, folder, atau organisasi) mungkin tampak dinonaktifkan, meskipun akses tersedia.
Merek saat ini ditetapkan ke internal
Akses di luar organisasi tidak didukung jika merek klien OAuth kustom Anda ditetapkan ke internal.
Untuk memperbarui setelan merek ke eksternal guna mengaktifkan akses bagi akun utama di luar organisasi dengan IAP, selesaikan langkah-langkah berikut:
Di konsol Google Cloud , buka halaman Audiens Google Auth Platform:
Di bagian Jenis pengguna, klik Jadikan eksternal.
Kegagalan Agen Layanan menyebabkan error set IAM
Mengaktifkan IAP pada project baru untuk pertama kalinya dapat menyebabkan error berikut:
Setting IAM permissions failedHal ini karena Agen Layanan Cloud Run gagal. Untuk menyelesaikan masalah ini, aktifkan kembali IAP atau tetapkan kebijakan IAM secara manual.
Langkah berikutnya
- Untuk mengetahui petunjuk tentang cara mengaktifkan IAP dari layanan backend atau load balancer, lihat Mengaktifkan IAP untuk Cloud Run.
- Untuk masalah terkait pengaktifan IAP untuk Cloud Run, lihat Memecahkan masalah error.
- Mengelola akses ke resource yang diamankan IAP.
- Menggunakan kebijakan organisasi untuk mengontrol pengaktifan IAP.