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 tunnel yang aman dan menerapkan kebijakan akses kontekstual, gateway aman menjaga aplikasi pribadi tetap pribadi dan terlindungi dari eksposur internet publik. Konfigurasi browser sisi klien mengarahkan traffic untuk aplikasi ini melalui endpoint proxy gateway aman. Gateway aman kemudian menerapkan kebijakan akses yang relevan dan, jika diizinkan, mengarahkan permintaan ke aplikasi tujuan.

Gateway aman dapat membantu 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 lainnya): Anda harus terlebih dahulu membuat koneksi antara jaringan VPC pribadi Anda di Google Cloud dan jaringan non-Google Cloud . Hal ini biasanya dilakukan menggunakan Cloud VPN atau Cloud Interconnect. Gateway aman kemudian menggunakan koneksi untuk mengirim traffic ke jaringan VPC pribadi Anda, yang pada gilirannya merutekannya ke lingkungan non-Google Cloud .

Peran yang diperlukan

Minta administrator Anda untuk memberikan peran berikut:

Pelajari lebih lanjut peran Identity and Access Management (IAM).

Kebijakan Chrome Enterprise yang diperlukan

Autentikasi proxy gateway aman memerlukan skema autentikasi HTTP Basic. Jika Anda mengonfigurasi kebijakan autentikasi Chrome Enterprise untuk organisasi Anda, verifikasi setelan kebijakan berikut:

  • AuthSchemes harus menyertakan autentikasi basic (diaktifkan secara default jika kebijakan tidak disetel). Nilai lain dalam kebijakan ini tidak memengaruhi autentikasi proxy gateway aman.

  • BasicAuthOverHttpEnabled harus disetel ke 0 (false, atau dinonaktifkan) untuk melarang koneksi HTTP yang tidak aman menggunakan skema autentikasi Basic.

Sebelum memulai

Sebelum menyiapkan gateway aman, pastikan Anda memiliki hal berikut:

Menyiapkan lingkungan shell Anda

Untuk menyederhanakan proses penyiapan dan berinteraksi dengan API gateway aman, tentukan variabel lingkungan berikut di shell kerja Anda.

  • Parameter umum
    PROJECT_ID=PROJECT_ID
          

    Ganti kode berikut:

    • PROJECT_ID: ID project tempat gateway aman dibuat.
  • Parameter gateway aman
    SECURITY_GATEWAY_ID=SECURITY_GATEWAY_ID
    SECURITY_GATEWAY_DISPLAY_NAME="SECURITY_GATEWAY_DISPLAY_NAME"
          

    Ganti kode berikut:

    • SECURITY_GATEWAY_ID: ID gateway aman yang ingin Anda buat. ID 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.
    • 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 aman

Gateway aman Chrome Enterprise Premium adalah elemen penyusun dasar untuk membangun koneksi yang aman ke aplikasi Anda.

console

Untuk membuat gateway aman, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman gateway aman.
    Buka gateway aman
  2. Pilih project yang ingin Anda buatkan gateway aman.
  3. Untuk membuat gateway aman, klik Create new gateway dan tunggu hingga proses pembuatan gateway selesai. Anda dapat melacak progres di bagian Notifikasi di konsol Google Cloud .

gcloud

Untuk membuat gateway aman menggunakan gcloud, jalankan perintah berikut:

gcloud beyondcorp security-gateways create SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --display-name="SECURITY_GATEWAY_DISPLAY_NAME" \
    --service-discovery={}
      

REST

Untuk membuat gateway aman menggunakan REST API, jalankan perintah berikut:

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -X POST \
    -d '{ "display_name": "SECURITY_GATEWAY_DISPLAY_NAME", "service_discovery": {} }' \
    "https://beyondcorp.googleapis.com/v1/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 aman memerlukan izin IAM tertentu yang diberikan ke akun layanan pendelegasiannya. Dengan melakukan ini, gateway aman dapat menjangkau aplikasi pribadi Anda, baik yang dihosting dalam VPC Google Cloud atau di lingkungan non-Google Cloud yang terhubung melalui Cloud VPN atau Cloud Interconnect.

