Prácticas recomendadas de seguridad preventivas de DynamoDB - Amazon DynamoDB

Prácticas recomendadas de seguridad preventivas de DynamoDB

Las siguientes prácticas recomendadas pueden serle de utilidad para evitar incidentes de seguridad en Amazon DynamoDB.

Cifrado en reposo

DynamoDB cifra en reposo todos los datos de usuario almacenados en tablas, índices, flujos y copias de seguridad mediante claves de cifrado almacenadas enAWS Key Management Service (AWS KMS). Esto proporciona una capa adicional de protección de datos al proteger los datos del acceso no autorizado al almacenamiento subyacente.

Puede especificar si DynamoDB debe utilizar una Clave propiedad de AWS (tipo de cifrado predeterminado), una Clave administrada de AWS, o una clave administrada por el cliente para cifrar los datos del usuario. Para obtener más información, consulte Cifrado en reposo de Amazon DynamoDB.

Usar roles de IAM para autenticar el acceso a DynamoDB

Para acceder a DynamoDB, los usuarios, las aplicaciones y otros servicios de AWStienen que incluir credenciales válidas de AWS en sus solicitudes API de AWS. No debe almacenar las credenciales de AWS de forma directa en la aplicación ni en una instancia EC2. Estas son las credenciales a largo plazo que no rotan automáticamente, por lo tanto, podrían tener un impacto empresarial significativo si se comprometen. Un rol de IAM lo habilita a obtener claves de acceso temporal que se pueden utilizar para tener acceso a los servicios y recursos de AWS.

Para obtener más información, consulte Identity and Access Management en Amazon DynamoDB.

Usar directivas de IAM para la autorización base de DynamoDB

Cuando concede permisos, usted decide quién debe obtenerlos, para qué API de DynamoDB se obtienen y qué acciones específicas desea permitir en esos recursos. La implementación de privilegios mínimos es la clave a la hora de reducir los riesgos de seguridad y el impacto que podrían causar los errores o los intentos malintencionados.

Asociar políticas de permisos a identidades de IAM (es decir, usuarios, grupos y roles) y, de ese modo, conceder permisos para realizar operaciones en recursos de DynamoDB.

Para hacerlo, utilice lo siguiente:

Uso de condiciones de políticas de IAM para control de acceso preciso

Al conceder permisos en DynamoDB, puede especificar las condiciones que determinan cómo se aplica una política de permisos. La implementación de privilegios mínimos es la clave a la hora de reducir los riesgos de seguridad y el impacto que podrían causar los errores o los intentos malintencionados.

Puede especificar las condiciones al conceder permisos utilizando la política de IAM. Por ejemplo, puede hacer lo siguiente:

  • Conceder permisos para que los usuarios puedan obtener acceso de solo lectura a determinados elementos y atributos de una tabla o un índice secundario.

  • Conceder permisos para que los usuarios puedan obtener acceso de solo escritura a determinados atributos de una tabla, según la identidad del usuario en cuestión.

Para obtener más información, consulte Uso de condiciones de políticas de IAM para control de acceso preciso.

Utilizar un punto de enlace de la VPC y políticas para acceder a DynamoDB

Si solo necesita acceso a DynamoDB desde una Virtual Private Cloud (VPC), debe usar un punto de enlace de la VPC para limitar el acceso solo desde la VPC requerida. Al hacer esto, impide que el tráfico atraviese la red de Internet de acceso público y esté sujeto a ese entorno.

El uso de un punto de enlace de la VPC para DynamoDB le permite controlar y limitar el acceso mediante lo siguiente:

  • Políticas del punto de enlace de la VPC: estas políticas se aplican en el punto de enlace de la VPC de DynamoDB. Le permiten controlar y limitar el acceso de la API a la tabla de DynamoDB.

  • Políticas de IAM: mediante el uso de la condición aws:sourceVpce en las políticas asociadas a los usuarios, grupos o roles, puede exigir que todo el acceso a la tabla de DynamoDB se realice a través del punto de conexión de VPC especificado.

Para obtener más información, consulte Puntos de enlace para Amazon DynamoDB.

Tenga en cuenta el cifrado del lado del cliente

Le recomendamos que planifique la estrategia de cifrado antes de implementar la tabla en DynamoDB. Si almacena datos confidenciales en DynamoDB, considere incluir el cifrado del cliente en el plan. De esta forma, puede cifrar los datos lo más cerca posible del origen y garantizar la protección durante todo el ciclo de vida. El cifrado de su información confidencial en tránsito y en reposo ayuda a garantizar que los datos de texto no cifrado no estén disponibles para ningún tercero.

El SDK de cifrado de base de datos de AWS para DynamoDB es una biblioteca de software que le ayuda a proteger los datos de la tabla antes de enviarlos a DynamoDB. Cifra, firma, verifica y descifra los elementos de la tabla de DynamoDB. Usted controla qué atributos se cifran y se firman.

Consideraciones sobre la clave principal

No utilice nombres confidenciales ni datos confidenciales en texto sin formato en la clave principal para la tabla y los índices secundarios globales. Los nombres de la clave aparecerán en la definición de la tabla. Por ejemplo, cualquier persona que tenga permisos para llamar a DescribeTable puede acceder a los nombres de la clave principal. Los valores de la clave pueden aparecer en AWS CloudTrail y en otros registros. Además, DynamoDB utiliza los valores de la clave para distribuir los datos y enrutar las solicitudes, y los administradores de AWS pueden observar los valores para mantener el buen estado del servicio.

Si necesita utilizar datos confidenciales en los valores de la tabla o las claves de GSI, le recomendamos que utilice el cifrado de cliente de extremo a extremo. Esto le permite crear referencias de clave-valor a sus datos y, al mismo tiempo, garantizar que nunca aparezcan sin cifrar en los registros relacionados con DynamoDB. Una forma de hacer esto consiste en utilizar el SDK de cifrado de bases de datos de AWS para DynamoDB, pero no es obligatorio. Si utiliza su propia solución, siempre debe utilizar un algoritmo de cifrado que sea lo suficientemente seguro. No debe utilizar una opción no criptográfica como un hash, ya que no se considera lo suficientemente segura en la mayoría de las situaciones.

Si los nombres de clave principal son confidenciales, le recomendamos que utilice `pk` y `sk` en su lugar. Se trata de una práctica recomendada general que flexibiliza el diseño de la clave de partición.

Consulte siempre a sus expertos en seguridad o al equipo de cuentas de AWS si no sabe cuál sería la opción correcta.