Para agregar reglas a una política de seguridad, usa el comando gcloud
compute security-policies rules create PRIORITY.
gcloud compute security-policies rules create PRIORITY \
[--security-policy POLICY_NAME] \
[--description DESCRIPTION] \
--src-ip-ranges IP_RANGE,... | --expression EXPRESSION \
--action=[ allow | deny-403 | deny-404 | deny-502 ] \
[--preview]
Reemplaza lo siguiente:
PRIORITY: Es la prioridad de la regla. Consulta Orden de evaluación de reglas.
POLICY_NAME: El nombre de tu política de seguridad
DESCRIPTION: una descripción de la regla
IP_RANGE,...: Es una lista separada por comas de rangos de direcciones IP.
EXPRESSION: Una expresión del lenguaje de reglas de Cloud Armor
Por ejemplo, el siguiente comando agrega una regla para bloquear el tráfico de 192.0.2.0/24 y 198.51.100.0/24. La regla tiene una prioridad de 1,000:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \
--src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \
--action "deny-403"
Con la marca --preview agregada, la regla se agrega a la política, pero no se aplica, y cualquier tráfico que active la regla solo se registra.
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \
--src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \
--action "deny-403" \
--preview
Usa la marca --expression para especificar una condición personalizada. Consulta los atributos del lenguaje de reglas personalizadas.
El siguiente comando agrega una regla para permitir el tráfico desde la dirección IP 1.2.3.4 que contiene la cadena example en el encabezado User-Agent:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')" \
--action allow \
--description "Block User-Agent 'example'"
Con el siguiente comando, se agrega una regla para bloquear solicitudes si la cookie de la solicitud contiene un valor específico:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')" \
--action "deny-403" \
--description "Cookie Block"
Con el siguiente comando, se agrega una regla para bloquear solicitudes de la región AU:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "origin.region_code == 'AU'" \
--action "deny-403" \
--description "AU block"
Con el siguiente comando, se agrega una regla para bloquear las solicitudes de la región AU que no están en el rango de IP especificado:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "origin.region_code == 'AU' && !inIpRange(origin.ip, '1.2.3.0/24')" \
--action "deny-403" \
--description "country and IP block"
Con el siguiente comando, se agrega una regla para bloquear solicitudes con un URI que coincide con una expresión regular:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "request.path.matches('/example_path/')" \
--action "deny-403" \
--description "regex block"
Con el siguiente comando, se agrega una regla para bloquear solicitudes si el valor decodificado en Base64 del encabezado de user-id contiene un valor específico:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')" \
--action "deny-403" \
--description "country and IP block"
Con el siguiente comando, se agrega una regla que usa un conjunto de expresiones preconfiguradas para mitigar los ataques de SQLi:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "evaluatePreconfiguredWaf('sqli-v422-stable')" \
--action "deny-403"
Con el siguiente comando, se agrega una regla que usa un conjunto de expresiones preconfiguradas para permitir el acceso desde todas las direcciones IP en una lista de direcciones IP con nombre:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "evaluatePreconfiguredWaf('sourceiplist-fastly')" \
--action "allow"