¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Permisos justos y una factura bajo control

Después de esta lección: Puedo dar a un servicio solo los permisos que necesita y mantener bajo el coste.

Lección de 50 minSin comandos

Una noche, dieciocho mil euros

Una empresa de reformas de Zaragoza tenía un programa que subía presupuestos a la nube. Usaba una clave con todos los permisos de la cuenta.

Un día esa clave acabó publicada por error junto al código. Esa misma noche alguien la encontró y encendió cincuenta máquinas enormes. Por la mañana, la factura pasaba de 18.000 euros.

Al final de esta lección

Nota

Puedo dar a un servicio solo los permisos que necesita y mantener bajo el coste.

Palabras clave

PalabraQué significa
Identidadquién pide algo: una persona o un servicio
Permisoacción concreta que una identidad puede hacer
Políticalista de permisos escrita para una identidad
Mínimo privilegiodar solo los permisos imprescindibles
Rolconjunto de permisos que un servicio asume sin guardar claves
Alerta de presupuestoaviso cuando el gasto pasa de una cifra

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Da solo los permisos que hacen falta

En la nube, cada petición la hace una identidad: tú, un compañero o un programa. Una política dice qué permisos tiene: qué acción puede hacer y sobre qué recurso.

La regla de oro es el mínimo privilegio. El programa de presupuestos solo necesita leer y escribir en un bucket. Si le das solo eso, una clave robada no sirve para encender máquinas ni para leer nóminas.

Prueba: una política en Python

Código: python
# Una política es una lista de reglas: qué acción, sobre qué recurso.
politica = [
    {"accion": "leer", "recurso": "bucket-presupuestos"},
    {"accion": "escribir", "recurso": "bucket-presupuestos"},
]

def permitido(politica, accion, recurso):
    for regla in politica:
        if regla["accion"] == accion and regla["recurso"] == recurso:
            return True
    # Lo que no está permitido de forma expresa, se deniega
    return False

print(permitido(politica, "leer", "bucket-presupuestos"))
print(permitido(politica, "borrar", "bucket-presupuestos"))
print(permitido(politica, "leer", "base-nominas"))

# Quita la regla de escribir. ¿Qué cambia si el servicio solo lee?

Un rol evita guardar claves

Una clave escrita en el código es fácil de perder: se copia, se envía por correo o se publica sin querer.

Por eso, un servicio que corre en la nube debe usar un rol. El proveedor le da permisos temporales que caducan solos, y no hay ninguna clave fija que robar. Las personas entran con su propio usuario y un segundo factor, nunca con una clave compartida.

Un error frecuente

Advertencia

Mucha gente cree que dar todos los permisos ahorra problemas, porque así nada falla. Es al revés. Si algo falla por falta de un permiso, añades ese permiso y nada más. Un permiso de más no se nota hasta el día en que alguien lo usa contra ti.

Vigila la factura antes de que llegue

La factura de la nube no llega una vez al año: crece cada hora. Tres hábitos la mantienen baja.

Primero, pon una alerta de presupuesto: un correo cuando el mes pasa de, por ejemplo, 200 euros. Segundo, apaga lo que no se usa, como los servidores de pruebas por la noche. Tercero, pon una etiqueta a cada recurso con su proyecto, para saber quién gasta qué.

Ejemplo: servidor de pruebas a 0,20 euros

HorarioHoras al mesCoste al mes
Siempre encendido, 30 días720144 euros
10 horas, 22 días laborables22044 euros
Ahorro500100 euros

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.