La configuración puede considerarse segura. Usted mantiene los datos descifrados sólo en la memoria. Normalmente, utilizará una clave por fila para cifrar los datos confidenciales. Sin embargo, no puede buscar los datos en la base de datos (como mencionó). Depende del caso de uso, es posible que pueda resolver el problema mediante la codificación de los datos confidenciales. Cuando desea buscar un valor en particular, puede marcar el valor antes de buscarlo. Sin embargo, solo puede realizar una búsqueda de coincidencias exactas y no una con comodines (¡el operador "Me gusta" no funcionará!).
Un enfoque completamente diferente sería cifrar toda la base de datos. Los datos se almacenan encriptados en el disco duro. Cuando usa AWS con RDS, puede implementar esta estrategia fácilmente:
enlace
Todas las copias de seguridad están cifradas y los datos en sí también se almacenan cifrados. Sin embargo, si alguien accede a la base de datos cuando se está ejecutando, los datos no están cifrados para este usuario en particular. Significa que cuando le otorgas a alguien el permiso para acceder a los datos, será descifrado. Sin embargo, al final todo se reduce a cómo configurar sus roles de IAM. O confía en los roles IAM para el KMS o para el RDS. Así que si configura los roles IAM correctamente, estará bien.
AWS admite desde hace algunas semanas también la replicación entre regiones de dichas instancias de base de datos cifradas.
Normalmente, se aceptan ambos enfoques para PCI DSS y para el cumplimiento con HIPAA. Al buscar una forma de buscar los datos, también recomendaría el segundo enfoque.
Cifrado de disco con RDS
RDS utiliza un volumen EBS para almacenar los datos. Los datos en el volumen de EBS se pueden cifrar (consulte enlace ). Significa que cuando la instancia RDS está accediendo al volumen EBS, los datos están encriptados resp. descifrado de forma transparente. Significa la lectura resp. La operación de escritura desencadena un descifrado resp. Un cifrado de los datos.
Aquí encontrará los detalles sobre cómo configurar RDS con volúmenes de EBS cifrados:
enlace
Esencialmente, durante la creación de la instancia, debe especificar si se debe cifrar o no.
Una vez que haya configurado esto, debe configurar un usuario en la base de datos que le permita acceder a la base de datos. Finalmente, también necesitará un rol de IAM que le permita modificar la instancia de la base de datos a través de su aplicación. No sé si necesitas más tarde. Realmente depende de tu caso de uso.
Lo último que recomiendo es cifrar la comunicación entre su aplicación y la instancia RDS.
Resumido, los datos nunca se almacenan sin cifrar. Los datos siempre se descifran cuando se utilizan y los datos no cifrados solo se guardan en la memoria (RAM).