Contoh kebijakan keamanan

Halaman ini menjelaskan contoh konfigurasi kebijakan keamanan untuk berbagai jenis load balancer dan kebijakan keamanan.

Mengonfigurasi kebijakan keamanan untuk Load Balancer Aplikasi eksternal

Berikut adalah langkah-langkah tingkat tinggi untuk mengonfigurasi kebijakan keamanan Google Cloud Armor guna mengaktifkan aturan yang mengizinkan atau menolak traffic ke Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik:

  1. Buat kebijakan keamanan Cloud Armor.
  2. Tambahkan aturan ke kebijakan keamanan berdasarkan daftar alamat IP, ekspresi kustom, atau set ekspresi yang telah dikonfigurasi sebelumnya.
  3. Lampirkan kebijakan keamanan ke layanan backend Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik yang ingin Anda kontrol aksesnya.
  4. Perbarui kebijakan keamanan sesuai kebutuhan.

Dalam contoh berikut, Anda membuat dua kebijakan keamanan Cloud Armor dan menerapkannya ke layanan backend yang berbeda.

Contoh saat dua kebijakan keamanan diterapkan ke layanan backend yang berbeda.
Contoh saat dua kebijakan keamanan diterapkan ke layanan backend yang berbeda (klik untuk memperbesar).

Dalam contoh ini, berikut adalah kebijakan keamanan Cloud Armor:

  • mobile-clients-policy berlaku untuk pengguna eksternal layanan games Anda.
  • internal-users-policy berlaku untuk tim test-network organisasi Anda.

Anda menerapkan mobile-clients-policy ke layanan games, yang layanan backend-nya disebut games, dan Anda menerapkan internal-users-policy ke layanan test internal untuk tim pengujian, yang layanan backend-nya disebut test-network.

Jika instance backend untuk layanan backend berada di beberapa region, kebijakan keamanan Cloud Armor yang terkait dengan layanan tersebut berlaku untuk instance di semua region. Dalam contoh sebelumnya, kebijakan keamanan mobile-clients-policy berlaku untuk instance 1, 2, 3, dan 4 di us-central serta untuk instance 5 dan 6 di us-east.

Buat contoh

Gunakan petunjuk ini untuk membuat contoh konfigurasi yang dibahas di bagian sebelumnya.

Konsol

Mengonfigurasi kebijakan keamanan untuk pengguna eksternal:

  1. Di Google Cloud konsol, buka halaman Kebijakan Google Cloud Armor.

    Buka kebijakan Google Cloud Armor

  2. Klik Buat kebijakan.

  3. Di kolom Name, masukkan mobile-clients-policy.

  4. Di kolom Description, masukkan Policy for external users.

  5. Untuk Default rule action, pilih Deny.

  6. Untuk Status ditolak, pilih 404 (Tidak Ditemukan).

  7. Klik Next step.

Tambahkan aturan lainnya:

  1. Klik Tambahkan Aturan.
  2. Di kolom Description, masukkan allow traffic from 192.0.2.0/24.
  3. Untuk Mode, pilih Mode dasar (hanya alamat/rentang IP).
  4. Di kolom Match, masukkan 192.0.2.0/24.
  5. Untuk Tindakan, pilih Izinkan.
  6. Di kolom Priority, masukkan 1000.
  7. Klik Selesai.
  8. Klik Next step.

Menerapkan kebijakan ke target:

  1. Klik Add Target.
  2. Dalam daftar Target, pilih target.
  3. Klik Selesai.
  4. Klik Create policy.

Secara opsional, aktifkan Google Cloud Armor Adaptive Protection:

  1. Untuk mengaktifkan Perlindungan Adaptif, centang kotak Aktifkan.

Konfigurasi kebijakan keamanan untuk pengguna internal:

  1. Klik Buat kebijakan.
  2. Di kolom Name, masukkan internal-users-policy.
  3. Di kolom Description, masukkan Policy for internal test users.
  4. Untuk Default rule action, pilih Deny.
  5. Untuk Status penolakan, pilih 502 (Gateway Buruk).
  6. Klik Next step.

Tambahkan aturan lainnya:

  1. Klik Tambahkan Aturan.
  2. Di kolom Description, masukkan allow traffic from 198.51.100.0/24.
  3. Untuk Mode, pilih Mode dasar (hanya alamat/rentang IP).
  4. Di kolom Match, masukkan 198.51.100.0/24.
  5. Untuk Tindakan, pilih Izinkan.
  6. Untuk Khusus pratinjau, centang kotak Aktifkan.
  7. Di kolom Priority, masukkan 1000.
  8. Klik Selesai.
  9. Klik Next step.

