Mengonfigurasi pengelolaan bot

Halaman ini berisi informasi tentang cara mengonfigurasi aturan kebijakan keamanan Google 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 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 Compute Security Admin (roles/compute.securityAdmin) Identity and Access Management (IAM):

  • Mengonfigurasi, mengubah, memperbarui, 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 Security Admin (roles/iam.securityAdmin) dan peran Compute Network Admin dapat melihat kebijakan keamanan Google Cloud Armor menggunakan metode SecurityPolicies API 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 Google Cloud Armor, Anda harus mengaitkan kunci situs WAF reCAPTCHA (kunci reCAPTCHA) jenis CHALLENGEPAGE dengan kebijakan keamanan. Untuk 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 CHALLENGEPAGE reCAPTCHA Anda

Mengaitkan kunci reCAPTCHA

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

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

Memutuskan hubungan kunci reCAPTCHA

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

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

Mengalihkan traffic untuk penilaian reCAPTCHA

Setelah mengaitkan kunci reCAPTCHA dengan kebijakan keamanan, Anda dapat membuat aturan dalam kebijakan tersebut untuk mengalihkan traffic secara internal untuk 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 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 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 reCAPTCHA tanpa hambatan

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 Google 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 terpisah. Ekspresi token.recaptcha_action.ATTRIBUTE dan token.recaptcha_session.ATTRIBUTE berlaku untuk token dari salah satu platform ini. Untuk membedakan token dari berbagai platform dan mencegah pencurian token, sebaiknya kaitkan kunci reCAPTCHA saat Anda mengonfigurasi aturan yang menggunakan ekspresi ini.

Contoh

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

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 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 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 ingin Anda gunakan untuk mendekorasi permintaan

Contoh berikut membuat aturan yang mengizinkan traffic menargetkan /login.html, asalkan 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 selanjutnya