Solución de problemas en la aplicación DynamoDB Encryption Client - AWS Cifrado de bases SDK

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas en la aplicación DynamoDB Encryption Client

nota

Nuestra biblioteca de cifrado del lado del cliente pasó a llamarse AWS Database Encryption. SDK En el siguiente tema, se presenta información sobre las versiones 1.x—2.x del cliente de cifrado de DynamoDB para Java y versiones 1.x—3.x del cliente de cifrado de DynamoDB para Python. Para obtener más información, consulte Compatibilidad con las versiones AWS de Database Encryption SDK para DynamoDB.

En esta sección se describen los problemas que podría encontrar al utilizar el y se ofrecen sugerencias para resolverlos.

Para enviar comentarios sobre el cliente de cifrado de DynamoDB, registre un problema en aws-dynamodb-encryption-javael repositorio o. aws-dynamodb-encryption-python GitHub

Para enviar comentarios sobre esta documentación, utilice el enlace de comentarios de cualquier página.

Acceso denegado

Problema: su aplicación ha denegado el acceso a un recurso que la necesita.

Sugerencia: obtenga información acerca de los permisos requeridos y agréguelos al contexto de seguridad en el que se ejecuta su aplicación.

Detalles

Para ejecutar una aplicación que usa una biblioteca de , el intermediario debe tener permiso para utilizar sus componentes. De lo contrario, se les denegará el acceso a los elementos requeridos.

  • El cliente de cifrado de DynamoDB no requiere una cuenta de Amazon Web Services (AWS) ni depende de ningún servicio. AWS Sin embargo, si su aplicación lo usa AWS, necesitará una cuenta Cuenta de AWS y usuarios que tengan permiso para usar la cuenta.

  • El cliente de cifrado de DynamoDB no requiere Amazon DynamoDB. Sin embargo, si la aplicación que utiliza el cliente crea tablas de DynamoDB, coloca elementos en una tabla u obtiene elementos de una tabla, el intermediario debe tener permiso para utilizar las operaciones de DynamoDB requeridas en su Cuenta de AWS. Para obtener más información, consulte los temas de control de acceso en la Guía para desarrolladores de Amazon DynamoDB.

  • Si la aplicación utiliza una clase auxiliar de cliente en el cliente de cifrado de DynamoDB para Python, la persona que llama debe tener permiso para llamar a la operación de DynamoDB. DescribeTable

  • El cliente de cifrado de DynamoDB no AWS Key Management Service requiere ().AWS KMSSin embargo, si la aplicación utiliza un proveedor de KMS materiales directos o utiliza un proveedor más reciente con una tienda de proveedores que lo utilice AWS KMS, la persona que llama debe tener permiso para utilizar las operaciones AWS KMSGenerateDataKeyy descifrar.

Errores de verificación de firma

Problema: un elemento no se puede descifrar porque la verificación de firma devuelve un error. El elemento podría no estar cifrado y firmado del modo previsto.

Sugerencia: asegúrese de que las acciones de atributos que proporcione cuenten para todos los atributos del elemento. Al descifrar un elemento, asegúrese de proporcionar acciones de atributo que coincidan con las acciones utilizadas para cifrar el elemento.

Detalles

Las acciones de atributo que proporciona indican qué atributos cifrar y firmar, qué atributos firmar (pero no cifrar) y cuáles ignorar.

Si las acciones de atributo que especifique no cuentan para todos los atributos del elemento, el elemento podría no cifrarse y firmarse del modo previsto. Si las acciones de atributo que proporciona al descifrar un elemento difieren de las acciones de atributo que proporcione al cifrar el elemento, la verificación de la firma podría fallar. Se trata de un problema particular para aplicaciones distribuidas en las que las nuevas acciones de atributos podrían no haberse propagado a todos los hosts.

Los errores de validación de firmas son difíciles de resolver. Para ayudar a prevenirlos, tome precauciones adicionales al cambiar el modelo de datos. Para obtener más detalles, consulte Cambiar el modelo de datos.

Problemas con las tablas globales de versiones anteriores

Problema: los elementos de una tabla global de Amazon DynamoDB de una versión anterior no se pueden descifrar porque no se puede comprobar la firma.

Sugerencia: defina las acciones de los atributos de forma que los campos de replicación reservados no estén cifrados ni firmados.

Detalles

Puede utilizar el cliente de cifrado de DynamoDB con las tablas globales de DynamoDB. Se recomienda utilizar tablas globales con una clave multirregional y replicar la KMS KMS clave en todos los Regiones de AWS lugares donde esté replicada la tabla global.

A partir de la versión 2019.11.21 de tablas globales, puede utilizarlas con el cliente de cifrado de DynamoDB sin ninguna configuración especial. Sin embargo, si utiliza tablas globales de la versión 2017.11.29, debe asegurarse de que los campos de replicación reservados no estén cifrados ni firmados.

Si utiliza las tablas globales de la versión 2017.11.29, debe configurar las acciones de atributo para los siguientes atributos DO_NOTHING en @DoNotTouchJava o Python.

  • aws:rep:deleting

  • aws:rep:updatetime

  • aws:rep:updateregion

Si utiliza cualquier otra versión de las tablas globales, no es necesario realizar ninguna acción.

Rendimiento deficiente del proveedor más reciente

Problema: la aplicación responde menos, especialmente después de actualizarse a una versión más reciente del cliente de cifrado de DynamoDB.

Sugerencia: ajuste el time-to-live valor y el tamaño de la caché.

Detalles

El proveedor más reciente está diseñado para mejorar el rendimiento de las aplicaciones que utilizan el cliente de cifrado de DynamoDB al permitir una reutilización limitada del material criptográfico. Al configurar el proveedor más reciente para su aplicación, debe equilibrar la mejora del rendimiento con los problemas de seguridad que se derivan del almacenamiento en caché y la reutilización.

En las versiones más recientes del cliente de cifrado de DynamoDB, time-to-live el valor TTL () determina durante cuánto tiempo se pueden usar los proveedores CMPs de material criptográfico en caché (). TTLTambién determina la frecuencia con la que el proveedor más reciente comprueba si hay una nueva versión de. CMP

Si la suya TTL es demasiado larga, su aplicación podría infringir sus normas empresariales o normas de seguridad. Si TTL es demasiado breve, las llamadas frecuentes a la tienda del proveedor pueden provocar que la tienda del proveedor limite las solicitudes de su aplicación y de otras aplicaciones que comparten su cuenta de servicio. Para resolver este problema, ajusta el tamaño de la caché TTL y el tamaño de la memoria caché a un valor que cumpla tus objetivos de latencia y disponibilidad y que se ajuste a tus estándares de seguridad. Para obtener más información, consulte Establecer un valor de tiempo de vida.