Mengonfigurasi pengelolaan bot

Halaman ini berisi informasi tentang cara mengonfigurasi aturan kebijakan keamanan Cloud Armor untuk pengelolaan bot. Sebelum mengonfigurasi pengelolaan bot, pastikan Anda memahami informasi dalam ringkasan pengelolaan bot.

Sebelum memulai

Bagian berikut menjelaskan semua peran dan izin Identity and Access Management (IAM) yang diperlukan untuk mengonfigurasi kebijakan keamanan Cloud Armor. Untuk kasus penggunaan dalam dokumen ini, Anda hanya memerlukan izin compute.securityPolicies.create dan compute.securityPolicies.update.

Menyiapkan izin IAM untuk kebijakan keamanan Cloud Armor

Operasi berikut memerlukan peran Compute Security Admin (roles/compute.securityAdmin) Identity and Access Management (IAM):

  • Mengonfigurasi, mengubah, mengupdate, dan menghapus kebijakan keamanan Cloud Armor
  • Menggunakan metode API berikut:
    • SecurityPolicies insert
    • SecurityPolicies delete
    • SecurityPolicies patch
    • SecurityPolicies addRule
    • SecurityPolicies patchRule
    • SecurityPolicies removeRule

Pengguna dengan peran Admin Jaringan Compute (roles/compute.networkAdmin) dapat melakukan operasi berikut:

  • Menetapkan kebijakan keamanan Cloud Armor untuk layanan backend
  • Menggunakan metode API berikut:
    • BackendServices setSecurityPolicy
    • BackendServices list (gcloud saja)

Pengguna dengan peran Admin Keamanan (roles/iam.securityAdmin) dan peran Admin Jaringan Compute dapat melihat kebijakan keamanan Cloud Armor menggunakan metode API SecurityPolicies get, list, dan getRule.

Menyiapkan izin IAM untuk peran kustom

Tabel berikut mencantumkan izin dasar peran IAM dan metode API terkaitnya.

Izin IAM Metode API
compute.securityPolicies.create SecurityPolicies insert
compute.securityPolicies.delete SecurityPolicies delete
compute.securityPolicies.get SecurityPolicies get
SecurityPolicies getRule
compute.securityPolicies.list SecurityPolicies list
compute.securityPolicies.use BackendServices setSecurityPolicy
compute.securityPolicies.update SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
compute.backendServices.setSecurityPolicy BackendServices setSecurityPolicy

Menggunakan tantangan manual reCAPTCHA untuk membedakan antara klien manusia atau otomatis

Untuk menggunakan reCAPTCHA dengan Cloud Armor, Anda harus mengaitkan kunci situs WAF reCAPTCHA (kunci reCAPTCHA) jenis CHALLENGEPAGE dengan kebijakan keamanan. Untuk mengetahui informasi selengkapnya tentang kunci reCAPTCHA, lihat ringkasan kunci reCAPTCHA.

Untuk mengaitkan atau membatalkan pengaitan kunci reCAPTCHA Anda sendiri dengan kebijakan keamanan, gunakan perintah berikut:

gcloud compute security-policies update SECURITY_POLICY \
    --recaptcha-redirect-site-key SITE_KEY

Ganti kode berikut:

  • SECURITY_POLICY: nama kebijakan keamanan
  • SITE_KEY: kunci reCAPTCHA CHALLENGEPAGE Anda

Mengaitkan kunci reCAPTCHA

Contoh berikut mengaitkan kunci reCAPTCHA dengan kebijakan keamanan. Kunci reCAPTCHA terkait berlaku untuk semua aturan yang menggunakan fitur tantangan manual dalam kebijakan keamanan tertentu.

gcloud compute security-policies update SECURITY_POLICY \
    --recaptcha-redirect-site-key "SITE_KEY"

Membatalkan hubungan kunci reCAPTCHA

Untuk membatalkan hubungan kunci reCAPTCHA dengan kebijakan keamanan, gunakan perintah ini:

gcloud compute security-policies update SECURITY_POLICY \
    --recaptcha-redirect-site-key ""

Mengarahkan traffic untuk penilaian reCAPTCHA

Setelah mengaitkan kunci reCAPTCHA dengan kebijakan keamanan, Anda dapat membuat aturan dalam kebijakan tersebut untuk mengalihkan traffic secara internal guna penilaian reCAPTCHA. Gunakan format berikut di gcloud CLI untuk mengalihkan traffic:

gcloud compute security-policies rules create PRIORITY \
  --security-policy SECURITY_POLICY \
  {--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE} \
  --action redirect \
  --redirect-type google-recaptcha

Ganti kode berikut:

  • PRIORITY: prioritas saat Anda ingin membuat aturan
  • SECURITY_POLICY: nama kebijakan keamanan
  • EXPRESSION: ekspresi bahasa aturan kustom yang mencocokkan traffic yang ingin Anda terapkan penilaian reCAPTCHA-nya
  • SRC_IP_RANGE: rentang alamat IP. Gunakan ini untuk menerapkan penilaian reCAPTCHA pada semua permintaan dari rentang ini.

Contoh berikut membuat aturan yang mengalihkan traffic yang mencoba menjangkau /login.html untuk tantangan manual reCAPTCHA:

gcloud compute security-policies rules create 1000 \
    --security-policy SECURITY_POLICY \
    --expression "request.path.matches(\"/login.html\")" \
    --action redirect \
    --redirect-type google-recaptcha

Menerapkan penilaian tanpa hambatan reCAPTCHA

Sebelum melanjutkan, lihat ringkasan pengelolaan bot untuk mengetahui prasyarat penggunaan token tindakan atau token sesi reCAPTCHA.

