Pertanyaan umum (FAQ) dan pemecahan masalah

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

Aplikasi apa saja yang dapat saya amankan dengan IAP?

IAP dapat digunakan dengan:

  • Lingkungan standar App Engine dan aplikasi lingkungan fleksibel App Engine.
  • Instance Compute Engine dengan layanan backend load balancing HTTP(S).
  • Container 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 setelah login ke aplikasi saya?

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

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

Hal ini dapat disebabkan oleh tidak adanya cookie pada 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 disetel ke true, sedangkan permintaan yang dikirim dengan Fetch API memerlukan opsi credentials yang disetel ke include atau same-origin.

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

Mengapa saya menerima kode status HTTP 401 Tidak Sah dan bukan Pengalihan HTTP 302?

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,*/*" berada di header permintaan.

Mengapa permintaan POST tidak memicu pengalihan?

Untuk memicu pengalihan, pastikan panggilan ke IAP bukan permintaan POST. Browser tidak mengalihkan sebagai respons atas 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 dalam header Authorization: Bearer untuk membuat permintaan terautentikasi ke resource yang diamankan oleh IAP. Dapatkan cookie yang valid dengan memuat ulang sesi.

Dapatkah saya menggunakan IAP jika API telah dinonaktifkan?

Ya, akses ke resource yang diamankan dengan IAP berfungsi dengan API dinonaktifkan, tetapi Anda tidak akan dapat mengubah 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, baca 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 proxy atau server tersebut mengizinkan traffic ke domain tersebut, dan domain tersebut 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 errornya mungkin adalah

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

Jika Anda menggunakan SSH dari browser, pesan errornya adalah

Cloud Identity-Aware Proxy Failed

Tidak ada kode error yang terkait.

Mengapa saya menerima error Server Error?

Jika Anda menerima pesan error berikut, firewall Anda mungkin melarang 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, aplikasi Anda mungkin tidak dapat diakses. Untuk informasi selengkapnya, lihat Menyiapkan load balancer HTTPS eksternal.

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

Mengapa saya menerima error server internal yang berselang-seling?

Menerima pesan error dengan format: An internal server error occurred while authorizing your request. Error code X menunjukkan kegagalan internal. Error internal dengan kode error 1 atau 30 menunjukkan kegagalan backend. Tingkat error backend ini yang rendah sering kali mengindikasikan masalah sementara. Klien harus mencoba lagi permintaan tersebut menggunakan backoff eksponensial.

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 secret atau client ID OAuth Anda kosong. Pastikan bahwa client ID dan rahasia dikonfigurasi dengan benar untuk aplikasi Anda dengan melihat halaman Credentials. Jika client ID dan rahasia Anda tampak dikonfigurasi dengan benar, gunakan metode GET untuk melihat status saat ini dan metode PATCH untuk mereset client ID dan rahasia:
Compute Engine API: GET, PATCH
App Engine API: GET, PATCH
Kode error 9 Pengalihan OAuth tidak selesai. Ini adalah error internal dan telah dicatat dalam log 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 agar berhasil menyelesaikan alur OAuth. Jika Anda menghosting beberapa backend di balik load balancer Google Cloud dan menggunakan aturan penulisan ulang jalur, pastikan kedua backend 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 tidak dikonfigurasi dengan benar. Pastikan bahwa client ID dan rahasia dikonfigurasi dengan benar untuk aplikasi Anda dengan melihat halaman Credentials. Jika client ID dan rahasia Anda tampak dikonfigurasi dengan benar, gunakan metode GET untuk melihat status saat ini dan metode PATCH untuk mereset client ID dan rahasia:
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 Credentials.
Kode error 51 Browser Anda tidak mendukung penggabungan koneksi. Browser terbaru dan terbaru dapat menangani error penggabungan koneksi. Pastikan pengguna akhir menggunakan browser saat ini dan 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 permintaan per menit. Project IAP dibatasi hingga maksimum 360.000 permintaan per menit. Jika Anda mengalami kesalahan ini, kurangi volume permintaan untuk proyek Anda. Anda dapat menghubungi Dukungan Google Cloud jika ada pertanyaan lain.
Kode error 4003 Hal ini dapat berarti instance tidak memproses port yang Anda coba hubungkan, atau firewall ditutup. Salah satu dari masalah tersebut juga dapat menyebabkan kegagalan uji konektivitas startup pada instance VM. Pastikan proses pemrosesan di VM berjalan dan memproses di port yang benar. Selain itu, pastikan firewall Google Cloud dikonfigurasi dengan benar dan buka di port yang ingin Anda hubungkan.
Kode error 4010 Koneksi dibuat, tetapi ditutup oleh instance tujuan. Hal ini biasanya menunjukkan masalah pada instance atau program yang memproses 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 melepaskan dan memasang kembali disk ke VM baru untuk melihat log. Lampirkan log saat menghubungi dukungan pelanggan.
Kode error 4033 Entah Anda tidak memiliki izin untuk mengakses instance, instance tidak ada, atau instance dihentikan. Pastikan Anda menerapkan peran IAP-secured Tunnel User IAM di resource yang dihubungkan dengan melihat halaman Identity-Aware Proxy.
Kode error 4047 Instance tidak ada atau instance dihentikan. Pastikan VM dihidupkan dan telah menyelesaikan proses startup.

Jika Anda tidak dapat menyelesaikan masalah, hubungi dukungan pelanggan dengan memberikan deskripsi error dan respons yang Anda dapatkan dari panggilan GET ke API. Anda dapat menghapus rahasia klien dari respons.