Untuk memberikan izin ke akun layanan, lakukan hal berikut:

  1. Dapatkan detail gateway aman Anda untuk mengidentifikasi email akun layanan pendelegasian. Email berada di kolom delegatingServiceAccount respons.

    gcloud

    gcloud 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://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID"
                   
  2. Tetapkan variabel lingkungan untuk akun layanan dan project VPC target Anda. Untuk mendapatkan email akun layanan, Anda dapat menggunakan perintah berikut:
    DELEGATING_SERVICE_ACCOUNT=`gcloud beyondcorp security-gateways describe SECURITY_GATEWAY_ID --project=PROJECT_ID --location=global --format="value(delegatingServiceAccount)"`
          
  3. Berikan peran IAM roles/beyondcorp.upstreamAccess ke akun layanan pendelegasian 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 pemilihan rute jaringan dan aturan firewall

Untuk mengizinkan traffic dari gateway aman menjangkau aplikasi web pribadi Anda, konfigurasikan aturan firewall, pemilihan rute jaringan, dan setelan DNS.

Aturan firewall untuk aplikasi di Google Cloud

Jika aplikasi web pribadi Anda dihosting dalam jaringan VPC Google Cloud , seperti di VM Compute Engine, layanan Google Kubernetes Engine dengan IP internal, atau di balik load balancer TCP/UDP internal, konfigurasikan aturan firewall VPCGoogle Cloud . Tindakan ini mengizinkan traffic TCP masuk dari rentang IP gateway aman: 136.124.16.0/20.

gcloud

Untuk membuat aturan firewall menggunakan gcloud, jalankan perintah berikut:

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
   --project=PRIVATE_VPC_PROJECT_ID \
   --network=NETWORK_NAME \
   --allow=tcp \
   --source-ranges=136.124.16.0/20
      

Ganti kode berikut:

  • FIREWALL_RULE_NAME: Nama untuk aturan firewall Anda.
  • PRIVATE_VPC_PROJECT_ID: ID project tempat jaringan VPC Anda dihosting.
  • NETWORK_NAME: Nama jaringan VPC tempat aplikasi Anda dihosting.

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 Google Cloud Anda menggunakan Cloud VPN atau Cloud Interconnect, konfigurasikan aturan firewall di firewall lokal atau kontrol keamanan jaringan yang setara, seperti grup keamanan dan ACL jaringan, di lingkungan cloud lainnya. Tindakan ini mengizinkan traffic TCP masuk dari rentang IP gateway aman: 136.124.16.0/20.

Mengonfigurasi pemilihan rute 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 lainnya, jaringan eksternal Anda harus membuat jalur kembali ke rentang IP gateway aman berikut: 136.124.16.0/20.

