Ringkasan Identity-Aware Proxy

Halaman ini menjelaskan konsep dasar Identity-Aware Proxy (IAP), sebuah layanan global Google Cloud .

Dengan IAP, Anda dapat membuat lapisan otorisasi pusat untuk aplikasi yang diakses oleh HTTPS. Dengan begitu, Anda dapat menggunakan model kontrol akses tingkat aplikasi, bukan mengandalkan firewall tingkat jaringan.

Kebijakan IAP diskalakan di seluruh organisasi Anda. Anda dapat menentukan kebijakan akses secara terpusat dan menerapkannya ke semua aplikasi dan resource Anda. Saat Anda menugaskan tim khusus untuk membuat dan menerapkan kebijakan, Anda melindungi project dari definisi atau penerapan kebijakan yang salah di aplikasi mana pun.

Kapan harus menggunakan IAP

Gunakan IAP jika Anda ingin menerapkan kebijakan kontrol akses untuk aplikasi dan resource. IAP berfungsi dengan header bertanda tangan atau Users API lingkungan standar App Engine untuk mengamankan aplikasi Anda. Dengan IAP, Anda dapat menyiapkan akses aplikasi berbasis grup: resource dapat diakses oleh karyawan dan tidak dapat diakses oleh kontraktor, atau hanya dapat diakses oleh departemen tertentu.

Cara kerja IAP

Jika aplikasi atau resource dilindungi oleh IAP, aplikasi atau resource tersebut hanya dapat diakses melalui proxy oleh akun utama, yang juga dikenal sebagai pengguna, yang memiliki peran Identity and Access Management (IAM) yang benar. Saat Anda memberi akses ke aplikasi atau resource oleh IAP kepada pengguna, pengguna tersebut akan berada di bawah kontrol akses terperinci yang diterapkan oleh produk yang digunakan tanpa memerlukan VPN. Saat pengguna mencoba mengakses resource yang diamankan IAP, IAP akan melakukan pemeriksaan autentikasi dan otorisasi.

App Engine
jalur permintaan ke App Engine saat menggunakan Cloud IAP
Cloud Run
jalur permintaan ke Cloud Run saat menggunakan Cloud IAP
Compute Engine
jalur permintaan ke Compute Engine dan Kubernetes Engine saat menggunakan Cloud IAP
GKE
jalur permintaan ke Compute Engine dan Kubernetes Engine saat menggunakan Cloud IAP
Lokal
jalur permintaan ke aplikasi lokal saat menggunakan Cloud IAP

Autentikasi

Permintaan ke resource Google Cloud Anda masuk melalui Cloud Run, App Engine, dan Cloud Load Balancing (load balancing HTTP(S) eksternal dan internal). Kode infrastruktur penyajian untuk produk ini memeriksa apakah IAP diaktifkan untuk aplikasi atau layanan backend. Jika IAP diaktifkan, informasi tentang resource yang dilindungi akan dikirim ke server autentikasi IAP. Informasi ini mencakup informasi seperti Google Cloud nomor project, URL permintaan, dan kredensial IAP apa pun di header permintaan atau cookie.

IAP kemudian memeriksa apakah pengguna sudah login. Jika pengguna tidak login, browsernya akan dialihkan ke salah satu metode login berikut yang didukung IAP:

  • Akun Google: Pengguna Google Cloud Anda yang memiliki Akun Google akan dialihkan melalui alur login Akun Google untuk mengakses Google Cloud.
  • Workforce Identity Federation: Pengguna Google Cloud Anda di penyedia identitas eksternal dialihkan melalui login IdP mereka untuk mengakses Google Cloud.
  • Identity Platform: Pelanggan Anda yang menggunakan email dan sandi atau login media sosial, seperti Facebook, Apple, dan Google (Gmail) untuk mengakses aplikasi Anda.

Setelah autentikasi, browser pengguna menyimpan token dalam cookie browser untuk login di masa mendatang.

Jika kredensial permintaan valid, server autentikasi akan menggunakan kredensial tersebut untuk mendapatkan identitas pengguna (alamat email dan ID pengguna). Server autentikasi kemudian menggunakan identitas tersebut untuk memeriksa peran IAM pengguna dan memeriksa apakah pengguna diizinkan untuk mengakses resource.

Jika Anda menggunakan Compute Engine atau Google Kubernetes Engine, pengguna yang dapat mengakses port penyaluran aplikasi Virtual Machine (VM) dapat mengabaikan autentikasi IAP. Aturan firewall Compute Engine dan GKE tidak dapat melindungi dari akses dari kode yang berjalan di VM yang sama dengan aplikasi yang diamankan IAP. Aturan firewall dapat melindungi dari akses dari VM lain, tetapi hanya jika dikonfigurasi dengan benar. Pelajari tanggung jawab Anda untuk memastikan keamanan.

