Membuat dan mengelola profil keamanan pemfilteran URL

Profil keamanan pemfilteran URL adalah struktur kebijakan Layer 7 yang menggunakan filter URL untuk menentukan kebijakan keamanan bagi endpoint firewall. Profil ini mengevaluasi nama domain dalam traffic jaringan untuk menerapkan tindakan izinkan atau tolak berdasarkan string dan prioritas pencocokan tertentu.

Halaman ini menjelaskan cara membuat dan mengelola profil keamanan pemfilteran URL.

Sebelum memulai

Peran

Untuk mendapatkan izin yang diperlukan untuk membuat, melihat, memperbarui, atau menghapus profil keamanan, minta administrator untuk memberi Anda peran Identity and Access Management (IAM) yang diperlukan di organisasi Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

Membuat profil keamanan pemfilteran URL

Untuk membuat profil keamanan url-filtering, tentukan nama sebagai string atau sebagai ID URL unik.

Konsol

  1. Di konsol Google Cloud , buka halaman Security profiles.

    Buka Profil keamanan

  2. Di menu pemilih project, pilih organisasi atau project tempat Anda ingin membuat profil keamanan.

  3. Pilih tab Profil keamanan.

  4. Klik Buat profil.

  5. Masukkan nama di kolom Name.

  6. Opsional: Masukkan deskripsi di kolom Description.

  7. Untuk membuat profil keamanan Cloud Next Generation Firewall Enterprise, di bagian Purpose, pilih Cloud NGFW Enterprise.

  8. Untuk membuat profil keamanan pemfilteran URL, di bagian Type, pilih URL Filtering.

  9. Di bagian Filter URL, klik tombol Buat filter URL.

  10. Di panel Buat filter URL, tentukan detail berikut:

    • Prioritas: tentukan prioritas filter URL.
    • Action: tentukan tindakan yang dilakukan Cloud NGFW pada traffic.
      • Izinkan: mengizinkan koneksi yang cocok dengan URL.
      • Tolak: menolak koneksi yang cocok dengan URL.
    • Daftar URL: tentukan daftar URL atau string pencocok. Setiap entri URL atau string pencocok harus muncul di barisnya sendiri tanpa spasi atau pembatas. Setiap entri hanya dapat terdiri dari domain. Untuk mengetahui informasi selengkapnya tentang string pencocokan, lihat String pencocokan untuk URL.
  11. Klik Create.

