Halaman ini menjelaskan cara mengelola akses individu atau grup ke resource yang diamankan Identity-Aware Proxy (IAP) di tingkat resource.
Ringkasan
IAP memungkinkan Anda mengonfigurasi kebijakan IAP untuk resource individual dan Cloud Run dalam project Google Cloud. Beberapa aplikasi dalam project dapat memiliki kebijakan akses yang berbeda. Hal ini termasuk 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 akses level project dan yang lebih tinggi, gunakan halaman admin IAM. Daftar pengguna yang memiliki akses ("prinsipal") di tingkat project berlaku untuk semua resource yang diamankan IAP dalam project.
Sebelum memulai
Sebelum memulai, Anda memerlukan hal-hal berikut:
- Resource yang diamankan IAP tempat Anda ingin menambahkan akses individu atau grup.
- Nama pengguna atau grup yang aksesnya ingin Anda tambahkan.
Mengaktifkan dan menonaktifkan IAP
Untuk mengaktifkan dan menonaktifkan IAP, izin tertentu diperlukan. 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 oleh peran seperti Project Editor, App Engine Admin, dan Compute Network Admin. Meskipun peran ini memungkinkan pengaktifan dan penonaktifan IAP, peran ini 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 untuk menambahkan atau menghapus akses.
Menambahkan akses
Buka halaman Identity-Aware Proxy.
Buka halaman Identity-Aware ProxyPilih resource yang ingin Anda amankan dengan IAP. Pilihan resource berikut mengamankan sekumpulan resource yang ditetapkan:
Semua Layanan Web: Semua resource dalam project akan diamankan. Perhatikan bahwa hal ini tidak sama dengan memberikan akses tingkat project dengan halaman admin IAM. Pengguna yang diberi peran IAP Policy Admin di tingkat resource All Web Services hanya akan memiliki izin ke kebijakan IAP.
Layanan Backend: Semua layanan backend akan diamankan.
Di Panel info sebelah kanan, tambahkan alamat email grup atau individu yang ingin Anda beri peran Identity and Access Management (IAM) untuk resource tersebut.
Terapkan peran kebijakan akses ke akun utama dengan memilih dari peran berikut di dropdown Pilih peran:
Pemilik: Memberikan akses yang sama seperti IAP Policy Admin. Sebagai gantinya, gunakan peran IAP Policy Admin. Peran ini hanya mengizinkan modifikasi 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.
Setelah selesai menambahkan alamat email dan menetapkan peran, klik Tambahkan
Hapus akses
- Buka halaman Identity-Aware Proxy.
Buka halaman Identity-Aware Proxy - Pilih resource yang diamankan dengan IAP.
- Di Panel info sebelah kanan, pilih bagian yang sesuai dengan peran yang ingin Anda hapus dari akun utama.
- Di bagian yang diperluas, klik Hapus di samping setiap nama pengguna atau grup yang peranannya ingin Anda hapus.
- Di dialog Hapus akun utama yang muncul, klik Hapus.
Mengelola akses dengan API
IAM menyediakan serangkaian metode standar untuk membuat dan mengelola kebijakan kontrol akses di resource Google Cloud.
Referensi dan izin
IAP API memungkinkan Anda 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 di level project berlaku untuk semua resource Google Cloud dalam project. Akses untuk level project dan di atas dikelola di halaman admin IAM, tetapi akan ditampilkan di halaman admin IAP.
Pengguna memerlukan izin tertentu untuk mengakses aplikasi yang diamankan oleh IAP.
Untuk memberikan izin ini, administrator dapat menggunakan API untuk memperbarui kebijakan IAM. Izin
iap.webServiceVersions.accessViaIAP
memberikan akses pengguna ke aplikasi. Jika
Anda menggunakan IAP untuk mengontrol akses ke layanan administratif
seperti SSH dan RDP, pengguna akan memerlukan izin
iap.tunnelInstances.accessViaIAP
.
Setiap resource IAP memiliki izin getIamPolicy
dan setIamPolicy
sendiri yang memberikan kemampuan untuk mengelola kebijakan akses untuk 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 resource | Izin |
---|---|
Setiap aplikasi web yang diamankan 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 |
Setiap Layanan backend dalam project Ini sama dengan kotak centang Layanan Backend di halaman admin IAP. Jalur Cakupan global: https://iap.googleapis.com/v1/projects/ Cakupan regional: https://iap.googleapis.com/v1/projects/ |
iap.webTypes.getIamPolicy iap.webTypes.setIamPolicy |
Setiap aturan penerusan di project Izin untuk semua aturan penerusan di project. Jalur Cakupan global: https://iap.googleapis.com/v1/projects/ Cakupan regional: https://iap.googleapis.com/v1/projects/ |
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/ |
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/ Cakupan regional: https://iap.googleapis.com/v1/projects/ |
iap.webServices.getIamPolicy iap.webServices.setIamPolicy |
Aturan penerusan Compute Engine Izin untuk aturan penerusan. Jalur aturan penerusan dapat menentukan ID aturan penerusan atau nama aturan penerusan. Jalur Cakupan global: https://iap.googleapis.com/v1/projects/ Cakupan regional: https://iap.googleapis.com/v1/projects/ |
iap.webServices.getIamPolicy iap.webServices.setIamPolicy |
Layanan aplikasi App Engine Jalur https://iap.googleapis.com/v1/projects/ |
iap.webServices.getIamPolicy iap.webServices.setIamPolicy |
An App Engine service version Compute Engine doesn't support versioning. Path https://iap.googleapis.com/v1/projects/ |
iap.webServiceVersions.getIamPolicy iap.webServiceVersions.setIamPolicy |
Setiap instance VM yang diamankan IAP dalam project Ini sama dengan kotak centang Semua Resource Tunnel di halaman admin IAP. Jalur https://iap.googleapis.com/v1/projects/ |
iap.tunnel.getIamPolicy iap.tunnel.setIamPolicy |
Zona yang memiliki minimal 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/ |
iap.tunnelZones.getIamPolicy iap.tunnelZones.setIamPolicy |
Setiap instance VM Jalur https://iap.googleapis.com/v1/projects/ |
iap.tunnelInstances.getIamPolicy iap.tunnelInstances.setIamPolicy |
Region yang memiliki minimal satu grup tujuan, misalnya, us-central1 Jalur https://iap.googleapis.com/v1/projects/ |
iap.tunnelLocations.getIamPolicy iap.tunnelLocations.setIamPolicy |
Kelompok tujuan individual Jalur https://iap.googleapis.com/v1/projects/ |
iap.tunnelDestGroups.getIamPolicy iap.tunnelDestGroups.setIamPolicy |
Peran
Tabel berikut mencantumkan peran IAM IAP dengan daftar terkait semua izin khusus IAP yang disertakan dalam setiap peran. Untuk mengetahui informasi selengkapnya tentang peran IAM, lihat Mengelola Peran dan Izin.
Peran | Mencakup izin | Deskripsi |
---|---|---|
IAP-Secured Web App User (roles/iap.httpsResourceAccessor ) |
iap.webServiceVersions.accessViaIAP |
Memberikan akses ke resource App Engine dan Compute Engine. |
IAP-Secured Tunnel User (roles/iap.tunnelResourceAccessor ) |
iap.tunnelInstances.accessViaIAP iap.tunnelDestGroups.accessViaIAP |
Memberikan akses ke instance VM yang diamankan oleh IAP. |
IAP Policy Admin (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. |
Mengelola akses dengan Google Cloud CLI
Menolak akses
Kebijakan tolak Identity and Access Management (IAM) memungkinkan Anda menetapkan batasan pada akses ke resource Google Cloud. Untuk mengetahui daftar skenario tempat kebijakan penolakan berguna, lihat kasus penggunaan.
Anda dapat membuat kebijakan penolakan dan menyertakan semua izin IAP dalam
kebijakan tersebut. Untuk mengetahui daftar izin IAP yang dapat Anda tambahkan
ke kebijakan tolak, lihat Izin yang didukung dalam kebijakan tolak
dan telusuri iap.googleapis.com
. Meskipun kebijakan penolakan dapat diterapkan ke
izin IAP apa pun, efektivitasnya terkait dengan titik lampiran
kebijakan penolakan.
Beberapa izin IAP hanya berlaku pada level resource
tertentu, bukan pada turunannya. Misalnya,iap.organizations.getSettings
memberikan akses ke getSettings
di tingkat organisasi, bukan ke
turunan organisasi. Artinya, admin harus mencantumkan semua izin terperinci yang relevan secara eksplisit saat membuat kebijakan tolak untuk menolak akses di titik lampiran dan turunannya.
Untuk mengetahui daftar lengkap izin terperinci tersebut, lihat
Izin yang didukung dalam kebijakan tolak.
Semua izin di FQDN iap.googleapis.com
dan jenis resource
iap.organizations
, iap.folders
, iap.projects
, iap.web
, iap.webTypes
,
iap.webServices
, iap.webServicesVersions
adalah izin terperinci.
Berikut adalah contoh kebijakan penolakan IAM untuk menolak akses ke API getSettings
kepada akun utama di organisasi dan turunannya.
{
"name": "policies/cloudresourcemanager.googleapis.com%2Forganizations%2F253519172624/denypolicies/testpolicyid",
"uid": "06ccd2eb-d2a5-5dd1-a746-eaf4c6g3f816",
"kind": "DenyPolicy",
"displayName": "Only project admins can delete projects.",
"etag": "MTc1MTkzMjY0MjUyMTExODMxMDQ=",
"createTime": "2021-09-07T23:15:35.258319Z",
"updateTime": "2021-09-07T23:15:35.258319Z",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principalSet://goog/public:all"
],
"deniedPermissions": [
"iap.googleapis.com/iap.organizations.getSettings",
"iap.googleapis.com/iap.folders.getSettings",
"iap.googleapis.com/iap.projects.getSettings",
"iap.googleapis.com/iap.web.getSettings",
"iap.googleapis.com/iap.webTypes.getSettings",
"iap.googleapis.com/iap.webServices.getSettings",
"iap.googleapis.com/iap.webServicesVersions.getSettings",
],
}
}
]
}
Daripada menentukan semua izin terperinci, berikut adalah contoh
kebijakan penolakan IAM dengan hanya satu izin: *.getSettings
.
{
"name": "policies/cloudresourcemanager.googleapis.com%2Forganizations%2F253519172624/denypolicies/testpolicyid",
"uid": "06ccd2eb-d2a5-5dd1-a746-eaf4c6g3f816",
"kind": "DenyPolicy",
"displayName": "Only project admins can delete projects.",
"etag": "MTc1MTkzMjY0MjUyMTExODMxMDQ=",
"createTime": "2021-09-07T23:15:35.258319Z",
"updateTime": "2021-09-07T23:15:35.258319Z",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principalSet://goog/public:all"
],
"deniedPermissions": [
"iap.googleapis.com/*.getSettings",
],
}
}
]
}
Berikut adalah beberapa cara yang lebih sederhana untuk membuat kebijakan penolakan IAM tanpa harus menentukan semua izin terperinci.
Tindakan admin | Izin dalam kebijakan tolak |
---|---|
Menolak izin IAP tertentu di semua jenis resource IAP | *.updateSettings *.getSettings *.setIamPolicy *.getIamPolicy |
Menolak semua izin IAP pada jenis resource tertentu | iap.organizations.* iap.folders.* iap.projects.* iap.web.* iap.webTypes.* iap.webServices.* iap.webServicesVersions.* |
Akses publik
Untuk memberi semua orang akses ke resource, berikan peran ke salah satu akun utama berikut:
allAuthenticatedUsers
: Siapa saja yang diautentikasi dengan Akun Google atau akun layanan.allUsers
: Siapa saja yang menggunakan internet, termasuk pengguna yang diautentikasi dan tidak diautentikasi. Header yang ditandatangani untuk permintaan tidak akan memiliki klaimsub
atauemail
.
Jika akses publik diberikan, IAP tidak akan membuat log Cloud Audit Logs 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.