Mengonfigurasi pengelolaan bot

Halaman ini berisi informasi cara mengonfigurasi aturan kebijakan keamanan Google Cloud Armor untuk pengelolaan bot. Sebelum mengonfigurasi pengelolaan bot, pastikan Anda sudah 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 Google 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 Google Cloud Armor

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

  • Mengonfigurasi, mengubah, mengupdate, dan menghapus kebijakan keamanan Google 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 Google 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 Google Cloud Armor menggunakan metode API SecurityPolicies get, list, dan getRule.

Menyiapkan izin IAM untuk peran khusus

Tabel berikut mencantumkan izin dasar peran IAM dan metode API yang terkait.

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

Gunakan tantangan manual reCAPTCHA Enterprise untuk membedakan antara klien manusia atau klien otomatis

Untuk menggunakan reCAPTCHA Enterprise dengan Google Cloud Armor, Anda harus mengaitkan kunci situs reCAPTCHA WAF (kunci reCAPTCHA) dari 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 verifikasi login manual berdasarkan kebijakan keamanan tertentu.

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

Membatalkan pengaitan kunci reCAPTCHA

Untuk memutuskan sambungan kunci reCAPTCHA dengan kebijakan keamanan, gunakan perintah ini:

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

Mengalihkan traffic untuk penilaian reCAPTCHA Enterprise

Setelah mengaitkan kunci reCAPTCHA dengan kebijakan keamanan, Anda dapat membuat aturan dalam kebijakan tersebut untuk mengalihkan traffic secara internal untuk penilaian reCAPTCHA Enterprise. 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 tempat Anda ingin membuat aturan
  • SECURITY_POLICY: nama kebijakan keamanan
  • EXPRESSION: ekspresi bahasa aturan kustom yang cocok dengan traffic tempat Anda ingin menerapkan penilaian reCAPTCHA
  • SRC_IP_RANGE: rentang alamat IP. Gunakan metode 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 Enterprise:

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 Enterprise

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

Untuk mengekstrak atribut dari token tindakan reCAPTCHA Enterprise, Anda dapat menggunakan token.recaptcha_action.ATTRIBUTE. Ganti ATTRIBUTE dengan atribut token yang valid dalam bahasa aturan Google Cloud Armor. Demikian pula, gunakan token.recaptcha_session.ATTRIBUTE untuk mengekstrak atribut dari token sesi reCAPTCHA Enterprise. Untuk mengetahui informasi selengkapnya tentang sintaksis atribut token reCAPTCHA Enterprise 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 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 untuk mencegah pencurian token, sebaiknya Anda mengaitkan kunci reCAPTCHA saat mengonfigurasi aturan yang menggunakan ekspresi ini.

Contoh

Contoh pertama membuat aturan yang mengizinkan penargetan traffic /login.html dengan token tindakan reCAPTCHA Enterprise 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 penargetan traffic /login.html, dengan token sesi reCAPTCHA Enterprise yang diterbitkan dengan kunci reCAPTCHA sebesar 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 tempat Anda ingin membuat aturan
  • SECURITY_POLICY: nama kebijakan keamanan
  • EXPRESSION: ekspresi bahasa aturan kustom yang cocok dengan traffic yang Anda inginkan untuk menerapkan penilaian reCAPTCHA
  • SRC_IP_RANGE: rentang alamat IP. Gunakan metode ini untuk menerapkan penilaian reCAPTCHA pada semua permintaan dari rentang ini.
  • REDIRECT_URL: URL tempat Anda ingin mengalihkan 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"

Dekorasi permintaan

Untuk membuat aturan yang mengizinkan traffic, tetapi menambahkan header kustom dan nilai statis yang ditetapkan 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 tempat Anda ingin membuat aturan
  • SECURITY_POLICY: nama kebijakan keamanan
  • EXPRESSION: ekspresi bahasa aturan kustom yang cocok dengan traffic tempat Anda ingin menerapkan penilaian reCAPTCHA
  • SRC_IP_RANGE: rentang alamat IP. Gunakan metode ini untuk menerapkan penilaian reCAPTCHA pada semua permintaan dari rentang ini.
  • HEADER_#: nama header permintaan yang ingin Anda gunakan untuk mendekorasi permintaan
  • VALUE_#: nilai header permintaan yang akan Anda gunakan untuk mendekorasi permintaan

Contoh berikut membuat aturan yang mengizinkan penargetan traffic /login.html, selama permintaan tersebut juga memiliki skor token tindakan reCAPTCHA Enterprise 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 selanjutnya