Mejores prácticas para desplegar nuevos ambientes en la nube por primera vez – Parte 2
En la parte anterior, revisamos la planificación de asignación de recursos, etiquetado de recursos, autenticación, autorización y políticas de contraseñas y auditorías.
En la parte 2, continuaremos con mejores prácticas adicionales para construir nuevos ambientes en la nube.
Control de presupuestos
Como primeros pasos es crucial el crear un presupuesto, e implementar alertas de presupuesto para cualquier cuenta en la nube. Esto es importante para evitar casos en donde el alto consumo de recursos suceda debido a un error humano, por ejemplo, comprar o consumir recursos costosos, o escenarios de Denegación de billetera en donde atacantes externos irrumpen la cuenta de alguna organización y despliegan servidores para el minado de Bitcoins.
Ejemplos comunes de administración de presupuestos para varios proveedores en la nube.
· Cobros consolidados de AWS– Configura una cuenta central para todas las cuentas de AWS en la organización, esto para concentra la información de cobro de todas las cuentas en una sola. (Que será accesible solo para un número limitado de cuentas de usuario)
· Cuenta de cobro GCP– Repositorio central para almacenar toda la información de cobros de todos los proyectos de Google Cloud
· Administración de costos de Azure– Una interfaz para configurar presupuestos y alertas de presupuestos para todas las suscripciones de Azure en la organización. Es posible el consolidar múltiples suscripciones de Azure en grupos de administración para así tener un control centralizado de todos los presupuestos para todas las suscripciones.
· Presupuestos en Infraestructura en la nube de Oracle – Una interfaz para configurar presupuestos y alertas de presupuesto para todos los servicios.
Asegura el acceso a los ambientes en la nube
Para prevenir acceso entrante desde el internet a recursos en la nube (Servidores virtuales, bases de datos, almacenamiento, etc) Es altamente recomendable el despliegue de un servidor bastión, que será accesible mediante internet (A través de SSH o RDP) y permitirá el acceso y administración de los recursos dentro de nuestro ambiente en la nube.
Mejores prácticas para desplegar un servidor bastión:
· Servidor Bastión Linux en AWS
· Crear un servidor Bastión en Azure usando el portal
· Conexión segura a instancias de VM en GCP
· Creando infraestructura básica para un ambiente en la nube basado en Oracle Cloud
Al incrementar el uso de ambientes en la nube, podemos considerar el crear un túnel VPN desde la red corporativa (VPN punto a punto) o permitir accesos a clientes VPN desde Internet hacia el ambiente en la nube (Por ejemplo Endpoint para clientes VPN AWS, VPN Punto a punto Azure, VPN SSL Oracle Cloud)
Administrando recursos de cómputo (Máquinas virtuales y contenedores)
Al desplegar máquinas virtuales en un ambiente en la nube, es áltamente recomendable seguir las siguientes indicaciones:
· Elige una imagen existente de la lista predefinida de tu proveedor de servicios en la nube (Tipo de sistema operativo, compilación de sistema operativo, y algunas veces una imágen que incluya software adicional en la imágen base.)
· Configura la imagen de acuerdo a las demandas de tu organización o de la aplicación.
· Actualiza todo el software incluido en la imagen.
· Almacena una versión actualizada de la imagen (“Imagen dorada”) dentro del repositorio central de tu proveedor de servicios en la nube (para ser reutilizada).
· En el caso de que la información contenida dentro de la imágen sea crítica, considera usar un servicio de respaldos administrados (como Respaldos AWS or Respaldos Azure).
· Cuando despliegues servidores Windows, es crucial el establecer contraseñas complejas para la cuenta de administración local, y cuando sea posible, añade la máquina Windows al dominio corporativo.
· Al desplegar servidores Linux, es crucial el uso de una llave de autenticación SSH, y el almacenamiento de las llaves privadas en una locación segura..
· Cuando sea posible, encripta en reposo los datos de todos los volúmenes en bloque (los discos duros de los servidores y sus volúmenes).
· Es áltamente recomendable el conectar los servidores a un servicio de evaluación de vulnerabilidades, para poder así detectar vulnerabilidades de software (servicios como Amazon Inspector o Azure Security Center).
· Es áltamente recomendable el conectar los servidores a un servicio de administración de parches, para así facilitar el trabajo de la aplicación de parches de seguridad. (servicios como AWS Systems Manager Patch Manager, Azure Automation Update Management or Google OS Patch Management).
Al desplegar contenedores en la nube, es muy recomendable el seguir las siguientes indicaciones:
· Usar una imágen de un repositorio conocido de contenedores.
· Actualizar todos los binarios y dependencias dentro de la imágen.
· Almacenar todas las imágenes de contenedores dentro del repositorio de nuestro proveedor de servicios en la nube (Como Amazon ECR, Azure Container Registry, GCP Container Registry, Oracle Cloud Container Registry, etc.)
· Evita usar la cuenta Root dentro de los contenedores.
· Evita almacenar datos(como ID de sesión) dentro del contenedor– asegúrate que el contenedor sea stateless.
· Es áltamente recomendable el conectar el proceso de CI/CD y el proceso de actualización de contenedores a un servicio administrador de vulnerabilidades, para así detectar vulnerabilidades dentro de los contenedores. (Servicios como Amazon ECR Image scanning, Azure Container Registry, GCP Container Analysis, etc.)
Almacenando información sensible
Es áltamente recomendado el evitar almacenar información sensible, como credenciales, llaves de encriptación, secretos, llaves API, etc., en texto plano dentro de máquinas virtuales, contenedores, archivos de texto o en el escritorio local.
Información sensible debe ser guardada dentro de servicios de almacenamiento seguro tales como:
· AWS KMS o AWS Secrets Manager
· Google Cloud KMS or Google Secret Manager
· Oracle Cloud Infrastructure Key Management
Traducido por Josue Padilla –www.spainclouds.com/authors/josue-padilla