Cómo protegerse de facturas inesperadas de AWS

Imagina que tienes un pequeño proyecto en la nube. Desde hace seis meses, ha estado pagando 20 centavos al mes por él. Básicamente, nada especial. Pero una mañana, de repente llega una gran factura de $ 2700.





En la nube, pagamos por el almacenamiento, la informática y otros servicios a medida que los usamos. No es necesario configurar su propio servidor. Sin embargo, la desventaja es que accidentalmente puede gastar más dinero del que tiene en su billetera. Esto es especialmente difícil con las soluciones sin servidor que escalan automáticamente con el tráfico entrante.



Deje accidentalmente una máquina virtual costosa desatendida o sus funciones lambda se saldrán de control, y esto puede llevar a una puntuación inesperada.





En este artículo, veremos cómo funciona la facturación y cómo evitar que aparezcan facturas inesperadas.



Pequeñas empresas, pequeñas facturas



Este artículo trata sobre proyectos personales y pequeñas empresas con cuentas relativamente pequeñas. Es posible que alguna gran corporación no note la diferencia de $ 3,000.



no hay una solucion perfecta



Desafortunadamente, aquí no existe una solución perfecta. Según Corey Quinn en su podcast , el sistema de facturación de AWS tiene un retraso de varias horas y, en algunos casos, hasta 24 o 48 horas. Como resultado, las alertas de exceso de cuota se pueden activar varias horas o días después de que se produzca un exceso significativo. Las alertas siguen siendo una gran herramienta para protegerse contra costos innecesarios, pero solo en los casos en los que olvidó algo durante unos días, por ejemplo, no detuvo una instancia EC2 costosa después de un taller de aprendizaje automático.



Depende de usted cuánto tiempo dedicar a protegerse contra gastos imprevistos, pero le recomiendo que dedique dos minutos a configurar alertas de presupuesto .



Mecanismos de defensa



Existen muchos mecanismos para protegerse contra facturas inesperadas. Considere la seguridad, las alertas, las acciones correctivas y la mejora de la visibilidad.



1. Proteja su cuenta con autenticación multifactor



Esto es lo primero que debe configurar al crear una nueva cuenta de AWS.





Aquí está la guía oficial de AWS sobre la configuración de la autenticación multifactor (MFA), que proporciona una barrera adicional contra los atacantes.



2. Alertas de presupuesto



Esta es la segunda cosa que debe configurar al crear una nueva cuenta de AWS.



Las alertas de presupuesto son la forma más popular de realizar un seguimiento de sus gastos. Por ejemplo, recibe una notificación por correo electrónico de que se superó el límite. Puede personalizar aún más sus notificaciones mediante Amazon SNS o AWS Chatbot .



Aquí hay un video corto (52 segundos) sobre cómo crear su primera alerta de presupuesto. Ryan Lewis hizo un video más largo con más detalles, detalles de alerta de presupuesto y muchas formas de personalizarlos.



Si ya está utilizando el CDK, el paquete aws-budget-notifier es el mejor....



¿Cuánto para empezar?



Empiece con una cantidad ligeramente superior a sus gastos actuales y con la que se sienta cómodo. Por ejemplo, $ 10. Si ya tiene cargas de trabajo que se han estado ejecutando durante varios meses, tome el promedio y agregue el 50%.



También recomiendo configurar múltiples alertas de facturación con diferentes umbrales :



  1. Advertencia conveniente: la cantidad que está dispuesto a aguantar, pero luego estudie la factura.

  2. Advertencia de peligro: ya no te sientes cómodo y quieres cerrar el servicio lo antes posible. Si la cantidad cómoda es $ 10, entonces esto podría ser $ 100.

  3. Advertencia crítica: con esta cantidad, ya existe el deseo de lanzar una bomba nuclear en su cuenta. Si la cantidad cómoda es $ 10, entonces esto podría ser $ 500. Puede adjuntar un presupuesto especial o alertas de buscapersonas a esta alerta para detener automáticamente sus instancias EC2 o despertarlo.


Además de los umbrales predefinidos, también puede probar AWS Service Cost Anomaly Detection .



Bomba nuclear de emergencia



Dado que puede enviar notificaciones a SNS, puede ejecutar una función lambda que inicia aws-nuke , destruyendo toda la infraestructura de su cuenta. Nunca use esto en una cuenta de producción. Consulte el repositorio de GitHub para obtener más información .



