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 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 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 Google Cloud Anda.

  • 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 aman 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).

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
    PROJECT_ID=PROJECT_ID
          

    Ganti kode berikut:

    • PROJECT_ID: ID project tempat Secure Gateway 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 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.
    • 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.

console

Untuk membuat gateway aman, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman secure gateway.
    Buka gateway aman
  2. Pilih project yang ingin Anda buat gateway amannya.
  3. Untuk membuat gateway yang aman, klik Buat gateway baru dan tunggu hingga proses pembuatan gateway selesai. Anda dapat melacak progres di bagian Notifications pada 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 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.

Untuk memberikan izin ke akun layanan, lakukan hal berikut:

  1. Dapatkan detail gateway aman Anda untuk mengidentifikasi email akun layanan yang mendelegasikan. Email ada 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 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, konfigurasi 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 Google Cloud aturan firewall VPC. Hal ini memungkinkan 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 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 aman: 136.124.16.0/20.

Mengonfigurasi perutean dari lingkungan non-Google Cloud ke gateway yang 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: 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.

    gcloud

    Untuk memeriksa apakah rentang sumber diiklankan, 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.
  • 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 yang 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 yang 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 catatan 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 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 eksternal ke zona pribadi Cloud DNS VPC Anda, Anda harus mengonfigurasi Cloud DNS untuk meneruskan kueri untuk domain pribadi ini. Biasanya, hal ini 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.

  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 secure gateway.
      Buka gateway aman
    2. Untuk menambahkan aplikasi, klik Tambahkan aplikasi.
    3. Pilih jenis aplikasi: Aplikasi pribadi.
    4. Masukkan detail aplikasi:
      • Nama aplikasi: Masukkan nama, misalnya, GitHub.
      • Pencocokan domain: Masukkan daftar pola domain yang dipisahkan koma untuk merutekan melalui gateway aman. Sertakan port dalam format domain:port. Karakter pengganti (*) diizinkan. Misalnya: github.com:443.
    5. Konfigurasi Jaringan VPC:
      • Di project saat ini: Jika jaringan VPC Anda berada di project saat ini, pilih jaringan VPC dari menu drop-down.
      • Di project lain: Jika jaringan VPC Anda berada di project Google Cloud lain, tentukan nama lengkap resource jaringan VPC, misalnya, projects/my-project/global/networks/my-network.
    6. Opsional: Tentukan kebijakan keluar: Pilih satu atau beberapa Google Cloud region dari menu drop-down.
    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 Buat.

    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 traffic keluar (misalnya, saat menggunakan rute statis), tambahkan flag --egress-regions:

    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 Google Cloud region (seperti europe-west1 atau asia-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:

    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 traffic keluar (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 Google Cloud region (seperti europe-west1 atau asia-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.

    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 Kebijakan
  2. Untuk menambahkan kebijakan akses ke aplikasi, klik Create Policy.
  3. Dari daftar drop-down, pilih aplikasi yang ingin Anda terapkan kebijakan.
  4. Tambahkan akun utama ke kebijakan:

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

    1. Untuk menambahkan akun utama, klik Tambahkan akun utama.
    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 ditentukan sebelumnya. Akses hanya diberikan jika prinsipal memenuhi kondisi tingkat akses yang dipilih.

    Untuk menambahkan lebih banyak akun utama, klik Tambahkan akun utama lagi dan ulangi substep.

    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 satu aplikasi, buka halaman Aplikasi.
    Buka Aplikasi
  2. Untuk menemukan aplikasi yang ingin Anda edit, lakukan langkah berikut:
    1. Dalam daftar Aplikasi, cari 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:

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

    1. Untuk menambahkan akun utama, klik Tambahkan akun utama.
    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 ditentukan sebelumnya. Akses hanya diberikan jika prinsipal memenuhi kondisi tingkat akses yang dipilih.

    Untuk menambahkan lebih banyak akun utama, klik Tambahkan akun utama lagi dan ulangi substep.

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

  5. Untuk menerapkan kebijakan ke aplikasi, klik Simpan.

gcloud

Menambahkan binding tingkat gateway Service Discovery

Sebelum memberikan akses pengguna ke aplikasi, pastikan pengguna memiliki izin Penemuan Layanan di tingkat Secure Gateway.

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 Service Discovery. 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 Service Discovery. 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 Secure Gateway.

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 menggantikan 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. Baca: Simpan 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 Service Discovery

Untuk memberikan izin penemuan layanan, Anda harus menetapkan kebijakan akses di gateway keamanan, 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 pokok 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 anggota lain, seperti serviceAccount, user, group, principal, dan principalSet, dalam binding kebijakan. Untuk mengetahui informasi selengkapnya, lihat akun utama IAM.

Terapkan kebijakan yang 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 membuat file policy.json yang berisi kebijakan saat ini.

Ubah file kebijakan

Untuk memberikan akses grup 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 anggota lain, seperti serviceAccount, user, group, principal, dan principalSet, dalam binding kebijakan. Untuk mengetahui informasi selengkapnya, lihat akun utama IAM.

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.

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 ketentuan. 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 hanya instance Google Chrome terkelola yang dapat mengakses aplikasi web Anda melalui Security Gateway, sebaiknya tambahkan aturan Akses Kontekstual (CAA). Aturan ini memverifikasi bahwa profil Chrome pengguna dikelola, 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 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 yang aman, dan membantu autentikasi. Instal ekstensi untuk semua pengguna gateway aman. Untuk mengetahui informasi tentang 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 Pengguna & browser.
  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 paksa 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 Simpan.

Penyiapan file PAC lama

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

Jika Penemuan Layanan tidak diaktifkan di gateway aman Anda, Anda memiliki penyiapan lama. Anda harus mengonfigurasi file PAC untuk mengontrol perutean 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, berarti gateway Anda menggunakan penyiapan lama. Untuk gateway yang menggunakan penyiapan lama, pemilihan rute ditangani dengan menggunakan file PAC yang dihosting.

Langkah 1: Buat dan host 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 dari konfigurasi standar karena mengecualikan blok serviceDiscovery.

  1. Di konsol Google Admin, buka Browser Chrome > Aplikasi & Ekstensi.
  2. Buka tab Pengguna & browser, lalu pastikan ekstensi Secure Enterprise Browser (ekajlcmdfcigmdbphhifahdfjbkciflj) telah ditambahkan dan diterapkan.
  3. Klik ekstensi, lalu 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.

Beralih ke penyiapan penemuan layanan

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

  1. Aktifkan 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: Beri pengguna peran roles/beyondcorp.serviceDiscoveryUser di tingkat gateway agar mereka dapat menggunakan penemuan layanan. Ikuti petunjuk di bagian Menambahkan binding tingkat gateway Service Discovery.

  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 yang aman. Ekstensi menangani autentikasi antara pengguna dan gateway yang aman. Ekstensi akan otomatis diinstal 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