Mengonfigurasi IAP untuk Cloud Run

Halaman ini menjelaskan cara mengaktifkan IAP langsung di layanan Cloud Run dan mengamankan traffic yang ditujukan untuk layanan Cloud Run dengan merutekan ke IAP untuk autentikasi. Dengan mengaktifkan IAP langsung di Cloud Run, 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:

  • 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 di 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 autentikasi mereka sendiri mungkin 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) di project
  • Memberikan akses ke layanan yang mendukung IAP: IAP Policy Admin (roles/iap.admin) di project
  • Buat layanan yang mendukung IAP atau perbarui 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) di project

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 halaman Services Cloud Run:

    Buka Cloud Run

  2. Jika Anda mengonfigurasi layanan baru, klik Deploy container, isi halaman setelan layanan awal sesuai kebutuhan, lalu pilih Require authentication. Pilih Identity-Aware Proxy (IAP).

  3. Jika Anda mengubah layanan yang ada, klik layanan, klik tab Security, lalu pilih Require authentication. Pilih 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 Anda, lihat bagian Pemecahan masalah.

  5. Untuk menyimpan konfigurasi, klik Simpan.

  6. Untuk membuat atau men-deploy layanan, klik Buat atau Deploy.

gcloud

Untuk mengaktifkan IAP langsung dari Cloud Run, tambahkan tanda --iap saat men-deploy aplikasi Anda dan berikan izin pemanggil 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 di 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 aktifkan IAP di Cloud Run terlebih dahulu langsung dari konsol Google Cloud , atau Konfigurasi klien OAuth kustom, lalu tambahkan 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. Memberikan izin pemanggil 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 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 pemanggil ke IAP.

  1. Tambahkan iap_enabled = true ke resource google_cloud_run_v2_service di konfigurasi Terraform Anda untuk mengaktifkan IAP di 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 di 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 prinsipal dari luar organisasi Anda 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.

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

  3. Di bagian IAP, klik Edit kebijakan.

  4. Untuk menambahkan akses, masukkan akun utama, dan secara opsional, tingkat akses yang ingin Anda tambahkan, atau biarkan tingkat akses kosong.

  5. Untuk menghapus akses jika hanya ada satu akun utama dalam kebijakan, klik ikon Hapus kebijakan di samping Tingkat akses.

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

gcloud

Untuk menambahkan atau menghapus akses ke layanan Cloud Run bagi pengguna atau grup tertentu, 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 berwenang. Resource ini memastikan bahwa hanya anggota dalam daftar yang diberi peran. Semua akun utama lain yang diberi peran tersebut 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: Google Cloud region—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.
  • Untuk memberikan akses bagi satu prinsipal:

    Gunakan resource google_iap_web_cloud_run_service_iam_member untuk memberikan peran kepada 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"
      }
      

      Ganti kode berikut:

      • PROJECT_ID: nama project.
      • REGION: Google Cloud region—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.

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

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

    6. Untuk penyiapan tercepat, klik Buat kredensial secara otomatis.

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

    8. Untuk menyimpan konfigurasi, klik Simpan.

    Sekarang Anda dapat kembali ke layanan Cloud Run di Cloud Run untuk menambahkan prinsipal 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 Keamanan.

    3. Di bagian IAP, klik Edit kebijakan.

    4. Untuk menambahkan akses, masukkan akun utama, dan secara opsional, tingkat akses yang ingin Anda tambahkan, atau biarkan tingkat akses kosong.

    5. Untuk menghapus akses jika hanya ada satu akun utama dalam kebijakan, klik ikon Hapus kebijakan di samping Tingkat akses.

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

gcloud

Sebelum memulai

Untuk menambahkan atau menghapus akses ke layanan Cloud Run bagi pengguna atau grup tertentu, 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 berwenang. Resource ini memastikan bahwa hanya anggota dalam daftar yang diberi peran. Akun utama lain yang diberi peran tersebut 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: Google Cloud region—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.
  • Untuk memberikan akses bagi satu prinsipal:

    Gunakan resource google_iap_web_cloud_run_service_iam_member untuk memberikan peran kepada 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"
      }
      

      Ganti kode berikut:

      • PROJECT_ID: nama project.
      • REGION: Google Cloud region—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.

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

  3. Di bagian IAP, klik Edit kebijakan.

  4. Untuk menambahkan akses, masukkan akun utama, dan secara opsional, tingkat akses yang ingin Anda tambahkan, atau biarkan tingkat akses kosong.

  5. Untuk menghapus akses jika hanya ada satu akun utama dalam kebijakan, klik ikon Hapus kebijakan di samping Tingkat akses.

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