Jika menggunakan Cloud Run, Anda dapat mengaktifkan IAP dengan cara berikut:

  • Langsung di layanan Cloud Run Anda. Hal ini memungkinkan IAP melindungi semua jalur traffic masuk ke Cloud Run, termasuk URL yang ditetapkan secara otomatis dan URL load balancer yang dikonfigurasi. Konfigurasi ini berguna jika Anda memiliki satu layanan Cloud Run untuk mengaktifkan IAP.
  • Melalui load balancer dengan backend Cloud Run. Konfigurasi ini berguna jika Anda memiliki beberapa layanan Cloud Run di berbagai region dengan satu load balancer global. Dalam konfigurasi ini, URL yang ditetapkan secara otomatis tidak dilindungi oleh IAP dan mungkin dapat diakses secara langsung. Pelajari lebih lanjut tanggung jawab Anda untuk memastikan keamanan.

Jika layanan Cloud Run berjalan dengan load balancer, jangan aktifkan IAP di load balancer dan layanan Cloud Run.

Pelajari lebih lanjut Workforce Identity Federation. Pelajari cara mengonfigurasi IAP dengan Workforce Identity Federation. Atau, jika ingin menyinkronkan identitas eksternal ke Akun Google-nya sendiri, Anda dapat menggunakan Google Cloud Directory Sync untuk menyinkronkan dengan IdP Anda.

Otorisasi

Setelah autentikasi, IAP menerapkan kebijakan IAM yang relevan untuk memeriksa apakah pengguna diizinkan untuk mengakses resource yang diminta. Jika pengguna memiliki peran IAP-secured Web App User di project konsolGoogle Cloud tempat resource berada, mereka diizinkan untuk mengakses aplikasi. Untuk mengelola daftar peran IAP-secured Web App User, gunakan panel IAP di konsol Google Cloud .

Saat Anda mengaktifkan IAP untuk resource, IAP akan otomatis membuat client ID dan rahasia OAuth 2.0. Jika Anda menghapus kredensial OAuth 2.0 yang dibuat secara otomatis, IAP tidak akan berfungsi dengan benar. Anda dapat melihat dan mengelola kredensial OAuth 2.0 di konsol API & layananGoogle Cloud .

Akses kontekstual

Sebagai bagian dari langkah otorisasi, Anda dapat menggunakan akses kontekstual untuk memberikan akses yang aman ke jenis resource berikut:

Konsol dan APIGoogle Cloud
  • Lapisan pertahanan pertama dalam melindungi akses infrastruktur ke Google Cloud.
  • Akses kontekstual Google Cloud lanjutan ke pengguna.
Virtual Machines (VMs)
  • Mengaktifkan akses SSH/RDP administratif ke VM di Google Cloud dan di cloud lainnya.

  • Memungkinkan Anda menerapkan kontrol kontekstual yang kuat untuk membatasi akses hanya kepada administrator yang ditunjuk.

Aplikasi web
  • Menyediakan otorisasi dan autentikasi untuk aplikasi web yang dihosting di Google Cloud dan cloud lainnya.

  • Memberikan otorisasi berkelanjutan untuk mencegah akses tidak sah dan kebocoran data.

Tanggung jawab Anda

IAP mengamankan autentikasi dan otorisasi semua permintaan ke Cloud Run, App Engine, Cloud Load Balancing (HTTPS), dan load balancing HTTP internal.

Untuk memastikan keamanan, Anda harus melakukan tindakan pencegahan berikut:

  • Jika Anda mengaktifkan IAP di load balancer, verifikasi apakah resource backend dapat diakses secara langsung.

    • Jika resource backend adalah VM, konfigurasikan aturan firewall Anda untuk melindungi dari traffic yang tidak masuk melalui load balancer. IAP tidak melindungi dari aktivitas dalam suatu project, seperti VM lain dalam project tersebut.

    • Jika resource backend adalah layanan Cloud Run, Anda dapat menonaktifkan URL run.app untuk memastikan bahwa semua traffic masuk melalui load balancer. Jika Anda memilih untuk membiarkan URL run.app diaktifkan, Anda harus menggunakan kontrol ingress untuk memblokir traffic dari luar jaringan Anda.

  • Update aplikasi Anda untuk menggunakan header bertanda tangan atau gunakan Users API lingkungan standar App Engine.

Langkah berikutnya