En esta página, se describen ejemplos de configuraciones de políticas de seguridad para diferentes tipos de balanceadores de cargas y políticas de seguridad.
Ejemplos de políticas de seguridad
Crea políticas de seguridad
Puedes usar la consola de Trusted Cloud o gcloud CLI para crear políticas de seguridad. Para las instrucciones de esta sección, se da por hecho que estás creando políticas de seguridad a fin de aplicarlas a un balanceador de cargas de aplicaciones externo global o a un balanceador de cargas de aplicaciones clásico y a un servicio de backend existentes. Si quieres ver un ejemplo sobre cómo completar los campos, consulta Crea el ejemplo.
Console
Crea políticas y reglas de seguridad de Cloud Armor y vincula una política de seguridad a un servicio de backend:
En la consola de Trusted Cloud , ve a la página Políticas de Google Cloud Armor.
Haz clic en Crear políticas.
En el campo Nombre, ingresa el nombre de tu política.
Ingresa una descripción de la política (opcional).
En Tipo de política, elige Política de seguridad de backend o Política de seguridad perimetral.
En Acción de la regla predeterminada, selecciona Permitir para una regla predeterminada que permite el acceso o selecciona Denegar para una regla predeterminada que prohíbe el acceso a una dirección IP o a un rango de direcciones IP.
La regla predeterminada es la de menor prioridad que tiene efecto solo si no se aplica ninguna otra regla.
Si configuras una regla para rechazar, selecciona un mensaje Rechazar estado. Este es el mensaje de error que muestra Cloud Armor si un usuario sin acceso intenta acceder.
Sin importar el tipo de regla que crees, haz clic en Siguiente paso.
Agrega más reglas:
- Haga clic en Agregar regla.
- Ingresa una descripción para la regla (opcional).
Selecciona el modo:
- Modo básico: permite o rechaza el tráfico en función de los rangos o las direcciones IP.
- Modo avanzado: permite o rechaza el tráfico según las expresiones de reglas.
En el campo Coincidencia, especifica las condiciones bajo las cuales se aplica la regla:
- Modo básico: ingresa las direcciones IP o los rangos de IP para que coincidan con la regla.
- Modo avanzado: ingresa una expresión o subexpresiones que se deben evaluar en las solicitudes entrantes. Para obtener información sobre cómo escribir las expresiones, consulta Configura los atributos del lenguaje de reglas personalizadas.
En Acción, selecciona Permitir o Rechazar para permitir o denegar el tráfico si la regla coincide.
Para habilitar el modo de vista previa, selecciona la casilla de verificación Habilitar. En el modo de vista previa, puedes ver cómo se comporta la regla, pero esta no está habilitada.
Ingresa la Prioridad de la regla. Puede ser cualquier número entero positivo entre 0 y 2,147,483,646 inclusive. Para obtener más información sobre el orden de evaluación, consulta Orden de evaluación de la regla.
Haga clic en Listo.
Para agregar más reglas, haz clic en Agregar regla y repite los pasos anteriores. De lo contrario, haz clic en Siguiente paso.
Aplica políticas a los objetivos:
- Haga clic en Agregar destino.
- En la lista Destino, selecciona un objetivo.
- Para agregar más destinos, haz clic en Agregar destino.
- Haga clic en Listo.
- Haz clic en Crear política.
gcloud
Para crear una política de seguridad de Cloud Armor nueva, usa el comando
gcloud compute security-policies create
.En el campo
type
, usaCLOUD_ARMOR
para crear una política de seguridad de backend oCLOUD_ARMOR_EDGE
para crear una política de seguridad perimetral. La marcatype
es opcional. Si no se especifica ningún tipo, se crea una política de seguridad de backend de forma predeterminada:gcloud compute security-policies create NAME \ [--type=CLOUD_ARMOR|CLOUD_ARMOR_EDGE] \ [--file-format=FILE_FORMAT | --description=DESCRIPTION] \ [--file-name=FILE_NAME]
Reemplaza lo siguiente:
NAME
: El nombre de la política de seguridadDESCRIPTION
: Es la descripción de la política de seguridad.
Con el siguiente comando, se actualiza la política que creaste antes, se activa el análisis de JSON y se cambia el nivel de registro a
VERBOSE
:gcloud compute security-policies update my-policy \ --json-parsing=STANDARD \ --log-level=VERBOSE
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
PRIORITY
por la prioridad asignada a la regla en la política. Para obtener información sobre cómo funciona la prioridad de las reglas, consulta Orden de evaluación de las reglas.Por ejemplo, el siguiente comando agrega una regla para bloquear el tráfico de los rangos de direcciones IP
192.0.2.0/24
y198.51.100.0/24
. La regla tiene una prioridad de 1, 000 y es una regla en una política llamadamy-policy
.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. Para obtener más información, consulta Configura los atributos del lenguaje de reglas personalizadas. El siguiente comando agrega una regla para permitir el tráfico desde la dirección IP1.2.3.4
y contiene la stringexample
en el encabezado del usuario-agente: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-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"
Configura políticas de seguridad para balanceadores de cargas de aplicaciones externos regionales
En esta sección, se proporciona información para configurar políticas de seguridad de Cloud Armor con alcance regional para balanceadores de cargas de aplicaciones externos regionales.
Protege las cargas de trabajo con balanceo de cargas regional
Sigue estos pasos para configurar una política de seguridad que proteja tu servicio de backend con alcance regional:
Crea una política de seguridad con alcance regional.
gcloud compute security-policies create POLICY_NAME \ --type=CLOUD_ARMOR \ --region=REGION
Vincula la política de seguridad con alcance regional a un servicio de backend con alcance regional. Reemplaza
BACKEND_NAME
por el nombre de tu servicio de backend existente con alcance regional.gcloud compute backend-services update BACKEND_NAME \ --security-policy=POLICY_NAME \ --region=REGION
Aplica una política de seguridad de Cloud Armor con alcance regional
Considera un ejemplo en el que eres un administrador de seguridad que desea satisfacer un requisito de residencia que exige que todas tus cargas de trabajo de backend y reglas del WAF se implementen en una región específica. Supongamos que ya realizaste los siguientes pasos:
- Creaste servicios de backend con carga balanceada y alcance regional en la región.
- Inhabilitaste las políticas de seguridad existentes con alcance global en tu implementación.
- Creaste y adjuntaste una política de seguridad con alcance regional en la misma región (como en la sección anterior).
Puedes agregar reglas del WAF y otras reglas avanzadas a tu política para cumplir con el requisito con los siguientes comandos de ejemplo:
Agrega una regla del WAF a la política:
gcloud compute security-policies rules create 1000 --action=deny-404 \ --expression="evaluatePreconfiguredWaf('xss-v33-stable', ['owasp-crs-v030301-id941100-xss', 'owasp-crs-v030301-id941160-xss'])" \ --security-policy=POLICY_NAME \ --region=REGION
Agrega una regla avanzada a la política:
gcloud compute security-policies rules create 1000 --action=allow \ --expression="has(request.headers['cookie']) && request.headers['cookie'].contains('80=EXAMPLE')" \ --security-policy=POLICY_NAME \ --region=REGION
Agrega una regla de límite de frecuencia a la política:
gcloud compute security-policies rules create 1000 --action=throttle \ --src-ip-ranges="1.1.1.1/32" \ --rate-limit-threshold-count=1000 \ --rate-limit-threshold-interval-sec=120 \ --conform-action="allow" \ --exceed-action="deny-429" \ --enforce-on-key=IP \ --ban-duration-sec=999 \ --ban-threshold-count=5000 \ --ban-threshold-interval-sec=60 \ --security-policy=POLICY_NAME \ --region=REGION
¿Qué sigue?
- Configura políticas de seguridad de Cloud Armor
- Obtén más información sobre la limitación de frecuencia.