Menerapkan kebijakan ke target:

  1. Klik Add Target.
  2. Dalam daftar Target, pilih target.
  3. Klik Selesai.
  4. Klik Create policy.

gcloud

  1. Buat kebijakan keamanan Cloud Armor:

    gcloud compute security-policies create mobile-clients-policy \
        --description "policy for external users"
    
    gcloud compute security-policies create internal-users-policy \
        --description "policy for internal test users"
    
  2. Perbarui aturan default ke kebijakan keamanan untuk menolak traffic:

    gcloud compute security-policies rules update 2147483647 \
        --security-policy mobile-clients-policy \
        --action "deny-404"
    
    gcloud compute security-policies rules update 2147483647 \
        --security-policy internal-users-policy \
        --action "deny-502"
    
  3. Tambahkan aturan ke kebijakan keamanan:

    gcloud compute security-policies rules create 1000 \
        --security-policy mobile-clients-policy \
        --description "allow traffic from 192.0.2.0/24" \
        --src-ip-ranges "192.0.2.0/24" \
        --action "allow"
    
    gcloud compute security-policies rules create 1000 \
        --security-policy internal-users-policy \
        --description "allow traffic from 198.51.100.0/24" \
        --src-ip-ranges "198.51.100.0/24" \
        --action "allow"
    
  4. Lampirkan kebijakan keamanan ke layanan backend:

    gcloud compute backend-services update games \
        --security-policy mobile-clients-policy
    
    gcloud compute backend-services update test-network \
        --security-policy internal-users-policy
    
  5. Jika perlu, aktifkan Perlindungan Adaptif:

    gcloud compute security-policies update mobile-clients-policy \
        --enable-layer7-ddos-defense
    
    gcloud compute security-policies update internal-users-policy \
        --enable-layer7-ddos-defense
    

Membuat kebijakan keamanan

Anda dapat menggunakan konsol Google Cloud atau gcloud CLI untuk membuat kebijakan keamanan. Petunjuk di bagian ini mengasumsikan bahwa Anda sedang mengonfigurasi kebijakan keamanan untuk diterapkan ke Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik dan layanan backend yang ada. Untuk contoh cara mengisi kolom, lihat Membuat contoh.

Konsol

Buat kebijakan dan aturan keamanan Cloud Armor, lalu lampirkan kebijakan keamanan ke layanan backend:

  1. Di Google Cloud konsol, buka halaman Kebijakan Google Cloud Armor.

    Buka kebijakan Google Cloud Armor

  2. Klik Buat kebijakan.

  3. Di kolom Name, masukkan nama kebijakan Anda.

  4. Opsional: Masukkan deskripsi kebijakan.

  5. Untuk Jenis kebijakan, pilih Kebijakan keamanan backend atau Kebijakan keamanan Edge.

  6. Untuk Tindakan aturan default, pilih Izinkan untuk aturan default yang mengizinkan akses, atau pilih Tolak untuk aturan default yang melarang akses ke alamat IP atau rentang alamat IP.

    Aturan default adalah aturan prioritas terendah yang berlaku hanya jika tidak ada aturan lain yang berlaku.

  7. Jika Anda mengonfigurasi aturan Tolak, pilih pesan Status ditolak. Ini adalah pesan error yang ditampilkan Cloud Armor jika pengguna tanpa akses mencoba mendapatkan akses.

  8. Apa pun jenis aturan yang Anda konfigurasi, klik Langkah berikutnya.

