Pertanyaan umum (FAQ) dan pemecahan masalah

Artikel ini berisi pertanyaan umum (FAQ) tentang Identity-Aware Proxy (IAP).

Aplikasi apa yang dapat saya amankan dengan IAP?

IAP dapat digunakan dengan:

  • Aplikasi lingkungan standar App Engine dan lingkungan fleksibel App Engine.
  • Instance Compute Engine dengan layanan backend load balancing HTTP(S).
  • Penampung Google Kubernetes Engine.
  • Aplikasi Cloud Run dengan layanan backend load balancing HTTP(S).

Saat ini, IAP tidak dapat digunakan dengan Cloud CDN.

Mengapa ada # di akhir URL saya setelah login ke aplikasi?

Di beberapa browser dan dalam kondisi tertentu, # dapat ditambahkan ke URL setelah autentikasi. Hal ini normal dan tidak akan menyebabkan masalah saat login.

Mengapa permintaan saya gagal dan menampilkan kode status 405 Method Not Allowed?

Hal ini dapat disebabkan karena tidak melampirkan cookie ke permintaan Anda. Secara default, metode JavaScript tidak melampirkan cookie ke permintaan.

Cara Anda menyertakan cookie bervariasi di antara metode permintaan. Misalnya, permintaan yang dikirim dengan objek XMLHttpRequest memerlukan properti withCredentials yang ditetapkan ke true, sedangkan permintaan yang dikirim dengan Fetch API memerlukan opsi credentials yang ditetapkan ke include atau same-origin.

Untuk informasi tentang penanganan error yang hanya terjadi setelah beberapa waktu berlalu, lihat Mengelola sesi IAP.

Mengapa saya menerima kode status HTTP 401 Unauthorized, bukan HTTP 302 Redirect?

IAP merespons dengan kode status 302 Redirect saat klien dikonfigurasi untuk menangani pengalihan. Untuk menunjukkan bahwa klien Anda dapat menangani pengalihan, pastikan HTTP Accept="text/html,*/*" ada di header permintaan.

Mengapa permintaan POST tidak memicu pengalihan?

Untuk memicu pengalihan, pastikan panggilan ke IAP bukan permintaan POST. Browser tidak mengalihkan sebagai respons terhadap permintaan POST. Oleh karena itu, IAP merespons dengan kode status 401 Unauthorized, bukan 302 Redirect.

Jika Anda memerlukan IAP untuk menayangkan permintaan POST, pastikan token ID atau cookie yang valid diteruskan di header permintaan.

Sertakan token ID di header Authorization: Bearer untuk membuat permintaan yang diautentikasi ke resource yang diamankan IAP. Dapatkan cookie yang valid dengan memuat ulang sesi.

Dapatkah saya menggunakan IAP jika saya telah menonaktifkan API?

Ya, akses ke resource yang diamankan dengan IAP berfungsi dengan API dinonaktifkan, tetapi Anda tidak akan dapat melakukan perubahan pada izin IAM.

Bagaimana cara membatasi pengguna dengan peran Pemilik agar tidak menggunakan IAP untuk TCP?

Pertama, hindari penggunaan peran Pemilik (roles/owner) sebanyak mungkin. Peran Pemilik memberikan izin yang luas di seluruh Google Cloud. Menetapkan peran dan izin yang lebih terperinci dapat meningkatkan keamanan project Anda. Untuk mempelajari lebih lanjut, lihat praktik terbaik IAM.

Jika tidak dapat mengurangi penggunaan peran Pemilik, Anda dapat memblokir IAP untuk TCP menggunakan Aturan firewall.

Domain apa yang digunakan IAP untuk TCP?

IAP menggunakan domain berikut, yang dimiliki oleh Google:

Jika Anda terhubung melalui server proxy atau firewall, pastikan server atau firewall tersebut mengizinkan traffic ke domain ini, dan tidak memblokir penggunaan koneksi WebSocket.

Jika Anda memblokir traffic ke domain ini, Anda tidak akan dapat menggunakan IAP untuk TCP. Anda mungkin menerima salah satu dari beberapa pesan error.

Jika Anda menggunakan gcloud, pesan error-nya mungkin