Pastikan jaringan pribadi Anda dapat menjangkau rentang IP gateway aman melalui Cloud VPN atau Cloud Interconnect:

  • Pemilihan rute dinamis: Jika Anda menggunakan pemilihan rute dinamis, seperti Border Gateway Protocol (BGP) dengan Cloud Router, tetapkan mode pemilihan rute dinamis jaringan VPC Anda ke Global agar rute yang dipelajari melalui BGP diberitahukan ke semua region dalam jaringan VPC. Karena gateway aman adalah layanan global, pemilihan rute dinamis global memastikan bahwa traffic yang tiba dari region mana pun dapat menjangkau aplikasi pribadi Anda.

    Pastikan juga bahwa Cloud Router Anda di Google Cloud secara eksplisit memberitahukan rentang IP gateway aman ke perangkat BGP lokal Anda. Meskipun BGP secara dinamis bertukar banyak rute, rentang IP gateway aman memerlukan pemberitahuan eksplisit.

    gcloud

    Untuk memeriksa apakah rentang sumber diberitahukan, jalankan perintah berikut:

    gcloud compute routers list-bgp-routes ROUTER_NAME \
    --peer=PEER_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --route-direction=OUTBOUND \
    --address-family=IPV4 \
    --destination-range=136.124.16.0/20
          

    Ganti kode berikut:

    • ROUTER_NAME: nama Cloud Router Anda
    • PEER_NAME: nama peer BGP Anda
    • REGION: region tempat router Anda berada
    • PROJECT_ID: ID project yang berisi router
  • Pemilihan rute 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.

    Jika Anda mengonfigurasi Cloud VPN dengan rute statis, bukan pemilihan rute dinamis (BGP), rute tersebut hanya tersedia di region tertentu tempat tunnel VPN dibuat. Karena gateway aman adalah layanan global, traffic masuk yang tiba dari region lain tidak akan dapat menjangkau aplikasi pribadi Anda karena rute statis tidak diberitahukan secara global di seluruh region. Untuk menghindari kegagalan pemilihan rute lintas region saat menggunakan rute statis, lakukan salah satu tindakan berikut:

    • Beralih ke perutean dinamis (BGP): Tetapkan mode perutean dinamis jaringan VPC Anda ke Global agar rute yang dipelajari melalui BGP tersedia di semua region dalam jaringan VPC.

    • Konfigurasi kebijakan egress: Saat Anda membuat resource aplikasi, konfigurasi kebijakan egress di jaringan upstream untuk memaksa traffic dari gateway aman keluar di region tertentu tempat koneksi Cloud VPN atau Cloud Interconnect Anda dibuat.

    Saat menggunakan pemilihan rute statis, Cloud VPN harus berada di salah satu wilayah yang didukung berikut:

    • africa-south1
    • asia-east1
    • asia-east2
    • asia-northeast1
    • asia-northeast2
    • asia-northeast3
    • asia-south1
    • asia-south2
    • asia-southeast1
    • asia-southeast2
    • asia-southeast3
    • australia-southeast2
    • europe-central2
    • europe-north1
    • europe-north2
    • europe-southwest1
    • europe-west1
    • europe-west10
    • europe-west12
    • europe-west2
    • europe-west3
    • europe-west4
    • europe-west6
    • europe-west8
    • europe-west9
    • me-central1
    • me-central2
    • me-west1
    • northamerica-northeast1
    • northamerica-northeast2
    • northamerica-south1
    • southamerica-east1
    • southamerica-west1
    • us-central1
    • us-central2
    • us-east1
    • us-east4
    • us-east5
    • us-east7
    • us-south1
    • us-west1
    • us-west2
    • us-west3
    • us-west4
    • us-west8

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, pastikan zona tersebut dikonfigurasi dengan benar dan dapat diakses. Gateway aman menggunakan kemampuan resolusi DNS Cloud yang ada di VPC Anda.

  • Aplikasi di lingkungan non-Google Cloud atau 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 yang kredibel, seperti 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 tempat untuk merutekan traffic tersebut.

  1. Tetapkan variabel lingkungan yang diperlukan dengan menjalankan perintah berikut:
       APPLICATION_ID=APPLICATION_ID
       APP_DISPLAY_NAME="APP_DISPLAY_NAME"
       HOST_NAME=HOST_NAME
       PRIVATE_NETWORK_RESOURCE_NAME=PRIVATE_NETWORK_RESOURCE_NAME
       
    Ganti kode berikut:
    • APPLICATION_ID: ID unik untuk resource aplikasi.
    • APP_DISPLAY_NAME: Nama yang dapat dibaca manusia untuk ditampilkan.
    • HOST_NAME: Nama host utama yang diakses pengguna (misalnya, private.local).
    • PRIVATE_NETWORK_RESOURCE_NAME: Nama resource lengkap jaringan VPC (misalnya, projects/my-project/global/networks/my-network).
  2. Buat resource aplikasi.

    console

    Untuk membuat resource aplikasi menggunakan konsol Google Cloud , lakukan hal berikut:

    1. Di konsol Google Cloud , buka halaman gateway aman.
      Buka gateway aman
    2. Untuk menambahkan aplikasi, klik Add application.
    3. Pilih jenis aplikasi: Aplikasi pribadi.
    4. Masukkan detail aplikasi:
      • Nama aplikasi: Masukkan nama, misalnya, GitHub.
      • Pencocok domain: Masukkan daftar pola domain yang dipisahkan koma untuk dirutekan melalui gateway aman. Sertakan port dalam format domain:port. Karakter pengganti (*) diizinkan. Contoh: github.com:443.
    5. Konfigurasi Jaringan VPC:
      • In current project: Jika jaringan VPC Anda berada dalam project saat ini, pilih jaringan VPC dari menu drop-down.
      • In another project: Jika jaringan VPC Anda berada di project Google Cloud yang berbeda, tentukan nama resource lengkap jaringan VPC, misalnya, projects/my-project/global/networks/my-network.
    6. Opsional: Tentukan kebijakan egress: Pilih satu atau beberapa region Google Cloud dari menu drop-down. Jika Anda menggunakan rute statis regional, pilih region tempat koneksi Cloud VPN atau Cloud Interconnect Anda dibuat.
    7. Opsional: Tentukan kebijakan akses: Pilih kebijakan akses Access Context Manager. Anda dapat melewati langkah ini untuk panduan ini.
    8. Untuk membuat resource aplikasi, klik Create.

    gcloud

    Untuk membuat resource aplikasi menggunakan gcloud, jalankan perintah berikut:

    gcloud 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,ports=[443]" \
        --upstreams=network=name="PRIVATE_NETWORK_RESOURCE_NAME"
            

    Untuk menentukan region egress (misalnya, saat menggunakan rute statis), sertakan egressPolicy dalam flag --upstreams:

    gcloud 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,ports=[443]" \
        --upstreams=network=name="PRIVATE_NETWORK_RESOURCE_NAME",egressPolicy=regions=us-central1
            

    Ganti us-central1 dengan region Google Cloud (seperti europe-west1 atau asia-northeast1) yang sesuai dengan penyiapan pemilihan rute statis regional Anda. Jika tidak memiliki persyaratan pemilihan rute statis regional tertentu, Anda dapat menghapus kebijakan egress dari konfigurasi.

    REST

    Untuk membuat resource aplikasi dengan API, selesaikan langkah-langkah berikut:

    1. Buat file bernama application.json.

      {
      "display_name": "APP_DISPLAY_NAME",
      "endpoint_matchers": [
         {"hostname": "HOST_NAME", "ports": [443]}
      ],
      "upstreams": [{
         "network": {
            "name": "PRIVATE_NETWORK_RESOURCE_NAME"
         }
      }]
      }
               

      Untuk menentukan region egress (misalnya, saat menggunakan rute statis), tambahkan egress_policy ke konfigurasi upstream:

      {
      "display_name": "APP_DISPLAY_NAME",
      "endpoint_matchers": [
         {"hostname": "HOST_NAME", "ports": [443]}
      ],
      "upstreams": [{
         "network": {
            "name": "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 pemilihan rute statis regional Anda. Jika tidak memiliki persyaratan pemilihan rute statis regional tertentu, Anda dapat menghapus kebijakan egress dari konfigurasi.

    2. Panggil metode API Create.

      curl \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -H "Content-Type: application/json" \
          -X POST \
          -d @application.json \
          "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications?application_id=APPLICATION_ID"
                

Mengonfigurasi kebijakan akses

Anda dapat menerapkan kebijakan akses untuk mengontrol akses di tingkat aplikasi. Jika tidak ada kebijakan akses yang dikonfigurasi, akses ke aplikasi akan ditolak secara default.

console

Membuat kebijakan untuk beberapa aplikasi

Untuk mengonfigurasi kebijakan akses, lakukan hal berikut:

  1. Untuk membuat kebijakan yang berlaku untuk beberapa aplikasi yang ditautkan ke gateway aman, buka halaman Kebijakan.
    Buka Policies
  2. Untuk menambahkan kebijakan akses ke aplikasi, klik Create Policy.
  3. Dari menu drop-down, pilih aplikasi yang ingin Anda terapkan kebijakannya.
  4. Tambahkan akun utama ke kebijakan:

    Akun utama dapat berupa pengguna, grup, domain, atau akun layanan. Akun utama ini diberi atau ditolak aksesnya berdasarkan tingkat akses yang Anda tetapkan.

    1. Untuk menambahkan akun utama, klik Add principal.
    2. Di kolom Principal, masukkan alamat email pengguna, grup, akun layanan, atau nama domain.
    3. Di drop-down Tingkat Akses, pilih satu atau beberapa tingkat Akses Kontekstual yang telah ditetapkan. Akses hanya diberikan jika akun utama memenuhi kondisi tingkat akses yang dipilih.

    Untuk menambahkan lebih banyak akun utama, klik Add principal lagi dan ulangi sublangkahnya.

    Anda dapat membuat dan mengelola tingkat akses di Access Context Manager.

  5. Untuk menerapkan kebijakan ke aplikasi, klik Create Policy.

Mengubah kebijakan akses tingkat aplikasi

  1. Untuk mengubah kebijakan untuk satu aplikasi, buka halaman Applications.
    Buka Applications
  2. Untuk menemukan aplikasi yang ingin Anda edit, lakukan hal berikut:
    1. Dalam daftar Applications, telusuri aplikasi yang ingin Anda ubah.
    2. Untuk melihat detail aplikasi, klik menu Tindakan lainnya () dan pilih Lihat Detail.
  3. Untuk mengedit aplikasi, klik Edit.
  4. Tambahkan akun utama ke kebijakan:

    Akun utama dapat berupa pengguna, grup, domain, atau akun layanan. Akun utama ini diberi atau ditolak aksesnya berdasarkan tingkat akses yang Anda tetapkan.

    1. Untuk menambahkan akun utama, klik Add principal.
    2. Di kolom Principal, masukkan alamat email pengguna, grup, akun layanan, atau nama domain.
    3. Di menu drop-down Tingkat Akses, pilih satu atau beberapa tingkat Akses Kontekstual yang telah ditetapkan. Akses hanya diberikan jika akun utama memenuhi kondisi tingkat akses yang dipilih.

    Untuk menambahkan lebih banyak akun utama, klik Add principal lagi dan ulangi sublangkahnya.

    Anda dapat membuat dan mengelola tingkat akses di Access Context Manager.

  5. Untuk menerapkan kebijakan ke aplikasi, klik Save.

gcloud

Menambahkan binding tingkat gateway Penemuan Layanan

Sebelum memberi pengguna akses ke aplikasi, pastikan pengguna memiliki izin Penemuan Layanan di tingkat Gateway Aman.

gcloud beyondcorp security-gateways add-iam-policy-binding SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --role="roles/beyondcorp.serviceDiscoveryUser" \
    --member=MEMBER
  

Ganti kode berikut:

  • SECURITY_GATEWAY_ID: ID gateway aman
  • PROJECT_ID: ID project tempat gateway aman dikonfigurasi
  • MEMBER: pengguna, grup, atau akun layanan yang ingin Anda beri peran penemuan layanan. Untuk mengetahui informasi selengkapnya, lihat Akun utama IAM

Menambahkan binding tingkat aplikasi

gcloud beyondcorp security-gateways applications add-iam-policy-binding APPLICATION_ID \
    --security-gateway=SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --role="roles/beyondcorp.sgApplicationUser" \
    --member=MEMBER
  

Ganti kode berikut:

  • APPLICATION_ID: ID resource aplikasi
  • SECURITY_GATEWAY_ID: ID gateway aman
  • PROJECT_ID: ID project tempat gateway aman dikonfigurasi
  • MEMBER: pengguna, grup, atau akun layanan yang ingin Anda beri peran penemuan layanan. Untuk mengetahui informasi selengkapnya, lihat Akun utama IAM

Menambahkan binding bersyarat

Anda juga dapat menambahkan binding dengan kondisi. Kondisi menentukan persyaratan, seperti alamat IP pengguna yang berasal dari lokasi tertentu. (Tingkat akses dapat ditentukan dalam kebijakan akses tingkat organisasi atau kebijakan akses tercakup.)

Contoh perintah berikut memberikan akses hanya jika alamat IP sumber berada dalam tingkat akses yang ditentukan:

gcloud beyondcorp security-gateways applications add-iam-policy-binding APPLICATION_ID \
    --security-gateway=SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --role="roles/beyondcorp.sgApplicationUser" \
    --member=MEMBER \
    --condition="expression='accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels,title=Source IP must be in US"
  

Menghapus binding tingkat gateway Penemuan Layanan

Mencabut izin Penemuan Layanan pengguna di tingkat Gateway Aman.

gcloud beyondcorp security-gateways remove-iam-policy-binding SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --role="roles/beyondcorp.serviceDiscoveryUser" \
    --member=MEMBER
  

Ganti kode berikut:

  • SECURITY_GATEWAY_ID: ID gateway aman
  • PROJECT_ID: ID project tempat gateway aman dikonfigurasi
  • MEMBER: pengguna, grup, atau akun layanan yang ingin Anda hapus peran Service Discovery-nya. Untuk mengetahui informasi selengkapnya, lihat Akun utama IAM

Menghapus binding tingkat aplikasi

gcloud beyondcorp security-gateways applications remove-iam-policy-binding APPLICATION_ID \
    --security-gateway=SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --role="roles/beyondcorp.sgApplicationUser" \
    --member=MEMBER
  

Ganti kode berikut:

  • APPLICATION_ID: ID resource aplikasi
  • SECURITY_GATEWAY_ID: ID gateway aman
  • PROJECT_ID: ID project tempat gateway aman dikonfigurasi
  • MEMBER: pengguna, grup, atau akun layanan yang ingin Anda hapus peran Service Discovery-nya. Untuk mengetahui informasi selengkapnya, lihat Akun utama IAM

Menghapus binding bersyarat

Anda juga dapat menghapus binding dengan kondisi. Kondisi menentukan persyaratan, seperti alamat IP pengguna yang berasal dari lokasi tertentu. (Tingkat akses dapat ditentukan dalam kebijakan akses tingkat organisasi atau kebijakan akses tercakup.)

Contoh perintah berikut menghapus binding bersyarat dengan tingkat akses yang ditentukan:

gcloud beyondcorp security-gateways applications remove-iam-policy-binding APPLICATION_ID \
    --security-gateway=SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --role="roles/beyondcorp.sgApplicationUser" \
    --member=MEMBER \
    --condition="expression='accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels,title=Source IP must be in US"
  

REST

Memperbarui kebijakan akses dengan aman

Perintah setIamPolicy mengganti seluruh kebijakan yang ada dengan kebijakan yang Anda berikan. Untuk menghindari penghapusan izin yang ada secara tidak sengaja, sebaiknya gunakan pola "baca-ubah-tulis" berikut. Pola ini membantu mencegah penghapusan izin yang ada secara tidak sengaja.

  1. Read: Menyimpan kebijakan akses saat ini ke file.
  2. Ubah: Edit file kebijakan secara lokal untuk menambahkan atau mengubah izin.
  3. Tulis: Terapkan file kebijakan yang telah diperbarui.

Menetapkan kebijakan tingkat gateway Penemuan Layanan

Untuk memberikan izin penemuan layanan, Anda harus menetapkan kebijakan akses di gateway aman, bukan di aplikasi individual. Hal ini mengikuti pola "baca-ubah-tulis" yang sama.

Ambil kebijakan saat ini dan simpan ke file bernama gateway_policy.json.

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID:getIamPolicy" > gateway_policy.json
  

Selanjutnya, buka file gateway_policy.json di editor teks dan tambahkan akun utama yang diperlukan ke daftar members untuk peran roles/beyondcorp.serviceDiscoveryUser, mirip dengan modifikasi tingkat aplikasi.

File gateway_policy.json mirip dengan contoh berikut:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.serviceDiscoveryUser",
      "members": [
        "group:existing-group@example.com"
      ]
    }
  ],
  "etag": "BwXN8_d-bOM="
}
  

Anda juga dapat menambahkan jenis akun utama lainnya, seperti serviceAccount, user, group, principal, dan principalSet, dalam binding kebijakan. Untuk mengetahui informasi selengkapnya, lihat Akun utama IAM.

Terapkan kebijakan yang telah diperbarui:

jq '{policy: .}' gateway_policy.json | curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @- \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID:setIamPolicy"
  

Menetapkan kebijakan akses tingkat aplikasi

Mendapatkan kebijakan saat ini

Mengambil kebijakan saat ini. Kolom etag mencegah pembaruan yang bertentangan jika beberapa administrator melakukan perubahan secara bersamaan.

Perintah berikut mengambil kebijakan dan menyimpannya ke file bernama policy.json.

curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications/APPLICATION_ID:getIamPolicy" > policy.json
  

Ganti kode berikut:

  • PROJECT_ID: ID project tempat gateway aman dikonfigurasi
  • SECURITY_GATEWAY_ID: ID gateway aman
  • APPLICATION_ID: ID resource aplikasi

Perintah ini akan membuat file policy.json yang berisi kebijakan saat ini.

Mengubah file kebijakan

Untuk memberi grup akses agar dapat menggunakan gateway aman, lakukan hal berikut:

  1. Buka file policy.json di editor teks.
  2. Tambahkan grup ke daftar members untuk peran roles/beyondcorp.securityGatewayUser.

File policy.json mirip dengan contoh berikut:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.sgApplicationUser",
      "members": [
        "group:existing-group@example.com"
      ]
    }
  ],
  "etag": "BwXN8_d-bOM="
}
      

