Mejores prácticas para proteger AWS RDS y otras bases de datos en la nube
El servicio de base de datos relacional de AWS puede ayudar a optimizar una gran cantidad de operaciones de almacenamiento en la nube, pero mantener la seguridad requiere cierta atención por parte del usuario. A continuación se muestran algunas prácticas recomendadas para utilizar RDS.
No sorprende que las organizaciones utilicen cada vez más servicios nativos de la nube, incluso para el almacenamiento de datos. El almacenamiento en la nube ofrece enormes beneficios, como la replicación, la resiliencia geográfica y el potencial de reducción de costos y mejora de la eficiencia.
El servicio de base de datos relacional (RDS) de Amazon Web Services (AWS) es uno de los servicios de almacenamiento y bases de datos en la nube más populares. En un nivel alto, RDS agiliza la configuración, operación y escalado de bases de datos relacionales en AWS, como MariaDB, Microsoft SQL Server, MySQL y otros. RDS, al igual que cualquier otra oferta de servicios en la nube o de AWS, utiliza el modelo de responsabilidad compartida. Esto significa que el proveedor de servicios en la nube (CSP), AWS en este caso, es responsable de proteger la infraestructura subyacente y los entornos de alojamiento, y los consumidores son responsables de su parte de RDS, que incluye el sistema operativo, las configuraciones y las consideraciones de arquitectura.
No tener en cuenta la parte que corresponde al consumidor de las responsabilidades de RDS puede provocar filtraciones de datos en la nube, de las cuales hemos visto muchas. Las áreas clave incluyen la configuración del acceso a la nube privada virtual (VPC) en la que residirá la instancia de la base de datos, políticas de administración de acceso e identidad de aplicaciones (IAM) y grupos de seguridad para controlar el tráfico y el cifrado de la red. Discutiremos algunas de esas áreas a continuación, junto con otras, como el cumplimiento.
Una de las primeras consideraciones clave es la autenticación, o cómo los usuarios validan su identidad para acceder a instancias de bases de datos RDS. Entre las opciones se encuentran contraseñas, Kerberos y autenticación de bases de datos IAM. Los consumidores deben determinar qué ruta de autenticación elegirán y luego implementar los controles adecuados, como la complejidad de las contraseñas, MFA y políticas de IAM.
En las áreas de protección de datos, las consideraciones clave incluyen el uso de autenticación multifactor, así como el uso de SSL/TLS para comunicarse con otros recursos y garantizar que esté utilizando una versión de TLS adecuada, como 1.2. Otras recomendaciones de AWS incluyen el uso de su servicio Macie, que puede ayudar a descubrir y proteger datos confidenciales almacenados en S3. Macie utiliza el aprendizaje automático (ML) para descubrir datos confidenciales, crear un mapa interactivo e incluso generar hallazgos automáticamente y enviarlos a servicios de AWS como AWS Security Hub para que las configuraciones vulnerables o los datos expuestos puedan corregirse.
AWS proporciona varios métodos para cifrar los recursos de AWS RDS, que incluyen el cifrado de datos en reposo en las instancias de base de datos subyacentes, copias de seguridad automatizadas, réplicas de lectura e instantáneas. Para facilitar esto, AWS utiliza su Servicio de administración de claves (KMS). Aquí hay varias opciones, dependiendo de si desea mantener la responsabilidad de administración de las claves usted mismo o utilizar claves administradas por AWS. Al seguir la ruta de las claves administradas por el cliente, puede modificar elementos como las políticas de claves y las políticas de IAM para implementar un control de acceso más granular y restricciones de uso para las claves, como limitar dónde se pueden originar las solicitudes de acceso a la instancia de RDS.
Los clientes también pueden utilizar AWS CloudTrail para auditar el uso de la clave KMS para identificar comportamientos potencialmente maliciosos o uso indebido de permisos y acceso a datos. Para profundizar en el cifrado de AWS y el uso de KMS, AWS tiene un documento técnico sobre mejores prácticas del servicio de administración de claves.
Dicho esto, existen algunas consideraciones clave a tener en cuenta al cifrar instancias de bases de datos de AWS RDS. Debe cifrar la instancia de la base de datos en el momento de la creación; no puedes volver atrás y cifrarlo más tarde. Tampoco puede desactivar el cifrado una vez que esté habilitado.
Las organizaciones también deben considerar proteger el tráfico entre el servicio RDS y los clientes y aplicaciones locales, como utilizar AWS Site-to-Site VPN o AWS Direct Connect para garantizar que el tráfico no quede expuesto a partes no autorizadas.
Todos hemos visto los titulares sobre instancias o depósitos de almacenamiento de datos en la nube expuestos públicamente. Aquí es donde entran en juego características como los grupos de seguridad de AWS. Los grupos de seguridad ayudan a controlar el acceso del tráfico de red hacia y desde instancias RDS. Afortunadamente, AWS ha adoptado un enfoque en el que el acceso a la red está desactivado de forma predeterminada y los usuarios deben especificar reglas en sus grupos de seguridad para permitir el tráfico desde rangos o direcciones IP específicas. Esto permite a los usuarios implementar configuraciones como permitir el tráfico desde sus servicios de aplicaciones a la base de datos RDS backend.
AWS proporciona un diagrama útil para ayudar a visualizar un escenario común, como tener una instancia de base de datos AWS RDS ejecutándose en una subred privada (no accesible públicamente) y luego tener un servicio de aplicación ejecutándose en una instancia EC2 en una subred pública con conectividad a Internet. . Los usuarios pueden implementar y modificar grupos de seguridad tanto en la aplicación web como en las instancias de la base de datos para permitir el flujo de tráfico de red adecuado para facilitar la funcionalidad pero también minimizar el acceso no autorizado y el riesgo.
Instancia de base de datos de AWS RDS que se ejecuta en una subred privada
Otra recomendación que se cita con frecuencia es evitar el uso de un "host de salto", que es donde los desarrolladores o administradores pueden conectarse a un host en una subred pública a través de algo como el puerto 22, y luego "saltar" desde allí a la instancia de RDS backend. ejecutándose en una subred privada. Sin embargo, como muchos han señalado, como en este blog de AWS, los hosts de salto pueden ser víctimas de ataques como la suplantación de IP y otros métodos.
Usando un host de salto
En su lugar, los usuarios pueden utilizar AWS Sessions Manager para eliminar el uso de un host de salto y seguir permitiendo la entrada segura del tráfico de red a la instancia de RDS.
Usando el Administrador de sesiones de AWS
AWS ofrece una serie de otras recomendaciones clave de mejores prácticas de seguridad para los consumidores que utilizan AWS RDS como parte de su arquitectura en la nube. Estas incluyen actividades como la creación de cuentas de usuario individuales para cada persona que accede a los recursos de AWS RDS y no utiliza las credenciales raíz de AWS para administrar RDS. Esto es clave porque es una práctica recomendada de seguridad evitar cuentas compartidas y el uso de cuentas individuales permite un control de acceso más granular, así como una atribución desde una perspectiva de registro y monitoreo, lo que significa que usted sabe quién hace qué.
Otra recomendación clave es implementar el enfoque tradicional de control de acceso menos permisivo, que se alinea con el impulso de la industria por la confianza cero. Esto significa otorgar sólo los permisos mínimos necesarios a las cuentas para que realicen sus funciones y nada más. Sin embargo, administrar permisos a escala entre grandes bases de usuarios puede resultar difícil, por lo que AWS también recomienda utilizar grupos de IAM para administrar permisos para múltiples usuarios, donde se puede implementar un control de acceso basado en roles.
Si bien la discusión anterior está lejos de ser exhaustiva con respecto a las mejores prácticas de seguridad de AWS RDS, ayuda a enmarcar la conversación en consideraciones clave al utilizar el servicio RDS y cómo garantizar que sus datos y los de sus clientes estén protegidos adecuadamente al utilizar el servicio. . También notará temas clave que son independientes de AWS y que deben considerarse al utilizar cualquier servicio de almacenamiento de datos en la nube. Estos incluyen cosas como gestión de identidad y acceso (IAM), control de acceso a la red, cifrado y más.
Al pensar en el uso del almacenamiento en la nube desde la perspectiva de estas áreas, puede comenzar a asegurarse de poder aprovechar los beneficios del almacenamiento en la nube y las bases de datos, pero hacerlo sin poner en riesgo a la organización.