Estoy creando una aplicación sin servidor con AWS Lambda y API Gateway. Con el fin de evitar los ataques DDOS que realizan una gran cantidad de solicitudes que me cuestan mucho dinero, configuré un plan de uso con una cuota de solicitudes (por ejemplo, 10 000 solicitudes por mes). Esto requiere que las personas que llaman pasen una clave API como encabezado.
Aparentemente, esto funciona bien, pero también necesito habilitar CORS para este servicio. Para eso, necesito permitir una solicitud de OPCIONES no autorizada (solicitud de "verificación previa de CORS") ya que los navegadores no admiten el envío de ningún encabezado especial allí. Pero luego parece que no puedo encontrar una manera de hacer cumplir una cuota y vuelvo al punto de partida: un número descontrolado de esas solicitudes podría costar una cantidad imprevisible de dinero. ¿Hay alguna forma de excluir esta posibilidad?
Para aplicar una cuota en las solicitudes de OPCIONES, cree una ACL web en AWS WAF y asóciela a una etapa de su API en API Gateway. Agregue una regla basada en tasa en la ACL web que bloquee todas las solicitudes de OPCIONES más allá del límite de tasa que especifique. Las reglas en las ACL web se pueden configurar específicamente para esto, como se muestra a continuación:
Para obtener un tutorial guiado por capturas de pantalla de todo este proceso, consulte la publicación de mi blog .
No está pagando por llamadas no autorizadas a API-Gateway. AWS se hace cargo de este cargo. Usted está pagando después de que se autorice la solicitud y solo si no excede su plan de uso.
Entonces, si alguien está haciendo un DDOS en su API sin autenticación, es gratis.
Si alguien está haciendo un DDOS con una clave API válida, solo pagará hasta que se exceda su plan de uso.
Encuentre más información aquí .
Las solicitudes no se cobran por fallas de autorización y autenticación.
Las llamadas a métodos que requieren claves de API no se cobran cuando las claves de API faltan o no son válidas.
Las solicitudes limitadas por API Gateway no se cobran cuando la tasa de solicitud o la tasa de ráfaga exceden los límites preconfigurados.
Las solicitudes limitadas por el plan de uso no se cobran cuando los límites de tarifa o la cuota superan los límites preconfigurados.
Así que asegúrese de tener la autenticación habilitada en su API y un plan de uso para todas las solicitudes autenticadas.