Halaman ini menjelaskan cara mengelola akses individu atau grup ke resource yang diamankan Identity-Aware Proxy (IAP) di level resource.
Ringkasan
Anda dapat menggunakan IAP untuk mengonfigurasi kebijakan IAP untuk resource individual dan Cloud Run dalam project Google Cloud . Beberapa aplikasi dalam satu project dapat memiliki kebijakan akses yang berbeda. Kemampuan ini berlaku untuk project yang memiliki aplikasi Compute Engine dan Google Kubernetes Engine, serta aplikasi 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, buka halaman IAM. Daftar pengguna yang memiliki akses ("akun utama") di level project berlaku untuk semua resource yang diamankan IAP dalam project.
Sebelum memulai
Sebelum memulai, Anda memerlukan hal berikut:
- Resource yang diamankan IAP yang ingin Anda tambahi 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 |
clientauthconfig.clients.create,
clientauthconfig.clients.update, 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 konsolGoogle Cloud , ikuti proses untuk menambahkan atau menghapus akses.
Tambahkan akses
Buka halaman Identity-Aware Proxy.
Buka halaman Identity-Aware ProxyPilih resource yang ingin Anda amankan dengan IAP. Pemilihan resource berikut mengamankan grup resource yang ditetapkan:
All Web Services: 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 di level 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 Select a role:
Owner: Memberikan akses yang sama seperti IAP Policy Admin. Gunakan peran IAP Policy Admin. Peran ini hanya mengizinkan pengubahan 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 web 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, di samping setiap nama pengguna atau grup yang ingin Anda hapus perannya, klik Remove.
- Dalam dialog Remove principal yang muncul, klik Remove.
Mengelola akses dengan API
IAM menyediakan serangkaian metode standar untuk membuat dan mengelola kebijakan kontrol akses pada resource Google Cloud .
Resource dan izin
IAP API memungkinkan Anda menerapkan izin IAM ke setiap resource dalam project yang diamankan IAP. Izin IAM yang diberikan pada level tertentu berlaku untuk semua level di bawahnya. Misalnya, izin yang diberikan di level project berlaku untuk semua resource Google Cloud dalam project. Akses untuk resource level project dan level yang lebih tinggi 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 IAP. Path https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web |
iap.web.getIamPolicyiap.web.setIamPolicy |
|
Setiap Layanan backend dalam project Opsi ini sama dengan kotak centang Layanan Backend di halaman IAP. Jalur Cakupan global: https://iap.googleapis.com/v1/projects/ Cakupan regional: https://iap.googleapis.com/v1/projects/ |
iap.webTypes.getIamPolicyiap.webTypes.setIamPolicy |
|
Setiap aturan penerusan dalam project Izin untuk semua aturan penerusan dalam project. Jalur Cakupan global: https://iap.googleapis.com/v1/projects/ Cakupan regional: https://iap.googleapis.com/v1/projects/ |
iap.webTypes.getIamPolicyiap.webTypes.setIamPolicy |
|
Region untuk setiap layanan Cloud Run dalam project Izin untuk semua layanan Cloud Run di suatu region dalam project. Path https://iap.googleapis.com/v1/projects/ |
iap.webTypes.getIamPolicyiap.webTypes.setIamPolicy |
|
Layanan Cloud Run Izin untuk layanan Cloud Run. Semua layanan Cloud Run bersifat regional. Path https://iap.googleapis.com/v1/projects/ |
iap.webServices.getIamPolicyiap.webServices.setIamPolicy |
|
Aplikasi App Engine Ini sama dengan kotak centang App Engine app di halaman IAP. Path https://iap.googleapis.com/v1/projects/ |
iap.webTypes.getIamPolicyiap.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.getIamPolicyiap.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.getIamPolicyiap.webServices.setIamPolicy |
|
Layanan aplikasi App Engine Jalur https://iap.googleapis.com/v1/projects/ |
iap.webServices.getIamPolicyiap.webServices.setIamPolicy |
|
Versi layanan App Engine Compute Engine tidak mendukung pembuatan versi. Path https://iap.googleapis.com/v1/projects/ |
iap.webServiceVersions.getIamPolicyiap.webServiceVersions.setIamPolicy |
|
Setiap instance VM yang diamankan IAP dalam project Ini sama dengan kotak centang Semua Resource Tunnel di halaman IAP. Path https://iap.googleapis.com/v1/projects/ |
iap.tunnel.getIamPolicyiap.tunnel.setIamPolicy |
|
Zona yang memiliki setidaknya satu instance VM Ini sama dengan kotak centang nama zona di halaman IAP, misalnya, us-central1-c.Path https://iap.googleapis.com/v1/projects/ |
iap.tunnelZones.getIamPolicyiap.tunnelZones.setIamPolicy |
|
Instance VM individual Jalur https://iap.googleapis.com/v1/projects/ |
iap.tunnelInstances.getIamPolicyiap.tunnelInstances.setIamPolicy |
Region yang memiliki setidaknya satu grup tujuan, misalnya, us-central1Jalur https://iap.googleapis.com/v1/projects/ |
iap.tunnelLocations.getIamPolicyiap.tunnelLocations.setIamPolicy |
|
Grup tujuan individual Jalur https://iap.googleapis.com/v1/projects/ |
iap.tunnelDestGroups.getIamPolicyiap.tunnelDestGroups.setIamPolicy |
Peran
Tabel berikut mencantumkan peran IAM IAP beserta daftar terkait dari semua izin khusus IAP yang disertakan dalam setiap peran. Untuk mengetahui informasi selengkapnya tentang peran IAM, lihat Mengelola Peran dan Izin.
| Peran | Menyertakan 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.accessViaIAPiap.tunnelDestGroups.accessViaIAP |
Memberikan akses ke instance VM yang diamankan oleh IAP. |
IAP Policy Admin (roles/iap.admin) |
iap.web.getIamPolicyiap.web.setIamPolicyiap.webTypes.getIamPolicyiap.webTypes.setIamPolicyiap.webServices.getIamPolicyiap.webServices.setIamPolicyiap.webServiceVersions.getIamPolicyiap.webServiceVersions.setIamPolicyiap.tunnel.getIamPolicyiap.tunnel.setIamPolicyiap.tunnelZones.getIamPolicyiap.tunnelZones.setIamPolicyiap.tunnelInstances.getIamPolicyiap.tunnelInstances.setIamPolicy
|
Memberikan hak administratif IAP untuk mengelola kebijakan akses IAP resource. |
Mengelola akses dengan Google Cloud CLI
Anda juga dapat mengelola akses menggunakan Google Cloud CLI.
Menolak akses
Kebijakan penolakan Identity and Access Management (IAM) dapat Anda gunakan untuk menetapkan batasan pada akses ke resource Google Cloud . Untuk mengetahui daftar skenario yang dapat memanfaatkan kebijakan penolakan, 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 penolakan, lihat Izin yang didukung dalam kebijakan penolakan
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 efektif pada level resource tertentu dan tidak pada turunannya. Misalnya, iap.organizations.getSettings
memberikan akses ke getSettings di level organisasi, bukan ke
turunan organisasi. Artinya, admin harus secara eksplisit mencantumkan semua
izin terperinci yang relevan saat membuat kebijakan penolakan untuk menolak akses di
titik lampiran dan turunannya.
Untuk mengetahui daftar lengkap izin terperinci tersebut, lihat
Izin yang didukung dalam kebijakan penolakan.
Semua izin di bawah 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 getSettings API 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",
],
}
}
]
}
Alih-alih 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 penolakan |
|---|---|
| Menolak izin IAP tertentu pada 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 pun yang diautentikasi dengan Akun Google atau akun layanan.allUsers: Siapa pun yang menggunakan internet, termasuk pengguna yang diautentikasi dan tidak diautentikasi. Header bertanda tangan untuk permintaan tidak akan memiliki klaimsubatauemail.
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 pun
mengakses resource jika jalur permintaan dimulai dengan /public/ tidak valid.