gcloud

Sebelum memulai

Untuk menambahkan atau menghapus akses ke layanan Cloud Run bagi pengguna atau grup tertentu, 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 berwenang. Resource ini memastikan bahwa hanya anggota dalam daftar yang diberi peran. Akun utama lain yang diberi peran tersebut 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: Google Cloud region—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.
  • Untuk memberikan akses bagi satu prinsipal:

    Gunakan resource google_iap_web_cloud_run_service_iam_member untuk memberikan peran kepada 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"
      }
      

      Ganti kode berikut:

      • PROJECT_ID: nama project.
      • REGION: Google Cloud region—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. Klik layanan yang ada yang ingin Anda ubah.

  3. Klik Keamanan dan batalkan pilihan IAP. Layanan Anda dilindungi oleh kebijakan IAM Anda. Namun, jika Anda tidak menggunakan IAM, buat layanan Anda dapat diakses secara publik dengan memilih Izinkan akses Publik.

  4. Untuk menyimpan konfigurasi, klik Simpan.

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 meneruskan ke container.

Mengonfigurasi klien OAuth kustom

Sebaiknya gunakan Google Cloud konsol saat mengaktifkan IAP untuk pertama kalinya. Dengan melakukannya, Anda dapat membuat kredensial secara otomatis sehingga tidak perlu 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 tingkat project.

Jika Anda menggunakan gcloud CLI untuk mengelola akses bagi pengguna tanpa organisasi, aktifkan IAP di Cloud Run secara langsung dari Google Cloud konsol 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 merek

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

    Buka Branding

  2. Klik Mulai.

  3. Isi formulir Informasi Aplikasi, lalu klik Berikutnya.

  4. Di bagian Audiens, pilih Eksternal.

  5. Isi bagian formulir lainnya, lalu klik Buat.

Membuat klien OAuth kustom secara manual

  • Jika ini pertama kalinya Anda menyiapkan Platform Autentikasi Google:

    1. Di konsol Google Cloud , buka halaman Clients:

      Buka Klien

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

      1. Lengkapi detail Informasi aplikasi, lalu klik Berikutnya.
      2. Pilih Eksternal untuk jenis audiens.
      3. Isi informasi kontak, setujui persyaratan, lalu klik Buat.
      4. Klik Buat klien.
      5. Di Application type, pilih Web application dan isi nama klien OAuth Anda.
      6. Di kolom URI pengalihan yang diberi otorisasi, tambahkan URI berikut:
        https://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
        Ganti CLIENT_ID dengan client ID OAuth.
      7. Klik Create.
      8. Catat ID dan rahasia klien, lalu klik OK.
  • 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 Web application dan isi nama klien OAuth Anda.

    4. Isi detail Informasi aplikasi.

    5. Di kolom URI pengalihan yang diberi otorisasi, tambahkan URI berikut:

      https://iap.googleapis.com/v1/oauth/clientIds/CLIENT_ID:handleRedirect
      Ganti CLIENT_ID dengan client ID OAuth.

    6. Klik Create.

    7. Catat ID dan rahasia klien, lalu klik OK.

Menerapkan klien OAuth ke IAP

Anda dapat menerapkan klien OAuth di level project atau organisasi.

  • Di tingkat 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 tingkat project:

      gcloud iap settings set iap_settings.yaml --project=PROJECT_ID

    Ganti kode berikut:

    • CLIENT_ID: client ID OAuth yang Anda simpan pada 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: ID klien OAuth yang Anda simpan pada 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 di tingkat project. Kontrol di tingkat lain (layanan, folder, atau organisasi) mungkin tampak dinonaktifkan, meskipun akses tersedia.

Merek saat ini disetel ke internal

Akses di luar organisasi tidak didukung jika merek klien OAuth kustom Anda disetel ke internal.

Untuk mengupdate setelan merek menjadi eksternal agar dapat mengaktifkan akses untuk prinsipal di luar organisasi dengan IAP, selesaikan langkah-langkah berikut:

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

    Buka Audiens

  2. Di bagian User type, klik Make external.

Kegagalan Agen Layanan menyebabkan error IAM yang ditetapkan

Mengaktifkan IAP di project baru untuk pertama kalinya dapat menyebabkan error berikut:

Setting IAM permissions failed

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

Langkah berikutnya