Error while connecting [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

Jika Anda menggunakan SSH dari browser, pesan error-nya adalah

Cloud Identity-Aware Proxy Failed

Tidak ada kode error terkait.

Mengapa saya menerima error Server Error?

Jika Anda menerima pesan error berikut, firewall Anda mungkin tidak mengizinkan IP 130.211.0.0/22 dan 35.191.0.0/16:

Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.

Jika IP load balancer 130.211.0.0/22 dan 35.191.0.0/16 tidak dapat menjangkau backend Anda, aplikasi Anda mungkin tidak dapat diakses. Untuk informasi selengkapnya, lihat Menyiapkan load balancer HTTPS eksternal.

Jika Anda menggunakan IAP untuk TCP guna terhubung ke VM tertentu, VM harus menerima koneksi dari alamat dalam rentang 35.235.240.0/20.

Mengapa saya menerima error server internal yang terputus-putus?

Pesan error dalam format berikut menunjukkan kegagalan internal:

An internal server error occurred while authorizing your request. Error code X

Error internal dengan kode error 1, 30, 62, 63, 64, atau 703 menunjukkan kegagalan backend. Frekuensi error backend yang rendah ini sering kali menunjukkan masalah sementara. Klien harus mencoba ulang permintaan menggunakan backoff eksponensial.

Bagaimana cara mengatasi error kuota terlampaui (Kode error 429)?

Kode error 429 menunjukkan bahwa traffic ke aplikasi dibatasi oleh IAP. IAP menerapkan batas 360.000 permintaan per menit per project. Jika ada beberapa aplikasi yang dihosting dalam satu project, kuota akan diterapkan ke total permintaan yang diterima oleh semua aplikasi yang dilindungi IAP dalam project.

Jika Anda mengalami error kuota terlampaui dari IAP, berikut beberapa teknik yang dapat Anda terapkan untuk mengurangi masalah tersebut. * Pengujian beban di instance produksi tidak direkomendasikan. Jika peningkatan beban disebabkan oleh pengujian beban, sebaiknya temukan jalur jaringan alternatif ke aplikasi Anda yang tidak memanggil IAP.

  • Jika aplikasi Anda menerima traffic layanan ke layanan yang tinggi, sebaiknya Anda menerapkan backoff eksponensial di sisi klien untuk menangani error 429 dengan baik.

  • Jika ada beberapa aplikasi dengan traffic tinggi dalam project yang sama, sebaiknya pindahkan beberapa aplikasi ke project lain.

  • Jika aplikasi dibuat sebagai API, bukan aplikasi web, pertimbangkan untuk menggunakan solusi gateway API seperti Apigee.

  • Jika alasan traffic yang tinggi adalah pertumbuhan organik, hubungi Dukungan Google Cloud dengan permintaan untuk peningkatan batas kuota.

Kode error

Tabel berikut mencantumkan kode dan pesan error umum yang ditampilkan saat mengonfigurasi dan menggunakan IAP.

Kode atau pesan error Deskripsi Pemecahan masalah
Kode error 7 Nilai rahasia atau client ID OAuth Anda kosong. Pastikan client ID dan secret Anda dikonfigurasi dengan benar untuk aplikasi Anda dengan melihat halaman Kredensial. Jika client ID dan secret Anda tampaknya dikonfigurasi dengan benar, gunakan metode GET untuk melihat status saat ini dan metode PATCH untuk mereset client ID dan secret:
Compute Engine API: GET, PATCH
App Engine API: GET, PATCH
Kode error 9 Pengalihan OAuth tidak selesai. Ini adalah error internal dan telah dicatat untuk ditinjau.
Kode error 9 (Dengan aturan penulisan ulang jalur) Pengalihan OAuth tidak selesai. Aturan penulisan ulang jalur Load Balancer Google Cloud mengganggu kemampuan IAP untuk berhasil menyelesaikan alur OAuth. Jika Anda menghosting beberapa backend di balik load balancer Google Cloud dan menggunakan aturan penulisan ulang jalur, pastikan kedua backend tersebut menggunakan client ID OAuth yang sama untuk IAP. Anda dapat mengubah client ID OAuth untuk layanan backend menggunakan perintah gcloud compute backend-services update.
Kode error 11 Client ID OAuth Anda salah dikonfigurasi. Pastikan client ID dan secret Anda dikonfigurasi dengan benar untuk aplikasi Anda dengan melihat halaman Kredensial. Jika client ID dan secret Anda tampaknya dikonfigurasi dengan benar, gunakan metode GET untuk melihat status saat ini dan metode PATCH untuk mereset client ID dan secret:
Compute Engine API: GET, PATCH
App Engine API: GET, PATCH
Kode error 13 Token OpenID Connect (OIDC) Anda tidak valid. Pastikan client ID yang dikonfigurasi untuk IAP tidak dihapus dengan melihat halaman Kredensial.
Kode error 51 Browser Anda tidak mendukung penggabungan koneksi. Browser terbaru dapat menangani error penggabungan koneksi. Pastikan pengguna akhir menggunakan browser terbaru. Untuk informasi selengkapnya, lihat Membatasi akses resource ke domain tertentu.
Kode error 52 Nama host yang diberikan tidak cocok dengan sertifikat SSL di server. Administrator sistem mungkin perlu memperbarui sertifikat SSL. Untuk informasi selengkapnya, lihat Membatasi akses resource ke domain tertentu.
Kode error 53 Nama host tidak cocok dengan domain yang diizinkan oleh administrator IAP. Administrator harus memperbarui daftar domain yang diizinkan untuk menyertakan nama host Anda. Untuk informasi selengkapnya, lihat Membatasi akses resource ke domain tertentu.
Kode error 429 Project Anda melebihi nilai minimum per menit untuk permintaan. Project IAP dibatasi hingga maksimum 360.000 permintaan per menit. Jika Anda mengalami error ini, kurangi volume permintaan untuk project Anda. Anda dapat menghubungi Dukungan Google Cloud jika ada pertanyaan tambahan.
Kode error 700, 701 Workforce pool yang Anda konfigurasikan tidak memiliki penyedia (700) atau lebih dari satu penyedia (701). IAP memerlukan tepat satu penyedia dalam kumpulan tenaga kerja untuk menggunakan Workforce Identity Federation. Lihat Batasan saat menggunakan kumpulan tenaga kerja.
Kode error 705 Client ID OAuth Anda untuk menggunakan IAP dengan Workforce Identity Federation kosong. Pastikan langkah-langkah Membuat client ID dan secret OAuth serta Memperbarui setelan IAP diikuti.
Kode error 708 Kumpulan tenaga kerja Anda tidak ada atau namanya tidak dalam format yang benar. Pastikan kumpulan tenaga kerja Anda ada dan namanya dalam format berikut: locations/global/workforcePools/WORKFORCE_POOL_ID.
Kode error 4003 Hal ini mungkin berarti instance tidak memproses port yang Anda coba hubungkan atau firewall ditutup. Salah satu masalah tersebut juga dapat menyebabkan uji konektivitas startup ke instance VM gagal. Pastikan proses pemrosesan di VM berjalan dan memproses di port yang benar. Selain itu, pastikan firewall Google Cloud Anda dikonfigurasi dengan benar dan terbuka di port yang Anda gunakan untuk terhubung.
Kode error 4010 Koneksi dibuat, tetapi ditutup oleh instance tujuan. Hal ini biasanya menunjukkan masalah pada instance atau program yang memproses di port tujuan. Reset instance. Jika Anda menggunakan SSH untuk terhubung, periksa log auth.log untuk menemukan error yang tidak terduga. Lokasi default untuk file log adalah /var/log/. Jika Anda tidak dapat mengakses log menggunakan SSH, coba gunakan konsol serial atau lepaskan dan pasang kembali disk ke VM baru untuk melihat log. Lampirkan log saat menghubungi dukungan pelanggan.
Kode error 4033 Anda tidak memiliki izin untuk mengakses instance, instance tidak ada, atau instance dihentikan. Pastikan Anda memiliki peran IAM Tunnel User yang diamankan IAP yang diterapkan pada resource yang Anda hubungkan dengan melihat halaman Identity-Aware Proxy.
Kode error 4047 Instance tidak ada, atau instance dihentikan. Pastikan VM dinyalakan dan telah menyelesaikan startup-nya.

Jika Anda tidak dapat menyelesaikan masalah, atau tidak melihat error Anda tercantum di halaman ini, hubungi Cloud Customer Care. Berikan deskripsi error dan respons yang Anda dapatkan dari panggilan GET ke API. Pastikan Anda menghapus rahasia klien dari respons.