Mengelola akses ke resource yang diamankan oleh IAP

Halaman ini menjelaskan cara mengelola akses individu atau grup ke resource yang diamankan Identity-Aware Proxy (IAP) di tingkat resource.

Ringkasan

Dengan IAP, Anda dapat mengonfigurasi kebijakan IAP untuk resource Cloud Run dan individual di project Google Cloud. Beberapa aplikasi dalam sebuah project masing-masing dapat memiliki kebijakan akses yang berbeda. Ini mencakup project yang memiliki aplikasi Compute Engine, Google Kubernetes Engine, dan App Engine. Untuk aplikasi App Engine, setiap versi dan layanan dapat menerapkan kebijakan akses yang berbeda.

Untuk mengelola level project dan akses yang lebih tinggi, gunakan halaman admin IAM. Daftar pengguna yang memiliki akses ("utama") di level project berlaku untuk semua resource yang diamankan oleh IAP dalam project.

Sebelum memulai

Sebelum memulai, Anda akan memerlukan hal berikut:

  • Resource IAP yang diamankan yang ingin Anda tambahkan akses individu atau grup.
  • Nama pengguna atau grup yang ingin Anda tambahkan aksesnya.

Mengaktifkan dan menonaktifkan IAP

Untuk mengaktifkan dan menonaktifkan IAP, diperlukan izin tertentu. Tabel berikut menunjukkan izin yang diperlukan untuk setiap jenis aplikasi.

Jenis aplikasi Perlu izin
App Engine appengine.applications.update
Compute Engine, Google Kubernetes Engine, atau Cloud Run compute.backendServices.update

Izin ini diberikan berdasarkan peran seperti Editor Project, Admin App Engine, dan Admin Jaringan Compute. Meskipun peran ini memungkinkan pengaktifan dan penonaktifan IAP, peran tersebut tidak memiliki izin yang diperlukan untuk mengubah kebijakan akses.

Selain itu, mengaktifkan IAP dengan Konsol Google Cloud mungkin juga memerlukan izin clientauthconfig.clients.create dan clientauthconfig.clients.getWithSecret. Izin ini diberikan oleh peran Project Editor.

Untuk mempelajari lebih lanjut cara memberikan peran, lihat Memberikan, mengubah, dan mencabut akses.

Mengelola akses di konsol Google Cloud

Untuk mengontrol akses ke resource yang diamankan IAP dengan Konsol Google Cloud, ikuti proses penambahan atau penghapusan akses.

Tambahkan akses

  1. Buka halaman Identity-Aware Proxy.
    Buka halaman Identity-Aware Proxy

  2. Pilih resource yang ingin diamankan dengan IAP. Pilihan resource berikut mengamankan grup resource tertentu:

    • Semua Layanan Web: Semua resource dalam project akan diamankan. Perhatikan bahwa hal ini tidak sama dengan memberikan akses level project dengan halaman admin IAM. Pengguna yang diberi peran IAP Policy Admin pada tingkat resource Semua Layanan Web hanya akan memiliki izin ke kebijakan IAP.

    • Backend Services: Semua layanan backend akan diamankan.

  3. Di sebelah kanan Panel info, tambahkan alamat email grup atau individu yang ingin Anda beri peran Identity and Access Management (IAM) untuk resource.

  4. Terapkan peran kebijakan akses ke akun utama dengan memilih peran berikut di dropdown Pilih peran:

    • Pemilik: Memberikan akses yang sama dengan IAP Policy Admin. Sebagai gantinya, gunakan peran IAP Policy Admin. Peran ini hanya mengizinkan perubahan kebijakan, dan tidak memberikan akses ke aplikasi.

    • IAP Policy Admin: Memberikan hak administrator atas kebijakan IAP.

    • IAP-Secured Web App User: Memberikan akses ke aplikasi dan resource HTTPS lainnya yang menggunakan IAP.

    • Peninjau Keamanan: Memberikan izin untuk melihat dan mengaudit kebijakan IAP.

  5. Setelah selesai menambahkan alamat email dan menetapkan peran, klik Tambahkan

