keenauth_attack_protection
El recurso keenauth_attack_protection gestiona los ajustes de protección frente a ataques del entorno: fuerza bruta, limitación de IP sospechosas, credential stuffing y modo de ataque, protección frente a bots, contraseñas filtradas, protección del registro, protección frente al fraude por SMS y política de riesgo.
Un objeto por entorno
El objeto de protección frente a ataques existe una sola vez por entorno y siempre está presente. Declara el recurso como máximo una vez por configuración del proveedor. Al crearlo, el recurso lee el objeto actual y escribe solo lo que cambia tu configuración. Destruirlo solo lo elimina del estado; el entorno conserva sus ajustes de protección, así que un destroy nunca reduce la seguridad en silencio.
Solo se gestiona lo que escribes
Un atributo o un grupo que omites conserva su valor actual. Quitar un atributo de la configuración conserva su último valor. El estado guarda los valores efectivos, es decir, los valores predeterminados, los mínimos de seguridad y las restricciones de plan que aplicó la API, así que un plan rebajado aparece como un cambio en el siguiente plan. Las listas como suspicious_ip_throttling.allowlist y sms_protection.allowed_countries son conjuntos, por lo que su orden no importa.
resource "keenauth_attack_protection" "this" {
brute_force = {
max_failures = 10
lock_minutes = 30
}
suspicious_ip_throttling = {
allowlist = ["203.0.113.0/24"]
}
sms_protection = {
allowed_countries = ["DE", "TR"]
daily_cap = 500
}
risk_policy = {
mode = "enforce"
challenge_threshold = 5
block_threshold = 8
}
}
Grupos
| Atributo | Qué controla |
|---|---|
brute_force |
Bloqueo por usuario tras inicios de sesión fallidos: modo, fallos antes de un bloqueo, ventana de conteo, duración del bloqueo, correo electrónico del usuario. |
suspicious_ip_throttling |
Límites por IP para inicios de sesión y registros fallidos, y la lista de permitidos CIDR que queda exenta. |
credential_stuffing |
Modo de detección de credential stuffing y modo de ataque (inicio automático, duración). |
bot_protection |
Modo del desafío anti-bots (off, risk_based, always) y proveedor. |
breached_password |
Qué ocurre cuando se usa una contraseña filtrada al registrarse, al cambiarla y al iniciar sesión. |
signup_protection |
Correos desechables, subdirecciones con + y registros por dispositivo en 30 días. |
sms_protection |
Países a los que se pueden enviar SMS, límite diario y cortacircuitos de conversión. |
risk_policy |
Modo de riesgo, umbrales de desafío y de bloqueo, notificación de nuevo dispositivo. |
Mínimos de seguridad y restricciones de plan
- Los valores por debajo de un mínimo de seguridad (más de 100 intentos fallidos antes de un bloqueo, un bloqueo de menos de 5 minutos, más de 20 registros por IP y hora) se rechazan ya en el plan. Las opciones bloqueantes de
breached_password.on_signupyon_password_changetambién son mínimos. risk_policy.block_thresholddebe ser mayor querisk_policy.challenge_threshold.risk_policy.mode = "enforce"requiere el plan Startup o superior; de lo contrario, la API responde403 plan_feature_unavailable.block_thresholdydaily_capsonnullen el estado mientras están desactivados. Una vez establecidos, la configuración ya no puede desactivarlos; para eso usa el panel o la API de gestión.- Las entradas de la lista de permitidos son direcciones de red canónicas como
203.0.113.0/24. Se rechazan los prefijos IPv4 más amplios que /8 y los prefijos IPv6 más amplios que /32.
Cambios seguros
- Una actualización envía solo los campos modificados como JSON merge patch con
If-Match. Si alguien cambió el objeto después de crear el plan, la API responde412y nada cambia. Ejecutaplande nuevo. - Un cambio hecho en el panel aparece en el siguiente
plancomo deriva, yapplylo revierte para los atributos que gestionas. - Los bloqueos activos y el modo de ataque son operaciones, no configuración: usa para ellos el panel o la API de gestión (
/v1/attack-protection/lockoutsy/v1/attack-protection/attack-mode).
Importación
tofu import keenauth_attack_protection.this attack-protection