Untuk menambahkan grup tambahan, tambahkan entri baru ke array members. Sertakan koma setelah entri sebelumnya. Contoh berikut menambahkan new-group@example.com:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.sgApplicationUser",
      "members": [
        "group:existing-group@example.com",
        "group:new-group@example.com"
      ]
    }
  ],
  "etag": "BwXN8_d-bOM="
}
    

Anda juga dapat menambahkan jenis akun utama lainnya, seperti serviceAccount, user, group, principal, dan principalSet, dalam binding kebijakan. Untuk mengetahui informasi selengkapnya, lihat Akun utama IAM.

Menerapkan kebijakan yang telah diperbarui

Setelah mengedit dan menyimpan file policy.json, terapkan ke resource menggunakan perintah setIamPolicy. Perintah ini menggunakan etag dari file Anda untuk memastikan bahwa Anda mengupdate versi yang benar.

jq '{policy: .}' policy.json | curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @- \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications/APPLICATION_ID:setIamPolicy"
  

Ganti kode berikut:

  • PROJECT_ID: ID project tempat gateway aman dikonfigurasi
  • SECURITY_GATEWAY_ID: ID gateway aman
  • APPLICATION_ID: ID resource aplikasi

Menambahkan kebijakan akses bersyarat

Anda juga dapat menetapkan kebijakan akses dengan kondisi. Kondisi menentukan persyaratan, seperti alamat IP pengguna yang berasal dari lokasi tertentu. (Tingkat akses dapat ditentukan dalam kebijakan akses tingkat organisasi atau kebijakan akses tercakup.)