Hapus akses

  1. Buka halaman Identity-Aware Proxy.
    Buka halaman Identity-Aware Proxy
  2. Pilih resource yang diamankan dengan IAP.
  3. Di sebelah kanan Panel info, pilih bagian yang sesuai dengan peran yang ingin Anda hapus dari akun utama.
  4. Di bagian yang diperluas, di samping setiap nama pengguna atau grup yang perannya ingin Anda hapus, klik Hapus.
  5. Di dialog Remove principal yang muncul, klik Remove.

Mengelola akses dengan API

IAM menyediakan sekumpulan metode standar untuk membuat dan mengelola kebijakan kontrol akses di resource Google Cloud.

Resource dan izin

Dengan IAP API, Anda dapat menerapkan izin IAM ke setiap resource dalam project yang diamankan oleh IAP. Izin IAM yang diberikan pada tingkat tertentu berlaku untuk semua tingkat di bawahnya. Misalnya, izin yang diberikan pada level project berlaku untuk semua resource Google Cloud dalam project. Akses untuk level project dan yang lebih tinggi dikelola di halaman admin IAM, tetapi akan ditampilkan di halaman admin IAP.

Pengguna memerlukan izin tertentu untuk mengakses aplikasi yang dilindungi oleh IAP. Untuk memberikan izin ini, administrator dapat menggunakan API untuk memperbarui kebijakan IAM. Izin iap.webServiceVersions.accessViaIAP memberikan akses ke aplikasi kepada pengguna. Jika Anda menggunakan IAP untuk mengontrol akses ke layanan administratif seperti SSH dan RDP, pengguna memerlukan izin iap.tunnelInstances.accessViaIAP.

Setiap resource IAP memiliki izin getIamPolicy dan setIamPolicy tersendiri yang memberikan kemampuan untuk mengelola kebijakan akses bagi resource tersebut dan turunannya.

Untuk memanggil IAM API, buat panggilan dengan jalur URL ke resource. Berikut adalah contoh panggilan yang mendapatkan kebijakan IAM untuk versi layanan aplikasi App Engine.

https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/
appengine-APP_ID/services/SERVICE_ID/versions/VERSION_ID:getIamPolicy

Tabel berikut mencantumkan jenis resource yang didukung, serta izin yang diperlukan untuk memanggil IAM API.

Jenis aset Izin
Setiap aplikasi web yang diamankan oleh IAP dalam project
Ini sama dengan kotak centang Semua Layanan Web di halaman admin IAP.

Jalur
https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web
iap.web.getIamPolicy

iap.web.setIamPolicy
Layanan backend
Ini sama dengan kotak centang Backend Service di halaman admin IAP.

Jalur
Cakupan global:
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/compute

Cakupan regional:
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/compute-REGION_NAME
iap.webTypes.getIamPolicy

iap.webTypes.setIamPolicy
Aplikasi App Engine
Ini sama dengan kotak centang aplikasi App Engine di halaman admin IAP.

Jalur
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/appengine-APP_ID
iap.webTypes.getIamPolicy

iap.webTypes.setIamPolicy
Layanan backend Compute Engine
Jalur layanan backend dapat menentukan ID layanan backend atau nama layanan backend.

Jalur
Cakupan global:
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/compute/services/
BACKEND_SERVICE_ID or BACKEND_SERVICE_NAME

Cakupan regional:
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/compute-REGION_NAME/
services/BACKEND_SERVICE_ID or BACKEND_SERVICE_NAME
iap.webServices.getIamPolicy

iap.webServices.setIamPolicy
Layanan aplikasi App Engine

Jalur
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/appengine-APP_ID/
services/APP_SERVICE_ID
iap.webServices.getIamPolicy