gcloud

  1. Buat file YAML dengan konten berikut:

    name: NAME
    type: url-filtering
    urlFilteringProfile:
      urlFilters:
        - filteringAction: ACTION
          priority: PRIORITY
          urls: [URL,URL,...]
    

    Ganti kode berikut:

    • NAME: nama profil keamanan pemfilteran URL; Anda dapat menentukan nama sebagai string atau sebagai ID URL unik.

    • ACTION: tentukan salah satu tindakan berikut:

      • ALLOW: mengizinkan koneksi yang cocok dengan URL
      • DENY: menolak koneksi yang cocok dengan URL
    • PRIORITY: prioritas filter URL yang berkisar dari 0 hingga 2147483647.

    • URLs: daftar string pencocok yang dipisahkan koma. Misalnya, www.example.com dan www.examplepetstore.com.

  2. Untuk membuat profil keamanan pemfilteran URL, jalankan perintah gcloud network-security security-profiles import:

    gcloud network-security security-profiles import NAME \
      --source FILE_NAME \
      [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
      --location global
    

    Atau, Anda dapat membuat profil keamanan pemfilteran URL tanpa file YAML menggunakan perintah gcloud network-security security-profiles url-filtering create:

    gcloud network-security security-profiles url-filtering create NAME \
        [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
        --description DESCRIPTION \
        --location global
    

    Ganti kode berikut:

    • NAME: nama profil keamanan pemfilteran URL.

      Jika Anda tidak menggunakan format ID URL unik untuk nama, Anda harus menentukan nama organisasi atau project, dan lokasi.

    • FILE_NAME: nama file YAML. Contoh, url-filtering-sp.yaml.

    • ORGANIZATION_ID: ID organisasi. Gunakan tanda ini untuk membuat profil keamanan tingkat organisasi.

    • PROJECT_ID: project ID. Gunakan flag ini untuk membuat profil keamanan level project.

    • DESCRIPTION: deskripsi opsional untuk profil keamanan pemfilteran URL.

    Misalnya, cuplikan kode berikut menunjukkan contoh profil keamanan pemfilteran URL yang mengizinkan permintaan ke www.example.com dan www.examplepetstore.com, tetapi menolak permintaan ke semua domain lainnya:

    urlFilteringProfile:
      urlFilters:
        - filteringAction: ALLOW
          priority: 1000
          urls: ['www.example.com', 'www.examplepetstore.com']
        # the following URL filter is implicit and will be processed last
        - filteringAction: DENY
          priority: 2147483647
          urls: ['*']
    

Filter URL penolakan implisit

Profil keamanan pemfilteran URL selalu menyertakan filter URL default dengan prioritas terendah (2147483647) yang menolak semua koneksi yang tidak cocok dengan filter URL dengan prioritas yang lebih tinggi. Cuplikan kode berikut menunjukkan contoh filter URL penolakan implisit:

  urlFilteringProfile:
    urlFilters:
      # user-specified URL filters
      - filteringAction: DENY
        priority: 1000
        urls: ['www.example.com','www.examplepetstore.com']
      - filteringAction: ALLOW
        priority: 2000
        urls: ['www.example.org','www.example.net']
      # implicit deny URL filter that will be processed last
      - filteringAction: DENY
        priority: 2147483647
        urls: ['*']
  

Anda dapat melihat filter URL penolakan implisit saat melihat atau mengekspor profil keamanan pemfilteran URL. Anda tidak dapat mengubah atau menghapus filter implisit. Misalnya, jika Anda ingin mengubah tindakan default profil dari DENY (diterapkan oleh filter implisit) menjadi ALLOW, Anda harus menambahkan filter eksplisit yang diproses Cloud NGFW sebelum filter implisit.

  urlFilteringProfile:
    urlFilters:
      # user-specified filters
      - filteringAction: DENY
        priority: 1000
        urls: ['www.example.com','www.examplepetstore.com']
      # explicit allow URL filter that you can add
      - filteringAction: ALLOW
        priority: 2000
        urls: ['*']
      # implicit deny URL filter that will be processed last
      - filteringAction: DENY
        priority: 2147483647
        urls: ['*']
  

String pencocok untuk URL

String pencocokan adalah nilai yang Anda tentukan di kolom urls filter URL. Anda dapat menentukan satu atau beberapa string pencocok di dalam filter URL.

Karakter pengganti

Setiap string pencocokan dalam daftar URL mendukung karakter pengganti (*) dengan cara yang terbatas.

  • Setiap string pencocok hanya dapat mendukung satu tanda bintang (*) sehingga tanda bintang tersebut adalah karakter pertama atau satu-satunya.
  • Tanda bintang (*) dapat memiliki interpretasi berikut:

    • Tanda bintang (*) sebelum titik (.) menunjukkan semua subdomain domain.

      Misalnya, string pencocok *.example.com cocok dengan a.example.com dan a.b.c.example.com, tetapi tidak cocok dengan example.com.

      urlFilteringProfile:
        urlFilters:
          # user-specified filters
          - filteringAction: ALLOW
            priority: 1000
            urls: ['*.example.com']
          # implicit deny URL filter that will be processed last
          - filteringAction: DENY
            priority: 2147483647
            urls: ['*']
      

      Dalam contoh sebelumnya, Cloud NGFW mengizinkan traffic ke subdomain example.com, tetapi menolak traffic keluar lainnya.

    • Tanda bintang (*) sebelum label menunjukkan domain dan semua subdomain.

      Misalnya, string pencocok *example.com cocok dengan a.example.com, a.b.c.example.com, serta example.com.

      urlFilteringProfile:
        urlFilters:
          # user-specified filters
          - filteringAction: ALLOW
            priority: 1000
            urls: ['*example.com']
          # implicit deny URL filter that will be processed last
          - filteringAction: DENY
            priority: 2147483647
            urls: ['*']
      

      Dalam contoh sebelumnya, Cloud NGFW mengizinkan traffic ke example.com serta subdomain example.com, tetapi menolak traffic keluar lainnya.

    • Tanda bintang (*) sebelum ekstensi domain (seperti .com) menunjukkan semua domain (dan subdomainnya) yang menggunakan ekstensi domain tersebut.

      Misalnya, string pencocok *.com cocok dengan example.com dan examplepetstore.com serta semua subdomainnya.

      Cuplikan kode berikut menunjukkan cara mengizinkan semua domain (dan subdomainnya) yang diakhiri dengan .com, tetapi menolak traffic yang tersisa.

      urlFilteringProfile:
        urlFilters:
          # Allow all domains (and their subdomains) that end in '.com'
          - filteringAction: ALLOW
            priority: 2000
            urls: ['*.com']
          # implicit deny URL filter that will be processed last
          - filteringAction: DENY
            priority: 2147483647
            urls: ['*']
      

      Cuplikan kode berikut menunjukkan cara menolak semua subdomain example.com dan examplepetstore.com, tetapi mengizinkan domain ini dan semua domain lain (serta subdomainnya) yang diakhiri dengan .com.

      urlFilteringProfile:
        urlFilters:
          # Deny all subdomains of example.com
          - filteringAction: DENY
            priority: 1000
            urls: ['*.example.com']
          # Deny all subdomains of examplepetstore.com
          - filteringAction: DENY
            priority: 1500
            urls: ['*.examplepetstore.com']
          # Allow all domains (and their subdomains) that end in '.com'
          - filteringAction: ALLOW
            priority: 2000
            urls: ['*.com']
          # implicit deny URL filter that will be processed last
          - filteringAction: DENY
            priority: 2147483647
            urls: ['*']
      
    • Cloud NGFW tidak menafsirkan tanda bintang (*) sebagai karakter pengganti ekspresi reguler.

      Misalnya, *example.test tidak cocok dengan newexample.test atau a.newexample.test. Hanya cocok dengan example.test dan subdomain example.test.

    • Satu tanda bintang (*) tanpa karakter lain menunjukkan kecocokan untuk semua permintaan.

      Misalnya, string pencocok di filter URL izinkan eksplisit berprioritas terendah hanya berisi tanda bintang (*) dan memiliki tindakan ALLOW yang menggantikan tindakan default DENY. Hal ini terjadi karena filter URL penolakan implisit menerapkan DENY default untuk permintaan apa pun yang tidak cocok dengan filter URL prioritas yang lebih tinggi.

      Filter URL dengan prioritas tertinggi—yang berupa ALLOW eksplisit atau DENY implisit—menentukan apakah Cloud NGFW mengizinkan atau menolak koneksi saat tidak memiliki informasi SNI atau domain. Hal ini dapat terjadi dengan traffic HTTP yang tidak dienkripsi, atau saat pemeriksaan TLS dinonaktifkan untuk header pesan terenkripsi.

      urlFilteringProfile:
        urlFilters:
          # user-specified filters
          - filteringAction: DENY
            priority: 1000
            urls: ['www.example.com','www.examplepetstore.com']
          # explicit allow URL filter that you can add
          - filteringAction: ALLOW
            priority: 2000
            urls: ['*']
          # implicit deny URL filter that will be processed last
          - filteringAction: DENY
            priority: 2147483647
            urls: ['*']
      

Batasan

  • String pencocok mewakili domain atau subdomain.
  • String pencocok tidak mendukung karakter garis miring (/). Misalnya: www.example.com/images.
  • String pencocokan tidak mendukung skema atau nama protokol. Misalnya: http://www.example.com.
  • String pencocokan tidak mendukung nomor port. Misalnya: www.example.com:80.
  • String pencocokan hanya mendukung huruf, angka, dan karakter khusus ASCII: tanda hubung (-), titik (.), dan tanda bintang (*).

Anda harus menggunakan Punycode untuk mengonversi nama domain yang berisi karakter selain huruf, angka, tanda hubung (-), titik (.), atau tanda bintang (*) ASCII. Punycode adalah standar encoding yang mengubah nama domain Unicode menjadi format yang kompatibel dengan ASCII.

  • Jika Anda memiliki dua label atau lebih, gunakan titik (.) untuk memisahkannya. Label dapat berisi satu atau beberapa tanda hubung (-); namun, label tidak boleh diawali atau diakhiri dengan tanda hubung. Setiap label dapat menyertakan maksimum 63 karakter.

  • Filter URL tidak mendukung penggunaan titik di awal nama domain atau titik berurutan dalam string pencocokan. Filter URL mengizinkan titik di akhir URL, tetapi Cloud NGFW menghapusnya sebelum menyimpan filter URL.

  • Cloud NGFW mengonversi string pencocokan menjadi huruf kecil sebelum menyimpan filter URL. Cloud NGFW tidak melakukan normalisasi lainnya.

  • Setiap nama domain dapat berisi maksimum 255 karakter.

Filter URL untuk subdomain multilevel

Anda dapat menggunakan filter URL dengan berbagai prioritas dan tindakan untuk mengontrol traffic jaringan ke subdomain multi-level. Anda juga dapat menggunakan karakter pengganti (*) dalam string pencocokan untuk menentukan domain dan subdomain.

Misalnya, pertimbangkan skenario saat Anda menerapkan perilaku berikut:

  • Izinkan a.b.c.example.com
  • Tolak *.b.c.example.com (menolak semua subdomain b.c.example.com lainnya)
  • Izinkan *.c.example.com (izinkan semua subdomain lain dari c.example.com)
  • Tolak *.example.com (menolak semua subdomain example.com lainnya)
  • Izinkan example.com
  • Izinkan yang lainnya

Cuplikan kode berikut menerapkan skenario ini:

  urlFilteringProfile:
    urlFilters:
      # Allow 'a.b.c.example.com'
      - filteringAction: ALLOW
        priority: 1000
        urls: ['a.b.c.example.com']
      # Deny all subdomains of 'b.c.example.com'
      - filteringAction: DENY
        priority: 2000
        urls: ['*.b.c.example.com']
      # Allow all subdomains of 'c.example.com'
      - filteringAction: ALLOW
        priority: 3000
        urls: ['*.c.example.com']
      # Deny all subdomains of 'example.com'
      - filteringAction: DENY
        priority: 4000
        urls: ['*.example.com']
      # explicit allow URL filter
      - filteringAction: ALLOW
        priority: 5000
        urls: ['*']
      # implicit deny URL filter that will be processed last
      - filteringAction: DENY
        priority: 2147483647
        urls: ['*']
  

Mencantumkan dan melihat detail profil keamanan pemfilteran URL

Anda dapat mencantumkan profil keamanan pemfilteran URL yang dibuat dalam organisasi atau project. Anda juga dapat melihat detail profil, seperti jenis, tujuan, dan deskripsi.

Konsol

  1. Di konsol Google Cloud , buka halaman Security profiles.

    Buka Profil keamanan

  2. Pilih tab Profil keamanan untuk melihat daftar profil keamanan yang dikonfigurasi.

  3. Untuk memfilter profil keamanan pemfilteran URL, di kolom Filter, tentukan Jenis profil sebagai Pemfilteran URL.

    Tab ini menampilkan daftar profil keamanan pemfilteran URL.

  4. Untuk melihat detail profil, klik profil keamanan Pemfilteran URL.

gcloud

Untuk mencantumkan semua profil keamanan pemfilteran URL, gunakan perintah gcloud network-security security-profiles url-filtering list:

gcloud network-security security-profiles url-filtering list \
    [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
    [--billing-project QUOTA_PROJECT_ID]
    --location global

Untuk melihat detail profil keamanan pemfilteran URL, jalankan perintah gcloud network-security security-profiles url-filtering describe:

gcloud network-security security-profiles url-filtering describe NAME \
    [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
    [--billing-project QUOTA_PROJECT_ID]
    --location global

Ganti kode berikut:

  • NAME: nama profil keamanan.

    Jika Anda tidak menggunakan format ID URL unik untuk nama, Anda harus menentukan nama organisasi atau project, dan lokasi.

  • ORGANIZATION_ID: ID organisasi tempat profil keamanan berada.

  • PROJECT_ID: project ID tempat profil keamanan berada.

  • QUOTA_PROJECT_ID: project ID kuota Anda. Gunakan tanda ini hanya untuk profil keamanan tingkat organisasi.

Menghapus profil keamanan pemfilteran URL

Anda dapat menghapus profil keamanan pemfilteran URL dengan menentukan nama, lokasi, dan organisasi atau projectnya. Jika profil keamanan direferensikan oleh grup profil keamanan, Anda tidak dapat menghapusnya.

Untuk menghapus profil keamanan pemfilteran URL, gunakan konsol Google Cloud atau gcloud CLI. Namun, jika profil keamanan direferensikan oleh grup profil keamanan, profil keamanan tersebut tidak dapat dihapus.

Konsol

  1. Di konsol Google Cloud , buka halaman Security profiles.

    Buka Profil keamanan

  2. Pilih tab Profil keamanan. Tab ini menampilkan daftar profil keamanan yang dikonfigurasi.

  3. Pilih profil keamanan yang ingin Anda hapus, lalu klik Hapus.

  4. Klik Delete lagi untuk mengonfirmasi.

gcloud

Untuk menghapus profil keamanan pemfilteran URL, gunakan perintah gcloud network-security security-profiles url-filtering delete:

gcloud network-security security-profiles url-filtering delete NAME \
    [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
    --location global

Ganti kode berikut:

  • NAME: nama profil keamanan.

    Jika Anda tidak menentukan nama dalam format ID URL unik, Anda harus menentukan nama organisasi atau project, dan lokasi.

  • ORGANIZATION_ID: ID organisasi. Gunakan tanda ini untuk profil keamanan tingkat organisasi.

  • PROJECT_ID: project ID Anda. Gunakan tanda ini untuk profil keamanan level project.

  • QUOTA_PROJECT_ID: project ID kuota Anda. Gunakan tanda ini hanya untuk profil keamanan tingkat organisasi.

Mengimpor profil keamanan pemfilteran URL

Anda dapat mengimpor profil keamanan pemfilteran URL (yang dibuat khusus atau diekspor sebelumnya) dari file YAML. Saat mengimpor profil keamanan pemfilteran URL, jika profil dengan nama yang sama sudah ada, Cloud NGFW akan memperbarui profil yang ada.

Untuk mengimpor profil keamanan pemfilteran URL dari file YAML, gunakan gcloud CLI. Jika profil dengan nama yang sama sudah ada saat Anda mengimpornya, Cloud NGFW akan memperbarui profil tersebut.

gcloud

Untuk mengimpor profil keamanan pemfilteran URL dari file YAML, gunakan perintah gcloud network-security security-profiles import:

gcloud network-security security-profiles import NAME \
    [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
    --location global \
    --source FILE_NAME

Ganti kode berikut:

  • NAME: nama profil keamanan jenis url-filtering yang ingin Anda impor; Anda dapat menentukan nama sebagai string atau sebagai ID URL unik.

  • ORGANIZATION_ID: ID organisasi. Gunakan tanda ini untuk profil keamanan tingkat organisasi.

  • PROJECT_ID: project ID. Gunakan tanda ini untuk profil keamanan level project.

  • FILE_NAME: jalur ke file YAML yang berisi data ekspor konfigurasi.

Mengekspor profil keamanan pemfilteran URL

Anda dapat mengekspor profil keamanan pemfilteran URL ke file YAML. Misalnya, alih-alih menggunakan antarmuka pengguna untuk mengubah profil keamanan yang besar, Anda dapat menggunakan fungsi ini untuk mengekspor profil keamanan, mengubahnya dengan cepat, dan mengimpornya kembali.

Untuk mengekspor profil keamanan pemfilteran URL ke file YAML, gunakan gcloud CLI.

gcloud

Untuk mengekspor profil keamanan pemfilteran URL ke file YAML, gunakan perintah gcloud network-security security-profiles export:

gcloud network-security security-profiles export NAME \
    [ --organization ORGANIZATION_ID | --project PROJECT_ID ] \
    --location global \
    --destination FILE_NAME

Ganti kode berikut:

  • NAME: nama profil keamanan berjenis url-filtering yang ingin Anda ekspor; Anda dapat menentukan nama sebagai string atau sebagai ID URL unik.

  • ORGANIZATION_ID: ID organisasi. Gunakan tanda ini untuk profil keamanan tingkat organisasi.

  • PROJECT_ID: project ID. Gunakan tanda ini untuk profil keamanan level project.

  • FILE_NAME: jalur ke file YAML tempat Cloud NGFW akan mengekspor konfigurasi.

Langkah berikutnya