Dokumen ini menjelaskan cara menyiapkan gateway aman Chrome Enterprise Premium untuk mengamankan akses ke aplikasi web pribadi Anda.
Gateway aman Chrome Enterprise Premium berfungsi sebagai proxy penerusan, yang menerapkan framework akses zero trust dan memberikan kontrol kontekstual yang terperinci atas siapa yang mengakses aplikasi web pribadi Anda.
Cara kerja pengamanan akses ke aplikasi web pribadi
Dengan membuat tunnel yang aman dan menerapkan kebijakan akses kontekstual, gateway aman menjaga aplikasi pribadi tetap bersifat pribadi dan terlindung dari eksposur internet publik. Konfigurasi browser sisi klien mengarahkan traffic untuk aplikasi ini melalui endpoint proxy gateway aman. Kemudian, gateway aman menerapkan kebijakan akses yang relevan dan, jika diizinkan, merutekan permintaan ke aplikasi tujuan.
Gateway aman dapat melindungi aplikasi web pribadi yang dihosting di lingkungan berikut:
Google Cloud project: Gateway aman dapat mengarahkan akses ke aplikasi yang berjalan di jaringan VPC Anda. Google Cloud
Non-Google Cloud (pusat data lokal atau cloud lain): Anda harus membuat koneksi terlebih dahulu antara jaringan VPC pribadi Anda di Google Cloud dan jaringan non-Google Cloud . Hal ini biasanya dilakukan menggunakan Cloud VPN atau Cloud Interconnect. Kemudian, gateway yang aman menggunakan koneksi untuk mengirim traffic ke jaringan VPC pribadi Anda, yang pada gilirannya merutekannya ke lingkungan non-Google Cloud .
Sebelum memulai
Sebelum menyiapkan gateway aman, pastikan Anda memiliki hal berikut:
- Lisensi Chrome Enterprise Premium
- Akses ke konsol Google Admin dengan akun administrator
- Google Cloud Project dengan akun penagihan yang ditetapkan dan API berikut yang diaktifkan: BeyondCorp API
Peran Identity and Access Management (IAM) berikut yang diberikan kepada administrator yang menyiapkan semuanya: Level project: Admin Cloud BeyondCorp (
beyondcorp.admin
).Untuk aplikasi pribadi di lingkungan non-Google Cloud , koneksi Cloud VPN atau Cloud Interconnect antara lingkungan Google Cloud Anda, dan lingkungan non-Google Cloud tempat aplikasi Anda berada. Untuk mengetahui informasi selengkapnya tentang cara menyiapkan koneksi jaringan, lihat referensi berikut:
Menyiapkan lingkungan shell
Untuk menyederhanakan proses penyiapan dan berinteraksi dengan API gateway aman, tentukan variabel lingkungan berikut di shell kerja Anda.
Parameter umum
API="beyondcorp.googleapis.com" API_VERSION=v1 PROJECT_ID=
MY_PROJECT_ID
Ganti kode berikut:
MY_PROJECT_ID
: ID project tempat gateway aman dibuat.
Parameter gateway yang aman
SECURITY_GATEWAY_ID=
MY_SECURITY_GATEWAY_ID
SECURITY_GATEWAY_DISPLAY_NAME="MY_SECURITY_GATEWAY_DISPLAY_NAME
"Ganti kode berikut:
MY_SECURITY_GATEWAY_ID
: ID gateway aman yang ingin Anda buat. ID dapat terdiri dari hingga 63 karakter dan dapat berisi huruf kecil, angka, dan tanda hubung. Karakter pertama harus berupa huruf, dan karakter terakhir dapat berupa huruf atau angka.MY_SECURITY_GATEWAY_DISPLAY_NAME
: Nama gateway aman yang dapat dibaca manusia. Nama dapat berisi maksimal 63 karakter dan menyertakan karakter yang dapat dicetak.
Membuat gateway yang aman
Gateway aman Chrome Enterprise Premium adalah elemen penyusun mendasar untuk membuat koneksi yang aman ke aplikasi Anda. Hal ini mengalokasikan project dan jaringan khusus, sehingga memberikan isolasi dan keamanan.
gcloud
gcloud beta beyondcorp security-gateways create ${SECURITY_GATEWAY_ID} \ --project=${PROJECT_ID} \ --location=global \ --display-name="${SECURITY_GATEWAY_DISPLAY_NAME}"
REST
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST \
-d '{ "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME
" }' \
"https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
Mengonfigurasi aplikasi web pribadi
Sebelum dapat menentukan resource aplikasi tertentu di gateway aman, Anda harus mengonfigurasi izin dan setelan jaringan yang diperlukan untuk mengaktifkan konektivitas dan perutean yang tepat.
Memberikan izin ke akun layanan
Agar berhasil mengirim traffic ke jaringan VPC Anda, gateway keamanan memerlukan izin IAM tertentu yang diberikan ke akun layanan yang mendelegasikannya. Dengan melakukannya, gateway yang aman dapat menjangkau aplikasi pribadi Anda, baik yang dihosting dalam Google Cloud VPC maupun di lingkungan non-Google Cloud yang terhubung melalui Cloud VPN atau Cloud Interconnect.
-
Dapatkan detail gateway aman Anda untuk mengidentifikasi email akun layanan yang mendelegasikan. Email ada di kolom
delegatingServiceAccount
respons.gcloud
gcloud beta beyondcorp security-gateways describe ${SECURITY_GATEWAY_ID} \ --project=${PROJECT_ID} \ --location=global
REST
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}"
-
Tetapkan variabel lingkungan untuk akun layanan dan project VPC target Anda.
DELEGATING_SERVICE_ACCOUNT="security-gateway@my-gateway-service-account." # Replace with actual value
-
Berikan peran IAM
roles/beyondcorp.upstreamAccess
ke akun layanan yang mendelegasikan pada project VPC pribadi Anda. Gantigcloud projects add-iam-policy-binding
PRIVATE_VPC_PROJECT_ID
\ --role=roles/beyondcorp.upstreamAccess \ --member=serviceAccount:${DELEGATING_SERVICE_ACCOUNT}PRIVATE_VPC_PROJECT_ID
dengan Project ID jaringan VPC tempat aplikasi web pribadi di-deploy atau tempat Cloud VPN/Interconnect dikonfigurasi.
Berikan waktu sekitar dua menit agar kebijakan Identity and Access Management diterapkan setelah Anda memberikan peran.
Mengonfigurasi aturan firewall dan pemilihan rute jaringan
Untuk mengizinkan traffic dari gateway aman menjangkau aplikasi web pribadi Anda, konfigurasikan aturan firewall, perutean jaringan, dan setelan DNS.
Aturan firewall untuk aplikasi di Google Cloud
Jika aplikasi web pribadi Anda dihosting dalam jaringan Google Cloud VPC
Anda, seperti di VM Compute Engine, layanan Google Kubernetes Engine dengan
IP internal, atau di belakang load balancer TCP/UDP internal, konfigurasikan
aturan firewall VPCGoogle Cloud . Hal ini memungkinkan traffic TCP masuk dari rentang IP gateway aman: 34.158.8.0/21
dan 136.124.16.0/20
.
Aturan firewall untuk aplikasi di lingkungan non-Google Cloud
Jika aplikasi web pribadi Anda berada di pusat data lokal atau di jaringan penyedia cloud lain, dan terhubung ke VPC Anda menggunakan Cloud VPN atau Cloud Interconnect, konfigurasikan aturan firewall di firewall lokal Anda atau kontrol keamanan jaringan yang setara, seperti grup keamanan dan ACL jaringan, di lingkungan cloud lainnya. Google CloudHal ini memungkinkan traffic TCP masuk dari rentang IP gateway yang aman.
Mengonfigurasi perutean dari lingkungan non-Google Cloud ke gateway aman
Untuk memfasilitasi komunikasi dua arah bagi aplikasi pribadi yang dihosting
di lingkungan non-Google Cloud , seperti lokal atau cloud lain,
jaringan eksternal Anda harus membuat jalur kembali ke rentang IP gateway aman berikut: 34.158.8.0/21
dan 136.124.16.0/20
.
Verifikasi bahwa jaringan pribadi Anda dapat menjangkau rentang IP gateway aman melalui Cloud VPN atau Cloud Interconnect:
Perutean dinamis: Jika Anda menggunakan perutean dinamis, seperti Border Gateway Protocol (BGP) dengan Cloud Router, verifikasi bahwa Cloud Router Anda secara eksplisit mengiklankan rentang IP gateway aman ke perangkat BGP lokal Anda. Google Cloud Meskipun BGP secara dinamis bertukar banyak rute, rentang IP gateway aman memerlukan pemberitahuan eksplisit.
Perutean statis: Jika menggunakan rute statis, Anda harus menambahkan rute secara manual untuk setiap rentang IP gateway aman di peralatan jaringan lokal, seperti router atau firewall. Rute statis ini harus menentukan bahwa traffic yang ditujukan untuk rentang IP gateway aman harus dikirim melalui koneksi Cloud VPN atau Cloud Interconnect.
Saat menggunakan perutean statis, Cloud VPN harus berada di salah satu region yang didukung berikut:
africa-south1
asia-east1
asia-south1
asia-south2
asia-southeast1
europe-central2
europe-north1
europe-southwest1
europe-west1
europe-west2
europe-west3
europe-west4
europe-west8
europe-west9
northamerica-northeast1
northamerica-northeast2
northamerica-south1
southamerica-east1
southamerica-west1
us-central1
us-east1
us-east4
us-east5
us-west1
Konfigurasi DNS untuk resolusi nama host pribadi gateway aman
Agar gateway aman dapat me-resolve nama host aplikasi pribadi Anda, jaringan VPCGoogle Cloud Anda harus dapat me-resolve nama host menggunakan Cloud DNS. Konfigurasi Cloud DNS tertentu bergantung pada tempat data DNS pribadi Anda dihosting secara otoritatif:
Aplikasi dalam Google Cloud menggunakan zona pribadi Cloud DNS: Jika aplikasi pribadi Anda dihosting di Google Cloud dan data DNS-nya dikelola dalam zona pribadi Cloud DNS yang terkait dengan jaringan VPC Anda, verifikasi bahwa zona tersebut dikonfigurasi dan dapat diakses dengan benar. Gateway aman menggunakan kemampuan resolusi Cloud DNS VPC Anda yang sudah ada.
Aplikasi di lingkungan non-Google Cloud atau yang menggunakan server DNS eksternal: Jika aplikasi pribadi Anda berada di lingkungan non-Google Cloud(lokal atau cloud lain) atau jika data DNS-nya dikelola oleh server DNS di luar zona pribadi Cloud DNS VPC Anda, Anda harus mengonfigurasi Cloud DNS untuk meneruskan kueri untuk domain pribadi ini. Hal ini biasanya melibatkan pembuatan zona penerusan Cloud DNS dalam VPC Anda. Zona ini akan mengarahkan kueri DNS untuk domain pribadi yang Anda tentukan ke server DNS pribadi otoritatif Anda, seperti di lokal atau cloud lainnya.
Untuk mengetahui petunjuk mendetail tentang konfigurasi DNS, lihat Membuat zona penerusan.
Membuat resource aplikasi
Untuk memberikan akses ke aplikasi web pribadi, Anda harus membuat aplikasi dalam framework gateway aman dengan membuat resource aplikasi. Resource ini menentukan cara gateway aman mengidentifikasi traffic untuk aplikasi Anda (berdasarkan nama host) dan ke mana traffic tersebut harus dirutekan.
-
Tetapkan variabel lingkungan yang diperlukan dengan menjalankan perintah berikut:
Ganti kode berikut:APPLICATION_ID=
MY_APPLICATION_ID
APP_DISPLAY_NAME="MY_APP_DISPLAY_NAME
" HOST_NAME=MY_HOST_NAME
PRIVATE_NETWORK_RESOURCE_NAME=MY_PRIVATE_NETWORK_RESOURCE_NAME
MY_APPLICATION_ID
: ID unik untuk resource aplikasi.MY_APP_DISPLAY_NAME
: Nama yang dapat dibaca manusia untuk ditampilkan.MY_HOST_NAME
: Nama host utama yang diakses pengguna (misalnya,private.local
).MY_PRIVATE_NETWORK_RESOURCE_NAME
: Nama resource lengkap jaringan VPC (misalnya,projects/my-project/global/networks/my-network
).
-
Buat resource aplikasi.
gcloud
Jalankan perintah berikut untuk membuat resource aplikasi.
gcloud beta beyondcorp security-gateways applications create ${APPLICATION_ID} \ --project=${PROJECT_ID} \ --security-gateway=${SECURITY_GATEWAY_ID} \ --location=global \ --display-name="${APP_DISPLAY_NAME}" \ --endpoint-matchers="hostname=${HOST_NAME}" \ --upstreams=network=name="${PRIVATE_NETWORK_RESOURCE_NAME}"
Untuk menentukan region traffic keluar (misalnya, saat menggunakan rute statis), tambahkan flag
--egress-regions
:gcloud beta beyondcorp security-gateways applications create ${APPLICATION_ID} \ --project=${PROJECT_ID} \ --security-gateway=${SECURITY_GATEWAY_ID} \ --location=global \ --display-name="${APP_DISPLAY_NAME}" \ --endpoint-matchers="hostname=${HOST_NAME}" \ --upstreams=network=name="${PRIVATE_NETWORK_RESOURCE_NAME}",egressPolicy=regions=us-central1
Ganti
us-central1
dengan Google Cloud region (sepertieurope-west1
atauasia-northeast1
) yang sesuai dengan penyiapan perutean statis regional Anda. Jika Anda tidak memiliki persyaratan perutean statis regional tertentu, Anda dapat menghilangkan kebijakan keluar dari konfigurasi Anda.REST
Untuk membuat resource aplikasi dengan API, selesaikan langkah-langkah berikut:
Buat file bernama
application.json
.{ "display_name": "
MY_APP_DISPLAY_NAME
", "endpoint_matchers": [ {"hostname": "MY_HOST_NAME
"} ], "upstreams": [{ "network": { "name": "MY_PRIVATE_NETWORK_RESOURCE_NAME
" } }] }Untuk menentukan region traffic keluar (misalnya, saat menggunakan rute statis), tambahkan
egress_policy
ke konfigurasi upstream:{ "display_name": "
MY_APP_DISPLAY_NAME
", "endpoint_matchers": [ {"hostname": "MY_HOST_NAME
"} ], "upstreams": [{ "network": { "name": "MY_PRIVATE_NETWORK_RESOURCE_NAME
" }, "egress_policy": { "regions": [ "us-central1" ] } }] }Ganti
us-central1
dengan Google Cloud region (sepertieurope-west1
atauasia-northeast1
) yang sesuai dengan penyiapan perutean statis regional Anda. Jika Anda tidak memiliki persyaratan perutean statis regional tertentu, Anda dapat menghilangkan kebijakan keluar dari konfigurasi Anda.Panggil metode API
Create
.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @application.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications?application_id=${APPLICATION_ID}"
Mengonfigurasi mode proxy Google Chrome
Untuk merutekan traffic resource aplikasi melalui gateway yang aman, konfigurasikan Chrome dengan menerapkan file PAC di setelan Chrome di konsol Google Admin.
Buat atau perbarui file PAC.
Jika Anda membuat aplikasi pertama, buat file
pac_config.js
menggunakan contoh file PAC berikut.Jika Anda membuat aplikasi kedua atau berikutnya, perbarui file
pac_config.js
yang ada dan tambahkan domain aplikasi baru ke array situs, seperti yang ditunjukkan dalam contoh file PAC berikut.
function FindProxyForURL(url, host) { const PROXY = "HTTPS ingress.cloudproxy.app:443"; const sites = ["MY_HOST_NAME"]; for (const site of sites) { if (shExpMatch(url, 'https://' + site + '/*') || shExpMatch(url, '*.' + site + '/*')) { return PROXY; } } return 'DIRECT'; }
Jika Anda menggunakan file PAC yang sudah ada dan tidak khusus untuk gateway aman, gabungkan file PAC dengan menambahkan domain aplikasi Anda ke array situs.
Upload file agar dapat didownload secara publik. Misalnya, Anda dapat mengupload file ke Cloud Storage, dan membuat file dapat didownload secara publik dengan memberikan peran Storage Object User kepada semua pengguna di bucket.
Untuk memverifikasi bahwa file yang diupload selalu merupakan versi terbaru, Anda dapat menyesuaikan perilaku caching-nya dengan menyetel header
Cache-Control
keno-cache
. Setelan ini mencegah browser dan server perantara menyimpan salinan file, sehingga Chrome selalu mendownload versi terbaru.Untuk mengetahui informasi selengkapnya tentang
Cache-Control
dan pengaruhnya terhadap caching browser, lihat Header Cache-Control.Salin URL publik file yang diupload.
Memperbarui setelan mode proxy
- Buka konsol Google Admin.
- Klik Perangkat -> Chrome -> Setelan.
- Pilih unit organisasi atau grup, lalu klik Mode proxy.
- Di halaman Mode proxy, pilih Selalu gunakan konfigurasi otomatis proxy yang ditetapkan di bawah dan masukkan URL file PAC dari Cloud Storage.
Mengonfigurasi kebijakan akses
Anda dapat menerapkan kebijakan akses di tingkat gateway aman atau tingkat aplikasi:
- Resource gateway aman: Terapkan kebijakan di tingkat gateway aman untuk mengontrol akses ke semua aplikasi terkait.
- Aplikasi individual: Untuk kontrol yang lebih terperinci, Anda dapat menerapkan kebijakan akses ke aplikasi individual.
Buat file format JSON bernama
setIamPolicy.json
dan tambahkan kode berikut.{ "policy": { object (POLICY) } }
Ganti POLICY dengan kebijakan izin IAM.
etag
dalam kebijakan harus sama denganetag
dalam kebijakan aktif, yang bisa Anda dapatkan dengan memanggil metodegetIamPolicy
.Untuk mengizinkan grup tertentu menggunakan gateway aman, berikan peran
roles/beyondcorp.securityGatewayUser
kepada grup tersebut.{ "policy": { "version": 3, "bindings": [ { "role": "roles/beyondcorp.securityGatewayUser", "members": [ "group:
" ] } ], "etag": "AA1jlb" } }Untuk ID lainnya, seperti
serviceAccount
,user
,group
,principal
, danprincipalSet
, dalam binding kebijakan, lihat Akun utama IAM.Terapkan kebijakan akses di gateway aman yang ditentukan dalam file JSON dengan memanggil
setIamPolicy
API.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @setIamPolicy.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}:setIamPolicy"
Untuk menerapkan kebijakan akses pada aplikasi, gunakan perintah berikut:
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @setIamPolicy.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications/${APPLICATION_NAME}:setIamPolicy"
Anda juga dapat menetapkan kebijakan akses dengan tingkat akses sebagai kondisi, seperti yang ditunjukkan dalam contoh berikut.
{ "policy": { "version": 3, "bindings": [ { "role": "roles/beyondcorp.securityGatewayUser", "members": [ "group:" ], "condition": { "expression": "'accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels", "title": "Source IP must be in US" } } ], "etag": "A1jlb" } }'
Menginstal ekstensi Chrome Enterprise Premium
Ekstensi Chrome Enterprise Premium adalah bagian integral dari gateway yang aman dan membantu melakukan autentikasi. Instal ekstensi untuk semua pengguna gateway aman. Untuk mengetahui informasi tentang cara men-deploy ekstensi, lihat Melihat dan mengonfigurasi aplikasi dan ekstensi.
- Buka konsol Google Admin.
- Klik Browser Chrome -> Aplikasi & Ekstensi.
- Klik tab Pengguna & browser.
- Untuk menambahkan ekstensi Chrome, klik tombol +.
- Telusuri
ekajlcmdfcigmdbphhifahdfjbkciflj
, lalu paksa penginstalan ke semua pengguna di unit organisasi atau grup. Klik ekstensi yang diinstal, lalu buka kolom Kebijakan untuk ekstensi dan berikan nilai JSON berikut:
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/MY_PROJECT_ID/locations/global/securityGateways/MY_SECURITY_GATEWAY_ID" } } } }
Pengalaman pengguna akhir
Setelah penyiapan selesai, pengguna akhir yang mengakses aplikasi SaaS yang dilindungi akan diberi atau ditolak aksesnya berdasarkan kebijakan akses yang diterapkan ke aplikasi.
Mengakses aplikasi di Chrome
Ekstensi Chrome Enterprise Premium diperlukan untuk mengarahkan traffic melalui gateway yang aman. Ekstensi menangani autentikasi antara pengguna dan gateway aman. Ekstensi diinstal secara otomatis melalui kebijakan domain.
Saat pengguna mengakses aplikasi SaaS yang Anda konfigurasi, traffic mereka akan melewati gateway yang aman, yang memeriksa apakah mereka memenuhi kebijakan akses. Jika pengguna lulus pemeriksaan kebijakan akses, mereka akan diberi akses ke aplikasi.
Jika akses browser ke aplikasi ditolak oleh kebijakan otorisasi, pengguna akan menerima pesan Access denied
.