iap.webServices.setIamPolicy
Versi layanan App Engine
Compute Engine tidak mendukung pembuatan versi.

Jalur
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_web/appengine-APP_ID/
services/APP_SERVICE_ID/versions/VERSION_ID
iap.webServiceVersions.getIamPolicy

iap.webServiceVersions.setIamPolicy
Setiap instance VM yang diamankan oleh IAP dalam project
Ini sama dengan kotak centang All Tunnel Resources di halaman admin IAP.

Jalur
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel
iap.tunnel.getIamPolicy

iap.tunnel.setIamPolicy
Zona yang memiliki setidaknya satu instance VM
Ini sama dengan kotak centang nama zona di halaman admin IAP, misalnya, us-central1-c.

Jalur
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel/zones/ZONE_NAME
iap.tunnelZones.getIamPolicy

iap.tunnelZones.setIamPolicy
Instance VM individual

Jalur
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel/zones/ZONE_NAME
/instances/INSTANCE_ID or INSTANCE_NAME
iap.tunnelInstances.getIamPolicy

iap.tunnelInstances.setIamPolicy
Wilayah yang memiliki setidaknya satu grup tujuan, misalnya, us-central1

Jalur
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel/locations/REGION_NAME
iap.tunnelLocations.getIamPolicy

iap.tunnelLocations.setIamPolicy
Grup tujuan individual

Jalur
https://iap.googleapis.com/v1/projects/
PROJECT_NUMBER/iap_tunnel/locations/REGION_NAME
/destGroups/GROUP_NAME
iap.tunnelDestGroups.getIamPolicy

iap.tunnelDestGroups.setIamPolicy

Peran

Tabel berikut mencantumkan peran IAM IAP dengan daftar yang sesuai dari semua izin khusus IAP yang disertakan setiap peran. Untuk mengetahui informasi selengkapnya tentang peran IAM, lihat Mengelola Peran dan Izin.

Peran Mencakup izin Deskripsi
Pengguna Aplikasi Web yang Diamankan IAP (roles/iap.httpsResourceAccessor) iap.webServiceVersions.accessViaIAP Memberikan akses ke resource App Engine dan Compute Engine.
Pengguna Terowongan yang Aman IAP (roles/iap.tunnelResourceAccessor) iap.tunnelInstances.accessViaIAP
iap.tunnelDestGroups.accessViaIAP
Memberikan akses ke instance VM yang diamankan oleh IAP.
Admin Kebijakan IAP (roles/iap.admin) iap.web.getIamPolicy
iap.web.setIamPolicy
iap.webTypes.getIamPolicy
iap.webTypes.setIamPolicy
iap.webServices.getIamPolicy
iap.webServices.setIamPolicy
iap.webServiceVersions.getIamPolicy
iap.webServiceVersions.setIamPolicy
iap.tunnel.getIamPolicy
iap.tunnel.setIamPolicy
iap.tunnelZones.getIamPolicy
iap.tunnelZones.setIamPolicy
iap.tunnelInstances.getIamPolicy
iap.tunnelInstances.setIamPolicy
Memberikan hak administratif IAP untuk mengelola kebijakan akses IAP resource.

Akses publik

Untuk memberi semua orang akses ke resource, berikan peran kepada salah satu akun utama berikut:

  • allAuthenticatedUsers: Siapa saja yang diautentikasi dengan Akun Google atau akun layanan.
  • allUsers: Siapa saja yang ada di internet, termasuk pengguna yang diautentikasi dan tidak diautentikasi. Header bertanda tangan untuk permintaan tidak akan memiliki klaim sub atau email.

Jika akses publik diberikan, IAP tidak akan membuat Log Audit Cloud untuk permintaan tersebut.

Saat ini, binding yang memberikan akses publik tidak dapat memiliki kondisi yang terkait dengannya. Misalnya, kebijakan yang mengizinkan siapa saja mengakses resource jika jalur permintaan dimulai dengan /public/ tidak valid.