Tambahkan aturan lainnya:

  1. Klik Tambahkan Aturan.
  2. Opsional: Masukkan deskripsi untuk aturan.
  3. Pilih mode:

    • Mode dasar: mengizinkan atau menolak traffic berdasarkan alamat IP atau rentang IP.
    • Mode lanjutan: mengizinkan atau menolak traffic berdasarkan ekspresi aturan.
  4. Di kolom Cocokkan, tentukan kondisi saat aturan berlaku:

    • Mode dasar: masukkan alamat IP atau rentang IP yang akan dicocokkan dalam aturan.
    • Mode lanjutan: masukkan ekspresi atau sub-ekspresi untuk dievaluasi terhadap permintaan masuk. Untuk mengetahui informasi tentang cara menulis ekspresi, lihat Mengonfigurasi atribut bahasa aturan kustom.
  5. Untuk Tindakan, pilih Izinkan atau Tolak untuk mengizinkan atau menolak traffic jika aturan cocok.

  6. Untuk mengaktifkan mode pratinjau, centang kotak Aktifkan. Dalam mode pratinjau, Anda dapat melihat perilaku aturan, tetapi aturan tidak diaktifkan.

  7. Masukkan Prioritas aturan. Nilai ini dapat berupa bilangan bulat positif apa pun dari 0 hingga 2.147.483.646 inklusif. Untuk mengetahui informasi selengkapnya tentang urutan evaluasi, lihat Urutan evaluasi aturan.

  8. Klik Selesai.

  9. Untuk menambahkan lebih banyak aturan, klik Tambahkan aturan dan ulangi langkah-langkah sebelumnya. Jika tidak, klik Langkah berikutnya.

Menerapkan kebijakan ke target:

  1. Klik Add Target.
  2. Dalam daftar Target, pilih target.
  3. Untuk menambahkan lebih banyak target, klik Tambahkan Target.
  4. Klik Selesai.
  5. Klik Create policy.

gcloud

  1. Untuk membuat kebijakan keamanan Cloud Armor baru, gunakan perintah gcloud compute security-policies create.

    Di kolom type, gunakan CLOUD_ARMOR untuk membuat kebijakan keamanan backend atau CLOUD_ARMOR_EDGE untuk membuat kebijakan keamanan edge. Tanda type bersifat opsional; jika tidak ada jenis yang ditentukan, kebijakan keamanan backend akan dibuat secara default:

    gcloud compute security-policies create NAME \
       [--type=CLOUD_ARMOR|CLOUD_ARMOR_EDGE] \
       [--file-format=FILE_FORMAT | --description=DESCRIPTION] \
       [--file-name=FILE_NAME]
    
    

    Ganti kode berikut:

    • NAME: nama kebijakan keamanan
    • DESCRIPTION: deskripsi kebijakan keamanan

    Perintah berikut mengupdate kebijakan yang sebelumnya Anda buat, mengaktifkan parsing JSON, dan mengubah tingkat log menjadi VERBOSE:

    gcloud compute security-policies update my-policy \
        --json-parsing=STANDARD \
        --log-level=VERBOSE
    
  2. Untuk menambahkan aturan ke kebijakan keamanan, gunakan perintah gcloud compute security-policies rules create PRIORITY.

    gcloud compute security-policies rules create PRIORITY  \
        [--security-policy POLICY_NAME] \
        [--description DESCRIPTION] \
        --src-ip-ranges IP_RANGE,... | --expression EXPRESSION \
        --action=[ allow | deny-403 | deny-404 | deny-502 ] \
        [--preview]
    

    Ganti PRIORITY dengan prioritas yang ditetapkan ke aturan dalam kebijakan. Untuk mengetahui informasi tentang cara kerja prioritas aturan, lihat Urutan evaluasi aturan.

    Misalnya, perintah berikut menambahkan aturan untuk memblokir traffic dari rentang alamat IP 192.0.2.0/24 dan 198.51.100.0/24. Aturan ini memiliki prioritas 1000, dan merupakan aturan dalam kebijakan yang disebut my-policy.

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \
        --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \
        --action "deny-403"
    

    Dengan menambahkan tanda --preview, aturan ditambahkan ke kebijakan, tetapi tidak diterapkan, dan traffic apa pun yang memicu aturan hanya dicatat.

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \
        --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \
        --action "deny-403" \
        --preview
    

    Gunakan flag --expression untuk menentukan kondisi kustom. Untuk informasi selengkapnya, lihat Mengonfigurasi atribut bahasa aturan kustom. Perintah berikut menambahkan aturan untuk mengizinkan traffic dari alamat IP 1.2.3.4 dan berisi string example di header agen pengguna:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')" \
        --action allow \
        --description "Block User-Agent 'example'"
    

    Perintah berikut menambahkan aturan untuk memblokir permintaan jika cookie permintaan berisi nilai tertentu:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')" \
        --action "deny-403" \
        --description "Cookie Block"
    

    Perintah berikut menambahkan aturan untuk memblokir permintaan dari region AU:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "origin.region_code == 'AU'" \
        --action "deny-403" \
        --description "AU block"
    

    Perintah berikut menambahkan aturan untuk memblokir permintaan dari region AU yang tidak berada dalam rentang IP yang ditentukan:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "origin.region_code == 'AU' && !inIpRange(origin.ip, '1.2.3.0/24')" \
        --action "deny-403" \
        --description "country and IP block"
    

    Perintah berikut menambahkan aturan untuk memblokir permintaan dengan URI yang cocok dengan ekspresi reguler:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "request.path.matches('/example_path/')" \
        --action "deny-403" \
        --description "regex block"
    

    Perintah berikut menambahkan aturan untuk memblokir permintaan jika nilai yang didekode Base64 dari header user-id berisi nilai tertentu:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')" \
        --action "deny-403" \
        --description "country and IP block"
    

    Perintah berikut menambahkan aturan yang menggunakan set ekspresi yang telah dikonfigurasi sebelumnya untuk memitigasi serangan SQLi:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "evaluatePreconfiguredWaf('sqli-stable')" \
        --action "deny-403"
    

    Perintah berikut menambahkan aturan yang menggunakan ekspresi yang telah dikonfigurasi sebelumnya untuk mengizinkan akses dari semua alamat IP dalam daftar alamat IP bernama:

    gcloud compute security-policies rules create 1000 \
        --security-policy my-policy \
        --expression "evaluatePreconfiguredWaf('sourceiplist-fastly')" \
        --action "allow"
    