Untuk mengekstrak atribut dari token tindakan reCAPTCHA, Anda dapat menggunakan token.recaptcha_action.ATTRIBUTE. Ganti ATTRIBUTE dengan atribut token yang valid dalam bahasa aturan Cloud Armor. Demikian pula, gunakan token.recaptcha_session.ATTRIBUTE untuk mengekstrak atribut dari token sesi reCAPTCHA. Untuk mengetahui informasi selengkapnya tentang sintaksis atribut token reCAPTCHA yang tersedia, lihat referensi bahasa aturan.

Token tindakan dapat berasal dari aplikasi web, aplikasi iOS, atau aplikasi Android, sedangkan token sesi hanya dapat berasal dari aplikasi web. Setiap platform memerlukan kunci reCAPTCHA yang terpisah. Ekspresi token.recaptcha_action.ATTRIBUTE dan token.recaptcha_session.ATTRIBUTE berlaku untuk token dari salah satu platform ini. Untuk membedakan token dari platform yang berbeda dan mencegah pencurian token, sebaiknya Anda mengaitkan kunci reCAPTCHA saat Anda mengonfigurasi aturan yang menggunakan ekspresi ini.

Contoh

Contoh pertama membuat aturan yang mengizinkan traffic yang menargetkan /login.html dengan token tindakan reCAPTCHA yang skornya tidak kurang dari 0.8.

gcloud compute security-policies rules create 1000 \
    --security-policy SECURITY_POLICY \
    --expression "request.path.matches(\"/login.html\") && token.recaptcha_action.score >= 0.8" \
    --action allow

Contoh kedua sama dengan contoh pertama, tetapi juga mengharuskan token tindakan dikeluarkan dengan kunci reCAPTCHA example-site-key-1 atau example-site-key-2:

gcloud compute security-policies rules create 1000 \
    --security-policy SECURITY_POLICY \
    --expression "request.path.matches(\"/login.html\") && token.recaptcha_action.score >= 0.8" \
    --recaptcha-action-site-keys "example-site-key-1,example-site-key-2" \
    --action allow

Contoh ketiga membuat aturan yang mengizinkan traffic yang menargetkan /login.html, dengan token sesi reCAPTCHA yang dikeluarkan dengan kunci reCAPTCHA example-site-key-3, dan dengan skor tidak kurang dari 0.8.

gcloud compute security-policies rules create 1000 \
    --security-policy SECURITY_POLICY \
    --expression "request.path.matches(\"/login.html\") && token.recaptcha_session.score >= 0.8" \
    --recaptcha-session-site-keys "example-site-key-3" \
    --action allow

Pengalihan (respons 302)

Untuk membuat aturan guna mengalihkan traffic ke URL yang dikonfigurasi pengguna, gunakan format berikut di Google Cloud CLI:

gcloud compute security-policies rules create PRIORITY \
    --security-policy SECURITY_POLICY \
    {--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE} \
    --action redirect \
    --redirect-type external-302 \
    --redirect-target REDIRECT_URL

Ganti kode berikut:

  • PRIORITY: prioritas saat Anda ingin membuat aturan
  • SECURITY_POLICY: nama kebijakan keamanan
  • EXPRESSION: ekspresi bahasa aturan kustom yang mencocokkan traffic yang ingin Anda terapkan penilaian reCAPTCHA-nya
  • SRC_IP_RANGE: rentang alamat IP. Gunakan ini untuk menerapkan penilaian reCAPTCHA pada semua permintaan dari rentang ini.
  • REDIRECT_URL: URL tujuan pengalihan traffic

Contoh berikut membuat aturan yang mengalihkan traffic yang berasal dari 10.10.10.0/24 ke https://www.example.com.

gcloud compute security-policies rules create 1000 \
   --security-policy SECURITY_POLICY \
   --src-ip-ranges "10.10.10.0/24" \
   --action redirect \
   --redirect-type external-302 \
   --redirect-target "https://www.example.com"

Permintaan dekorasi

Untuk membuat aturan yang mengizinkan traffic, tetapi menambahkan header kustom dan nilai statis yang ditentukan pengguna sebelum mengirimkannya ke backend yang dilindungi, gunakan format berikut di gcloud CLI:

gcloud compute security-policies rules create PRIORITY \
    --security-policy SECURITY_POLICY \
    {--expression EXPRESSION | --src-ip-ranges SRC_IP_RANGE} \
    --action allow \
    --request-headers-to-add HEADER_1=VALUE_1,HEADER_2=VALUE_2,...

Ganti kode berikut:

  • PRIORITY: prioritas saat Anda ingin membuat aturan
  • SECURITY_POLICY: nama kebijakan keamanan
  • EXPRESSION: ekspresi bahasa aturan kustom yang mencocokkan traffic yang ingin Anda terapkan penilaian reCAPTCHA-nya
  • SRC_IP_RANGE: rentang alamat IP. Gunakan ini untuk menerapkan penilaian reCAPTCHA pada semua permintaan dari rentang ini.
  • HEADER_#: nama header permintaan yang ingin Anda gunakan untuk menghias permintaan
  • VALUE_#: nilai header permintaan yang ingin Anda gunakan untuk menghias permintaan

Contoh berikut membuat aturan yang mengizinkan traffic yang menargetkan /login.html, selama permintaan juga memiliki skor token tindakan reCAPTCHA yang lebih rendah dari 0.2.

gcloud compute security-policies rules create 1000 \
    --security-policy SECURITY_POLICY \
    --expression "request.path.matches("/login.html") && token.recaptcha_action.score < 0.2" \
    --action allow \
    --request-headers-to-add "reCAPTCHA-Warning=high"

Langkah berikutnya