Halaman ini memandu Anda melalui proses mengamankan aplikasi SaaS Anda melalui gateway aman Chrome Enterprise Premium.
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 SaaS Anda.
Cara kerja pengamanan akses ke aplikasi SaaS
Berikut adalah ringkasan umum tentang cara gateway aman melindungi aplikasi SaaS Anda:
- Setelan browser sisi klien merutekan traffic aplikasi melalui proxy gateway yang aman.
- Gateway yang aman memeriksa kebijakan akses kontekstual untuk mengizinkan akses klien (pengguna dan perangkat).
- Jika diizinkan, gateway akan meneruskan traffic ke aplikasi menggunakan alamat IP sumber unik yang ditetapkan ke gateway dan region Google Cloud tersebut. Untuk mengontrol akses, Anda dapat menambahkan alamat IP sumber khusus ini ke daftar yang diizinkan di aplikasi SaaS Anda.
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 diberikan kepada administrator yang menyiapkan semuanya: Level project: Admin Cloud BeyondCorp (
beyondcorp.admin
).Aplikasi SaaS yang ingin Anda lindungi. Aplikasi harus mendukung
IP allowlisting
untuk menerapkan pemeriksaan keamanan oleh Secure Gateway.
Batasan
Gateway aman Chrome Enterprise Premium memiliki batasan berikut: Gateway aman tidak mendukung aplikasi SaaS yang hanya mengizinkan konektivitas IPv6.
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
APPLICATION_ID=MY_APPLICATION_ID
APPLICATION_DISPLAY_NAME="MY_APPLICATION_DISPLAY_NAME
" HOST_NAME=MY_HOST_NAME
Ganti kode berikut:
MY_PROJECT_ID
: ID project tempat gateway aman dibuat.MY_APPLICATION_ID
: ID aplikasi Anda, sepertigithub
. Nama dapat berisi 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_APPLICATION_DISPLAY_NAME
: Nama yang dapat dibaca manusia untuk ditampilkan.MY_HOST_NAME
: Nama host aplikasi Anda. Contoh,github.com
. Panjang nama host maksimal 253 karakter, dan harus mengikuti salah satu format berikut:- Alamat IPv4 yang valid
- Alamat IPv6 yang valid
- Nama DNS yang valid
- Tanda bintang (*)
- Tanda bintang (*) diikuti dengan nama DNS yang valid
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. ID dapat terdiri dari maksimal 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. Panjang nama maksimal 63 karakter dan hanya boleh berisi 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.
Untuk membuat resource gateway aman, gunakan salah satu metode berikut.
gcloud
Jalankan perintah berikut. Untuk tanda --hubs
, tentukan
satu atau beberapa wilayah dari daftar berikut.
gcloud beta beyondcorp security-gateways create ${SECURITY_GATEWAY_ID} \
--project=${PROJECT_ID} \
--location=global \
--display-name="MY_SECURITY_GATEWAY_DISPLAY_NAME
" \
--hubs=us-central1
REST
Panggil metode Create API dengan detail gateway dalam isi
permintaan. Untuk objek hubs
, tentukan satu atau beberapa wilayah dari daftar berikut.
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST \
-d '{ "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME
", "hubs": { "us-central1": {} } }' \
"https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
hubs
merepresentasikan resource regional yang diperlukan untuk mengaktifkan konektivitas keluar ke aplikasi target. Anda dapat memiliki satu hub untuk setiap region,
dan setiap hub menyediakan dua alamat IP. Anda dapat menentukan wilayah 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
Mengonfigurasi aplikasi SaaS
Setelah membuat gateway yang aman, Anda dapat mengonfigurasi aplikasi SaaS untuk menggunakan gateway yang aman untuk akses yang aman.
Dapatkan alamat IP yang dialokasikan oleh gateway aman untuk setiap hub. Dua alamat IP dialokasikan untuk suatu region.
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}"
Berikut adalah contoh respons
GET
dari gateway aman denganhubs
. Dalam contoh ini,hubs
dibuat di regionus-central1
danus-east1
, dan semua alamat IP yang ditampilkan dalam respons harus diizinkan di aplikasi SaaS.gcloud
createTime: 'CREATE_TIME' displayName: My security gateway hubs: us-central1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 us-east1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 name: projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID} state: RUNNING updateTime: 'UPDATE_TIME'
REST
{ "securityGateways": [ { "name": "projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}", "createTime": "CREATE_TIME", "updateTime": "UPDATE_TIME", "displayName": "My security gateway", "state": "RUNNING", "hubs": { "us-central1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", ] } }, "us-east1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", ] } } } } ] }
Tambahkan alamat IP ke daftar yang diizinkan IP aplikasi SaaS Anda. Misalnya, untuk aplikasi GitHub, Anda dapat mengikuti panduan ini: Mengelola alamat IP yang diizinkan untuk organisasi Anda.
Membuat resource aplikasi
Informasi berikut akan memandu Anda melalui proses penyiapan dan konfigurasi resource aplikasi gateway yang aman.
Buat resource aplikasi gateway aman di Google Cloud
Resource aplikasi Google Cloud adalah sub-resource dari resource
gateway yang aman. Buat resource aplikasi dengan memanggil
Create
API.
gcloud
gcloud beta beyondcorp security-gateways applications create ${APPLICATION_ID} \ --project=${PROJECT_ID} \ --security-gateway=${SECURITY_GATEWAY_ID} \ --location=global \ --display-name="${APPLICATION_DISPLAY_NAME}" \ --endpoint-matchers="hostname=${HOST_NAME}"
REST
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d "{ \"display_name\": \"${APPLICATION_DISPLAY_NAME}\", \"endpoint_matchers\": [{hostname: \"${HOST_NAME}\"}] }" \ "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 yang 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 untuk mengontrol akses di tingkat gateway aman, yang memengaruhi semua aplikasi terkait, atau di tingkat aplikasi individual untuk kontrol yang lebih terperinci.
Memperbarui kebijakan akses dengan aman
Perintah setIamPolicy
akan menggantikan seluruh kebijakan yang ada dengan kebijakan yang Anda berikan. Untuk menghindari penghapusan izin yang ada secara tidak sengaja, sebaiknya
Anda mengikuti pola "baca-ubah-tulis". Hal ini memastikan bahwa Anda hanya menambahkan
ke kebijakan yang ada, bukan menimpanya.
Baca: Pertama, dapatkan kebijakan akses saat ini.
Ubah: Edit file kebijakan secara lokal untuk menambahkan atau mengubah izin.
Tulis: Terapkan file kebijakan yang telah diperbarui.
Mendapatkan kebijakan saat ini
Ambil kebijakan saat ini sebelum melakukan perubahan.
Kolom etag
dalam kebijakan berfungsi sebagai ID versi. Hal ini mencegah
konflik pembaruan jika beberapa administrator melakukan perubahan secara bersamaan.
Perintah berikut mengambil kebijakan dan menyimpannya ke file bernama
policy.json
.
Mendapatkan kebijakan untuk gateway yang aman:
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}:getIamPolicy" > policy.json
Mendapatkan kebijakan untuk masing-masing aplikasi:
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}/applications/${APPLICATION_ID}:getIamPolicy" > policy.json
Setelah Anda menjalankan perintah, file policy.json
yang berisi kebijakan saat ini akan dibuat.
Ubah file kebijakan
Buka file policy.json
di editor teks. Untuk memberikan akses grup agar dapat menggunakan
gateway aman, tambahkan grup ke daftar members
untuk peran
roles/beyondcorp.securityGatewayUser
.
policy.json
Anda akan mirip dengan contoh berikut:
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:existing-group@example.com"
]
}
],
"etag": "BwXN8_d-bOM="
}
}
Untuk menambahkan grup baru, tambahkan entri baru ke array members
. Sertakan koma
setelah entri sebelumnya.
Contoh berikut menambahkan new-group@example.com
:
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:existing-group@example.com",
"group:new-group@example.com"
]
}
],
"etag": "BwXN8_d-bOM="
}
}
Anda juga dapat menambahkan jenis anggota lain, seperti serviceAccount
, user
, group
,
principal
, dan principalSet
, dalam pengikatan kebijakan. Lihat
Akun utama IAM untuk mengetahui informasi selengkapnya.
Menerapkan kebijakan yang diperbarui
Setelah mengedit dan menyimpan file policy.json
, terapkan ke resource menggunakan
perintah setIamPolicy
. Perintah ini menggunakan etag
dari file Anda untuk
memastikan Anda mengupdate versi yang benar.
Terapkan kebijakan ke gateway yang aman:
jq '{policy: .}' policy.json | curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @- \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}:setIamPolicy"
Menerapkan kebijakan ke masing-masing aplikasi:
jq '{policy: .}' policy.json | curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @- \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications/${APPLICATION_ID}:setIamPolicy"
Menambahkan kebijakan akses bersyarat
Anda juga dapat menetapkan kebijakan akses dengan ketentuan. Kondisi menentukan persyaratan, seperti alamat IP pengguna yang berasal dari lokasi tertentu.
Contoh berikut menunjukkan kebijakan yang memberikan akses hanya jika alamat IP sumber berada dalam tingkat akses tertentu:
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:group@example.com"
],
"condition": {
"expression": "request.auth.access_levels.contains('accessPolicies/1234567890/accessLevels/in_us')",
"title": "Source IP must be in US"
}
}
],
"etag": "BwXN8_d-bOM="
}
}
Untuk menerapkan kebijakan ini, ikuti langkah-langkah yang dijelaskan sebelumnya.
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 ini 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
.