Contoh kebijakan berikut memberikan akses hanya jika alamat IP sumber berada dalam tingkat akses yang ditentukan:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.sgApplicationUser",
      "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.

Meningkatkan Keamanan dengan Akses Kontekstual

Untuk lebih meningkatkan keamanan dan memastikan bahwa hanya instance Google Chrome terkelola yang dapat mengakses aplikasi web Anda melalui Gateway Keamanan, sebaiknya tambahkan aturan Akses Kontekstual (CAA). Aturan ini memverifikasi bahwa profil Chrome pengguna berada dalam pengelolaan, sehingga mencegah potensi penyalahgunaan dari browser yang tidak dikelola atau berbahaya.

Catatan: Fitur ini memerlukan penginstalan dan penyiapan ekstensi Verifikasi Endpoint.

Anda dapat menerapkannya dengan menambahkan kondisi ke tingkat akses kustom Access Context Manager. Berikut adalah contoh kondisi yang dapat Anda sesuaikan:

  device.chrome.management_state == ChromeManagementState.CHROME_MANAGEMENT_STATE_PROFILE_MANAGED
  

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi, memeriksa, dan mengelola status ini, lihat Atribut browser Chrome.

Menginstal ekstensi Chrome Enterprise Premium

Ekstensi Chrome Enterprise Premium adalah bagian integral dari gateway aman, dan membantu autentikasi. Instal ekstensi untuk semua pengguna gateway aman. Untuk mengetahui informasi tentang cara men-deploy ekstensi, lihat Melihat dan mengonfigurasi aplikasi dan ekstensi. Untuk menginstal ekstensi Chrome Enterprise Premium, lakukan hal berikut:

  1. Buka konsol Google Admin.
  2. Klik Browser Chrome > Aplikasi & Ekstensi.
  3. Klik tab Users & browsers.
  4. Untuk menambahkan ekstensi Chrome, klik tombol +, lalu pilih Tambahkan aplikasi atau ekstensi Chrome menurut ID.
  5. Telusuri ekstensi Secure Enterprise Browser menggunakan ID berikut, lalu tetapkan kebijakan penginstalannya ke Instal otomatis untuk semua pengguna di unit organisasi atau grup:

    ekajlcmdfcigmdbphhifahdfjbkciflj
  6. Klik ekstensi yang diinstal, dan di kolom Kebijakan untuk ekstensi, masukkan nilai JSON berikut:

    {
      "securityGateway": {
        "Value": {
          "authentication": {},
          "context": { "resource": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" },
          "serviceDiscovery": { "routes": {} }
        }
      }
    }

    Ganti kode berikut:

    • PROJECT_ID: ID project tempat gateway aman dikonfigurasi
    • SECURITY_GATEWAY_ID: ID gateway aman

  7. Untuk menyimpan konfigurasi, klik Save.

Penyiapan file PAC lama

Jika diaktifkan, Penemuan Layanan memungkinkan klien Browser Chrome mendeteksi dan merutekan traffic secara otomatis ke aplikasi yang dikonfigurasi melalui gateway aman, sehingga tidak perlu lagi mengonfigurasi perutean secara manual menggunakan file PAC.

Jika Penemuan Layanan tidak diaktifkan di gateway aman, Anda memiliki penyiapan lama. Anda harus mengonfigurasi file PAC untuk mengontrol pemilihan rute di klien Browser Chrome.

Untuk memeriksa apakah Anda memiliki penyiapan lama, gunakan perintah berikut untuk melihat apakah penemuan layanan diaktifkan:

gcloud

gcloud beyondcorp security-gateways describe SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global | grep -i "serviceDiscovery"
      

REST

curl --silent \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" | grep -i "serviceDiscovery"
      

Jika perintah tidak menampilkan output, gateway Anda menggunakan penyiapan lama. Untuk gateway yang menggunakan penyiapan lama, pemilihan rute ditangani menggunakan file PAC yang dihosting.

Langkah 1: Buat dan hosting file PAC

  1. Buat file bernama pac_config.js dengan JavaScript berikut, ganti HOST_NAME dengan domain aplikasi Anda (misalnya, myapp.example.com):

    function FindProxyForURL(url, host) {
      const PROXY = "HTTPS via.prod.securegateway.goog:443";
      const sites = ["HOST_NAME"];
    
      for (const site of sites) {
        if (shExpMatch(url, 'https://' + site + '/*') || shExpMatch(url, '*.' + site + '/*')) {
          return PROXY;
        }
      }
      return 'DIRECT';
    }
  2. Upload file PAC ke layanan hosting, seperti bucket Cloud Storage.

    • Pastikan file dapat didownload secara publik.
    • Tetapkan header HTTP Cache-Control ke no-cache agar browser selalu mengambil aturan pemilihan rute terbaru.
  3. Salin URL publik file PAC yang diupload.

Langkah 2: Terapkan file PAC di konsol Google Admin

  1. Buka konsol Google Admin.
  2. Buka Perangkat > Chrome > Setelan.
  3. Pilih unit organisasi atau grup Anda, lalu klik Mode proxy.
  4. Di bagian Proxy mode, pilih Always use the proxy auto-config specified below.
  5. Masukkan URL publik file PAC yang dihosting ke kolom yang disediakan.
  6. Klik Simpan.

Langkah 3: Konfigurasi ekstensi Chrome Enterprise Premium

Ekstensi diperlukan untuk menangani autentikasi. Kebijakan ekstensi ini berbeda dengan konfigurasi standar karena mengecualikan blok serviceDiscovery.

  1. Di konsol Google Admin, buka Browser Chrome > Aplikasi & Ekstensi.
  2. Buka tab Pengguna & browser dan pastikan ekstensi Secure Enterprise Browser (ekajlcmdfcigmdbphhifahdfjbkciflj) ditambahkan dan diterapkan.
  3. Klik ekstensi, dan di kolom Kebijakan untuk ekstensi, masukkan nilai JSON berikut:

    {
      "securityGateway": {
        "Value": {
          "authentication": {},
          "context": {
            "resource": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID"
          }
        }
      }
    }
  4. Klik Simpan.

Transisi ke penyiapan penemuan layanan

Untuk mentransisikan gateway aman lama Anda dari penyiapan file PAC ke penyiapan penemuan layanan yang lebih baru, Anda harus mengaktifkan fitur ini secara manual dan memperbarui konfigurasi Anda.

  1. Mengaktifkan penemuan layanan di gateway aman Anda: Perbarui gateway yang ada untuk mengaktifkan penemuan layanan.

    gcloud

    gcloud beyondcorp security-gateways update SECURITY_GATEWAY_ID \
    --project=PROJECT_ID \
    --location=global \
    --service-discovery={}
          

    REST

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{ "service_discovery": {} }' \
    "https://beyondcorp.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID?updateMask=service_discovery"
          
  2. Tetapkan kebijakan akses tingkat gateway: Berikan peran roles/beyondcorp.serviceDiscoveryUser kepada pengguna di tingkat gateway agar mereka dapat menggunakan penemuan layanan. Ikuti petunjuk di bagian Menambahkan binding tingkat gateway Penemuan Layanan.

  3. Perbarui konfigurasi ekstensi Chrome Enterprise Premium: Ikuti petunjuk di bagian Menginstal ekstensi Chrome Enterprise Premium untuk memperbarui kebijakan ekstensi Anda. Konfigurasi JSON baru harus menyertakan blok "serviceDiscovery": { "routes": {} }.

  4. Hapus file PAC lama: Setelah penemuan layanan aktif, file PAC lama tidak lagi diperlukan.

    1. Di konsol Google Admin, buka Perangkat > Chrome > Setelan > Setelan pengguna & browser > Jaringan.
    2. Temukan setelan Mode proxy.
    3. Hapus URL konfigurasi otomatis proxy (PAC) atau alihkan setelan dari Selalu gunakan konfigurasi otomatis proxy yang ditetapkan di bawah ke mode yang sesuai untuk jaringan Anda, seperti Izinkan pengguna mengonfigurasi.
    4. Klik Simpan.

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 aman. Ekstensi ini menangani autentikasi antara pengguna dan gateway aman. Ekstensi ini otomatis diinstal melalui kebijakan domain.

Saat pengguna mengakses aplikasi SaaS yang Anda konfigurasi, traffic mereka akan melewati gateway 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