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 keamananSITE_KEY
: kunci reCAPTCHACHALLENGEPAGE
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 aturanSECURITY_POLICY
: nama kebijakan keamananEXPRESSION
: ekspresi bahasa aturan kustom yang cocok dengan traffic tempat Anda ingin menerapkan penilaian reCAPTCHASRC_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 aturanSECURITY_POLICY
: nama kebijakan keamananEXPRESSION
: ekspresi bahasa aturan kustom yang cocok dengan traffic yang Anda inginkan untuk menerapkan penilaian reCAPTCHASRC_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 aturanSECURITY_POLICY
: nama kebijakan keamananEXPRESSION
: ekspresi bahasa aturan kustom yang cocok dengan traffic tempat Anda ingin menerapkan penilaian reCAPTCHASRC_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 permintaanVALUE_#
: 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
- Lihat ringkasan pembatasan kapasitas.
- Pelajari pengelolaan bot.