Mengonfigurasi IAP untuk Cloud Run

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

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:
  • 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:

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:

  1. Di konsol Google Cloud , buka Cloud Run:

    Buka Cloud Run

  2. Pilih Services dari menu navigasi Cloud Run:

    1. Jika Anda mengonfigurasi layanan baru, klik Deploy container dan isi halaman setelan layanan awal.

    2. Jika Anda mengonfigurasi layanan yang ada, klik layanan tersebut, lalu klik tab Security.

  3. Pilih Require authentication, lalu pilih Identity-Aware Proxy (IAP).

  4. 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.

  5. 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:

  1. 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 \
      --iap

    Jika 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 \
      --iap

    Ganti 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 format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
    • PROJECT_NUMBER: Nomor project Google Cloud Anda.
  2. 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.invoker

    Ganti 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.
  3. Opsional. Untuk memberikan akses pengguna, lihat Mengelola akses pengguna atau grup untuk IAP.

  4. Untuk memverifikasi bahwa layanan Anda dikonfigurasi dengan IAP yang diaktifkan, jalankan perintah berikut:

    gcloud run services describe SERVICE_NAME

    Output 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.

  1. Tambahkan iap_enabled = true ke resource google_cloud_run_v2_service di 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"
        }
      }
    }
    
  2. Tambahkan kode berikut untuk memberikan peran roles/run.invoker kepada 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_NUMBER dengan nomor project Anda.

  3. Opsional. Untuk mengambil data kebijakan IAM saat ini, tambahkan kode berikut ke resource google_cloud_run_v2_service_iam_policy dalam 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:

  1. Di konsol Google Cloud , buka halaman Cloud Run:

    Buka Cloud Run

  2. Klik layanan yang ada yang ingin Anda ubah, lalu klik Security.

  3. Di bagian Identity-Aware Proxy (IAP), klik Edit policy.

  4. 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.

  5. Untuk menghapus akses jika hanya ada satu akun utama dalam kebijakan, klik ikon Delete policy di samping Access levels.

  6. Untuk menghapus akun utama satu per satu dari kebijakan, klik ikon X di samping nama akun utama yang ingin Anda hapus.

  7. 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_NAME
  • Untuk 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_NAME
  • Untuk 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_binding untuk 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.

    1. Tambahkan kode berikut ke resource google_iap_web_cloud_run_service_iam_binding di 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 dimiliki PRINCIPAL, lihat referensi Pengikatan Kebijakan.
  • Untuk memberikan akses bagi satu akun utama:

    Gunakan resource google_iap_web_cloud_run_service_iam_member untuk memberikan peran ke satu akun utama tanpa memengaruhi akun utama lain yang mungkin memiliki peran yang sama.

    1. Tambahkan kode berikut ke resource google_iap_web_cloud_run_service_iam_member di konfigurasi Terraform Anda.

      resource "google_iap_web_cloud_run_service_iam_member" "member" {
        project = "PROJECT_ID"
        location = "REGION"
        cloud_run_service_name = "SERVICE_NAME"
        role = "roles/iap.httpsResourceAccessor"
        member = "PRINCIPAL"
      }</span>
      

      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.

Di luar organisasi

Konsol

  • Untuk menambahkan pengguna dari luar organisasi Anda menggunakan IAP, selesaikan proses penyiapan satu kali berikut:

    1. Di konsol Google Cloud , buka halaman Cloud Run:

      Buka Cloud Run

    2. Klik layanan yang ada yang ingin Anda ubah, lalu klik Security.

    3. Di halaman detail keamanan layanan Cloud Run Anda, di bagian IAP, klik Edit policy.

    4. Klik Configure in IAP. Tindakan ini akan membuka halaman setelan resource di IAP.

    5. Klik Configure consent screen untuk mengonfigurasi layar izin OAuth Anda. Untuk jenis audiens, pilih External.

    6. Untuk penyiapan tercepat, klik Buat kredensial otomatis.

    7. Atau, ikuti petunjuk untuk Membuat client ID OAuth. Pilih Custom OAuth, lalu masukkan client ID dan rahasia kustom Anda.

    8. 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:

    1. Di konsol Google Cloud , buka halaman Cloud Run:

      Buka Cloud Run

    2. Klik layanan yang ada yang ingin Anda ubah, lalu klik Security.

    3. Di bagian IAP, klik Edit policy.

    4. 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.

    5. Untuk menghapus akses jika hanya ada satu akun utama dalam kebijakan, klik ikon Delete policy di samping Access levels.

    6. Untuk menghapus akun utama satu per satu dari kebijakan, klik ikon X di samping nama akun utama yang ingin Anda hapus.

    7. Untuk menyimpan konfigurasi pengguna, klik Save.

gcloud