3. Acciones presupuestarias



AWS introdujo recientemente Acciones presupuestarias. Se trata de una extensión de las alertas de presupuesto, en la que se activan determinadas acciones cuando se supera el límite del presupuesto. Además de enviar notificaciones por correo electrónico, ahora puede aplicar políticas de IAM personalizadas como "Evitar el lanzamiento de instancias EC2" o permitir que AWS cierre las instancias EC2 y RDS, como se muestra a continuación.







4. Aplicación móvil



La consola móvil de AWS le brinda la posibilidad de verificar todos sus gastos en 3-5 clics.



Aquí hay dos pantallas de la aplicación móvil:







Para usar la aplicación, debe configurar un usuario dedicado que obtenga solo los permisos que la aplicación necesita para mostrar sus gastos.



Aquí está la política de IAM que le da acceso de lectura a la aplicación, así como notificaciones de Cloudwatch.



{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ce:DescribeCostCategoryDefinition",
                "ce:GetRightsizingRecommendation",
                "ce:GetCostAndUsage",
                "ce:GetSavingsPlansUtilization",
                "ce:GetReservationPurchaseRecommendation",
                "ce:ListCostCategoryDefinitions",
                "ce:GetCostForecast",
                "ce:GetReservationUtilization",
                "ce:GetSavingsPlansPurchaseRecommendation",
                "ce:GetDimensionValues",
                "ce:GetSavingsPlansUtilizationDetails",
                "ce:GetCostAndUsageWithResources",
                "ce:GetReservationCoverage",
                "ce:GetSavingsPlansCoverage",
                "ce:GetTags",
                "ce:GetUsageForecast",
                "health:DescribeEventAggregates",
                "cloudwatch:DescribeAlarms",
                "aws-portal:ViewAccount",
                "aws-portal:ViewUsage",
                "aws-portal:ViewBilling"
            ],
            "Resource": "*"
        }
    ]
}
      
      





Los permisos se dividen en tres grupos:



  1. Explorador de costos de CloudWatch (todo lo que comienza con ce:



    ). Información detallada sobre costos actuales y proyectados.

  2. CloudWatch (cloudwatch:DescribeAlarms



    ). , .

  3. (, aws-portal:



    health:



    ). .


5.



Si carga accidentalmente claves de acceso a un repositorio público , los atacantes pueden lanzar costosas instancias EC2 en su cuenta y usarlas, por ejemplo, para extraer bitcoins. Ha habido informes de casos en los que pequeñas instancias se esconden en regiones subutilizadas para que el propietario no las note en los detalles de facturación.



Puede utilizar AWS Secrets Manager para borrar contraseñas u otros secretos de su código .



Siga esta guía de AWS para crear su primer secreto . Luego, reemplace el secreto de la base de código solicitándolo mediante uno de los clientes oficiales de AWS ( boto3 para Python ).



import boto3

client = boto3.client('secretsmanager')

response = client.get_secret_value(SecretId='replace-me')

secret = response['SecretString']
      
      





Tenga en cuenta que cada secreto cuesta $ 0.40 por mes, más $ 0.05 por 10,000 llamadas API.



Servicio de soporte



Si recibe una factura inesperada, detenga las aplicaciones que causaron la situación, cambie las claves de acceso si es necesario y comuníquese con AWS Support. Aquí hay un video de 20 segundos de dónde hacer clic.



Instrucciones paso a paso para enviar un ticket de soporte:



  • En la esquina superior derecha, haga clic en el botón Soporte y seleccione Centro de soporte

  • Presione el botón naranja Crear caso

  • Seleccionar cuenta y facturación

  • Seleccione "Facturación" como tipo y "Problema con los pagos" como categoría.

  • Complete todos los detalles y envíe


Si bien a algunos se les ha reembolsado su factura inesperada, no cuente demasiado con ello.



Conclusión



Lo primero que debe hacer es configurar MFA y alertas de presupuesto . Luego, puede explorar operaciones más complejas, como acciones presupuestarias, para congelar su cuenta si el gasto aumenta.



Para evitar que sus secretos y claves de acceso terminen en repositorios públicos, guárdelos en AWS Secrets Manager .



All Articles