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 keamananSITE_KEY
: kunciCHALLENGEPAGE
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 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 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 aturanSECURITY_POLICY
: nama kebijakan keamananEXPRESSION
: ekspresi bahasa aturan kustom yang cocok dengan traffic yang ingin Anda terapkan penilaian reCAPTCHASRC_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 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 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 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
- Lihat ringkasan pembatasan kapasitas.
- Pelajari pengelolaan bot.