Sebelum memulai

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_NAME
  • Untuk 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_NAME
  • Untuk 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 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_binding untuk 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.

    1. Tambahkan kode berikut ke resource google_iap_web_cloud_run_service_iam_binding di 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 dimiliki PRINCIPAL, lihat referensi Pengikatan Kebijakan.
  • Untuk memberikan akses bagi satu akun utama:

    Gunakan resource google_iap_web_cloud_run_service_iam_member untuk memberikan peran ke satu akun utama tanpa memengaruhi akun utama lain yang mungkin memiliki peran yang sama.

    1. Tambahkan kode berikut ke resource google_iap_web_cloud_run_service_iam_member di konfigurasi Terraform Anda.

      resource "google_iap_web_cloud_run_service_iam_member" "member" {
        project = "PROJECT_ID"
        location = "REGION"
        cloud_run_service_name = "SERVICE_NAME"
        role = "roles/iap.httpsResourceAccessor"
        member = "PRINCIPAL"
      }</span>
      

      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:

  1. Di konsol Google Cloud , buka halaman Cloud Run:

    Buka Cloud Run

  2. Klik layanan yang ada yang ingin Anda ubah, lalu klik Security.

  3. Di bagian IAP, klik Edit policy.

  4. 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.

  5. Untuk menghapus akses jika hanya ada satu akun utama dalam kebijakan, klik ikon Delete policy di samping Access levels.

  6. Untuk menghapus akun utama satu per satu dari kebijakan, klik ikon X di samping nama akun utama yang ingin Anda hapus.

  7. 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_NAME
  • Untuk 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_NAME
  • Untuk 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 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_binding untuk 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.

    1. Tambahkan kode berikut ke resource google_iap_web_cloud_run_service_iam_binding di 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 dimiliki PRINCIPAL, lihat referensi Pengikatan Kebijakan.
  • Untuk memberikan akses bagi satu akun utama:

    Gunakan resource google_iap_web_cloud_run_service_iam_member untuk memberikan peran ke satu akun utama tanpa memengaruhi akun utama lain yang mungkin memiliki peran yang sama.

    1. Tambahkan kode berikut ke resource google_iap_web_cloud_run_service_iam_member di konfigurasi Terraform Anda.

      resource "google_iap_web_cloud_run_service_iam_member" "member" {
        project = "PROJECT_ID"
        location = "REGION"
        cloud_run_service_name = "SERVICE_NAME"
        role = "roles/iap.httpsResourceAccessor"
        member = "PRINCIPAL"
      }</span>
      

      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 dimiliki PRINCIPAL, 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:

  1. Di konsol Google Cloud , buka halaman Cloud Run:

    Buka Cloud Run

  2. Pilih layanan yang ingin Anda ubah.

  3. Klik tab Security.

  4. 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.

  5. 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:

  1. Deploy layanan Cloud Run Anda menggunakan salah satu perintah berikut:

    Untuk layanan baru:

    gcloud run deploy SERVICE_NAME \
      --region=REGION \
      --image=IMAGE_URL \
      --no-iap

    Untuk layanan yang sudah ada:

    gcloud run services update SERVICE_NAME \
      --region=REGION \
      --no-iap

    Ganti 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 format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  2. Untuk memverifikasi bahwa layanan Anda tidak lagi dikonfigurasi dengan IAP yang diaktifkan, jalankan perintah berikut:

    gcloud run services describe SERVICE_NAME

    Output 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

  1. Di konsol Google Cloud , buka halaman Branding OAuth:

    Buka Branding

  2. Klik Mulai.

  3. Isi formulir App Information, lalu klik Next.

  4. Di bagian Audience, pilih External.

  5. Isi bagian formulir lainnya, lalu klik Create.

Membuat klien OAuth kustom secara manual

  • Jika ini pertama kalinya Anda menyiapkan Google Auth Platform:

    1. Di konsol Google Cloud , buka halaman Clients:

      Buka Klien

    2. Klik Mulai di halaman ringkasan Google Auth Platform jika diminta.

      1. Isi detail App information, lalu klik Next.
      2. Pilih External untuk jenis audiens.
      3. Isi informasi kontak, setujui persyaratan, lalu klik Create.
      4. Klik Buat klien.
      5. Di Application type, pilih aplikasi web dan isi nama klien OAuth Anda.
      6. Klik Create.
      7. Catat client ID dan rahasia klien, lalu klik OK.
      8. Klik nama klien OAuth yang baru dibuat untuk mengeditnya.
      9. Di kolom Authorized redirect URIs, tambahkan URI berikut:
        https://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
        Ganti CLIENT_ID dengan client ID OAuth yang baru saja Anda buat.
      10. Klik Simpan.
  • Jika Anda sudah menyiapkan Google Auth Platform:

    1. Di konsol Google Cloud , buka halaman Clients:

      Buka Klien

    2. Klik Buat klien.

    3. Di Application type, pilih aplikasi web dan isi nama klien OAuth Anda.

    4. Isi detail Informasi aplikasi.

    5. Klik Create.

    6. Catat client ID dan rahasia klien, lalu klik OK.

    7. Klik nama klien OAuth yang baru dibuat untuk mengeditnya.

    8. Di kolom Authorized redirect URIs, tambahkan URI berikut:

      https://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
      Ganti CLIENT_ID dengan client ID OAuth yang baru saja Anda buat.

    9. Klik Simpan.

Menerapkan klien OAuth ke IAP

Anda dapat menerapkan klien OAuth di level project atau organisasi.

  • Di level project, lakukan langkah-langkah berikut:

    1. Buat file bernama iap_settings.yaml dan tambahkan konten berikut:

      access_settings:
        oauth_settings:
          client_id: CLIENT_ID
          client_secret: CLIENT_SECRET
    2. Jalankan perintah gcloud iap settings set untuk 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:

    1. Untuk menerapkan klien OAuth di tingkat organisasi, jalankan perintah gcloud iap settings set:

      gcloud iap settings set iap_settings.yaml --organization=ORGANIZATION_NUMBER

      Ganti 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:

  1. Di konsol Google Cloud , buka halaman Audiens Google Auth Platform:

    Buka Audiens

  2. 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 failed

Hal ini karena Agen Layanan Cloud Run gagal. Untuk menyelesaikan masalah ini, aktifkan kembali IAP atau tetapkan kebijakan IAM secara manual.

Langkah berikutnya