Mengonfigurasi kebijakan keamanan untuk Load Balancer Aplikasi eksternal regional

Bagian ini berisi informasi tentang cara mengonfigurasi kebijakan keamanan Cloud Armor dengan cakupan regional untuk Load Balancer Aplikasi eksternal regional.

Melindungi beban kerja yang di-load balance secara regional

Gunakan langkah-langkah berikut untuk mengonfigurasi kebijakan keamanan guna melindungi layanan backend yang tercakup secara regional:

  1. Buat kebijakan keamanan dengan cakupan regional.

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR \
       --region=REGION
    
  2. Lampirkan kebijakan keamanan dengan cakupan regional ke layanan backend dengan cakupan regional. Ganti BACKEND_NAME dengan nama layanan backend yang ada dan memiliki cakupan regional.

    gcloud compute backend-services update BACKEND_NAME \
       --security-policy=POLICY_NAME \
       --region=REGION
    

Menerapkan kebijakan keamanan Cloud Armor dengan cakupan regional

Pertimbangkan contoh saat Anda adalah administrator keamanan yang ingin memenuhi persyaratan residensi bahwa semua beban kerja backend dan aturan WAF Anda di-deploy di region tertentu. Asumsikan bahwa Anda telah melakukan tindakan berikut sebelumnya:

  1. Anda telah membuat layanan backend yang di-load balance dan memiliki cakupan regional di region tersebut.
  2. Anda menonaktifkan kebijakan keamanan dengan cakupan global yang ada di deployment Anda.
  3. Anda telah membuat dan melampirkan kebijakan keamanan dengan cakupan regional di region yang sama (seperti di bagian sebelumnya).

Anda dapat menambahkan aturan WAF dan aturan lanjutan lainnya ke kebijakan sambil memenuhi persyaratan menggunakan contoh perintah berikut:

  • Tambahkan aturan WAF ke kebijakan:

    gcloud compute security-policies rules create 1000 --action=deny-404 \
      --expression="evaluatePreconfiguredWaf('xss-v33-stable', ['owasp-crs-v030301-id941100-xss', 'owasp-crs-v030301-id941160-xss'])" \
      --security-policy=POLICY_NAME \
      --region=REGION
    
  • Tambahkan aturan lanjutan ke kebijakan:

    gcloud compute security-policies rules create 1000 --action=allow \
      --expression="has(request.headers['cookie']) && request.headers['cookie'].contains('80=EXAMPLE')" \
      --security-policy=POLICY_NAME \
      --region=REGION
    
  • Tambahkan aturan pembatasan kecepatan ke kebijakan:

    gcloud compute security-policies rules create 1000 --action=throttle \
      --src-ip-ranges="1.1.1.1/32" \
      --rate-limit-threshold-count=1000 \
      --rate-limit-threshold-interval-sec=120 \
      --conform-action="allow" \
      --exceed-action="deny-429" \
      --enforce-on-key=IP \
      --ban-duration-sec=999 \
      --ban-threshold-count=5000 \
      --ban-threshold-interval-sec=60 \
      --security-policy=POLICY_NAME \
      --region=REGION
    

Langkah berikutnya