Akses yang aman ke aplikasi web pribadi

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 terowongan yang aman dan menerapkan kebijakan akses yang sesuai konteks, gateway yang 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 yang 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 VPCGoogle Cloud 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. Gateway yang aman kemudian 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:

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 memiliki panjang 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. 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. Layanan ini mengalokasikan project dan jaringan khusus, yang memberikan isolasi dan keamanan.

Untuk membuat gateway yang aman, selesaikan langkah-langkah berikut.

  1. Buat file bernama securityGateway.json menggunakan contoh berikut.

    {
       "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME",
    }
    
  2. Buat resource gateway yang aman dengan memanggil API Create.

    curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -X POST \
    -d @securityGateway.json \
    "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 gateway yang aman berhasil mengirim traffic ke jaringan VPC Anda, gateway tersebut memerlukan izin IAM tertentu yang diberikan ke akun layanan yang mendelegasikan. Hal ini memungkinkan gateway yang aman menjangkau aplikasi pribadi Anda, baik yang dihosting dalam VPC Google Cloud maupun di lingkungan non-Google Cloud yang terhubung melalui Cloud VPN atau Cloud Interconnect.

  1. Identifikasi email akun layanan yang mendelegasikan. Email ini berada di kolom delegatingServiceAccount resource gateway keamanan Anda.

    {
       "name": "projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}",
       "createTime": "2024-10-28T20:46:50.949740776Z",
       "updateTime": "2024-10-29T18:41:18.520661431Z",
       "state": "RUNNING",
       "delegatingServiceAccount": "security-gateway@my-gateway-service-account.iam.gserviceaccount.com"
    }
    
  2. Tetapkan variabel lingkungan untuk akun layanan dan project VPC target Anda.

    DELEGATING_SERVICE_ACCOUNT="security-gateway@my-gateway-service-account.iam.gserviceaccount.com" # Replace with actual value
    
  3. Berikan peran IAM roles/beyondcorp.upstreamAccess kepada akun layanan yang mendelegasikan di project VPC pribadi Anda.

    gcloud projects add-iam-policy-binding PRIVATE_VPC_PROJECT_ID \
        --role=roles/beyondcorp.upstreamAccess \
        --member=serviceAccount:${DELEGATING_SERVICE_ACCOUNT}
    

    Ganti PRIVATE_VPC_PROJECT_ID dengan Project ID jaringan VPC tempat aplikasi web pribadi di-deploy atau tempat Cloud VPN/Interconnect dikonfigurasi.

Tunggu sekitar dua menit hingga 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 komunikasi dua arah saat melindungi aplikasi pribadi yang dihosting di lingkungan non-Google Cloud , seperti lokal atau cloud lain, jaringan eksternal Anda harus membuat jalur kembali ke alamat 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 diGoogle Cloud secara eksplisit mengiklankan rentang IP gateway aman ke perangkat BGP lokal Anda. 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 yang ada di VPC Anda.

  • 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 membuatnya dalam framework gateway yang 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.

  1. Tetapkan variabel lingkungan yang diperlukan dengan menjalankan perintah berikut:

    APPLICATION_ID=MY_APPLICATION_ID
    APP_DISPLAY_NAME="MY_APP_DISPLAY_NAME"
    

    Ganti kode berikut:

    • MY_APPLICATION_ID: ID unik untuk resource aplikasi.
    • MY_APP_DISPLAY_NAME: Nama yang dapat dibaca manusia untuk ditampilkan.
  2. Buat file JSON bernama application.json menggunakan contoh berikut.

    {
    "display_name": "MY_APP_DISPLAY_NAME",
    "endpoint_matchers": [
      {"hostname": "MY_HOST_NAME"}
    ],
    "upstreams": [{
     "network": {
        "name": "MY_PRIVATE_NETWORK_RESOURCE_NAME"
     }
    }]
    }
    

    Ganti MY_HOST_NAME dengan nama host utama yang diakses pengguna. Contoh, private.local. Nama host dapat memiliki panjang hingga 253 karakter, dan harus mematuhi 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

    Ganti MY_PRIVATE_NETWORK_RESOURCE_NAME dengan nama resource lengkap jaringan VPC tempat aplikasi Anda dihosting atau terhubung ke lingkungan non-Google Cloud Anda. Nama jaringan harus dalam format projects/{project}/global/networks/{network}

  3. Opsional: Tentukan region keluar.

    Dalam beberapa konfigurasi jaringan, Anda mungkin perlu mengontrol Google Cloud wilayah tempat traffic gateway aman keluar ke aplikasi pribadi Anda. Misalnya, hal ini berlaku jika Anda menggunakan rute statis melalui Cloud VPN atau Cloud Interconnect. Untuk konfigurasi ini, Anda dapat menambahkan kebijakan keluar ke konfigurasi upstream untuk aplikasi Anda. Kebijakan keluar ini mengarahkan gateway aman untuk merutekan traffic untuk aplikasi dari region Google Cloudyang ditentukan ke jaringan pribadi Anda.

    Berikut adalah contoh file JSON yang menyertakan egress_policy.

    {
    "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 region Google Cloud (seperti europe-west1 atau asia-northeast1) yang sesuai dengan penyiapan perutean statis regional Anda. Jika tidak memiliki persyaratan perutean statis regional tertentu, Anda dapat menghilangkan kebijakan keluar dari konfigurasi.

  4. Buat resource aplikasi dengan memanggil 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.

  1. 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.

  2. 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.

  3. Untuk memverifikasi bahwa file yang diupload selalu merupakan versi terbaru, Anda dapat menyesuaikan perilaku caching-nya dengan menyetel header Cache-Control ke no-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.

  4. Salin URL publik file yang diupload.

Memperbarui setelan mode proxy

  1. Buka konsol Google Admin.
  2. Klik Perangkat -> Chrome -> Setelan.
  3. Pilih unit organisasi atau grup, lalu klik Mode proxy.
  4. 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.
  1. 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 dengan etag dalam kebijakan aktif, yang bisa Anda dapatkan dengan memanggil metode getIamPolicy.

  2. 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, dan principalSet, dalam binding kebijakan, lihat Akun utama IAM.

  3. 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_ID}: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.

  1. Buka konsol Google Admin.
  2. Klik Browser Chrome -> Aplikasi & Ekstensi.
  3. Klik tab Pengguna & browser.
  4. Untuk menambahkan ekstensi Chrome, klik tombol +.
  5. Telusuri ekajlcmdfcigmdbphhifahdfjbkciflj, lalu paksa penginstalan ke semua pengguna di unit organisasi atau grup.
  6. 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.

Langkah berikutnya