Actualización de su modelo de datos - AWS SDK de cifrado de bases de datos

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.

Actualización de su modelo de datos

Se cambió el nombre de nuestra biblioteca de cifrado del lado del cliente por el de SDK de cifrado de bases de datos. AWS En esta guía para desarrolladores, se sigue proporcionando información sobre el cliente de cifrado de DynamoDB.

Al configurar el SDK de cifrado AWS de bases de datos para DynamoDB, proporciona acciones de atributos. Al cifrar, el SDK de cifrado de AWS bases de datos utiliza las acciones de atributos para identificar qué atributos cifrar y firmar, qué atributos firmar (pero no cifrar) y cuáles ignorar. También se definen los atributos no firmados permitidos para indicar explícitamente al cliente qué atributos están excluidos de las firmas. Al descifrar, el SDK de cifrado AWS de bases de datos utiliza los atributos no firmados permitidos que usted definió para identificar qué atributos no están incluidos en las firmas. Las acciones de los atributos no se guardan en el elemento cifrado y el SDK de cifrado AWS de bases de datos no actualiza las acciones de los atributos automáticamente.

Elija cuidadosamente sus acciones de atributo. En caso de duda, use Encrypt and sign. Una vez que haya utilizado el SDK de cifrado de AWS bases de datos para proteger sus elementos, no podrá cambiar un SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT atributo existente ENCRYPT_AND_SIGN o uno aDO_NOTHING. SIGN_ONLY Puede hacer los siguientes cambios.

Consideraciones sobre el cifrado con capacidad de búsqueda

Antes de actualizar el modelo de datos, considere detenidamente cómo podrían afectar las actualizaciones a las balizas que haya creado a partir de los atributos. Una vez que haya escrito nuevos registros con una baliza, no puede actualizar la configuración de la baliza. No puede actualizar las acciones de los atributos asociadas a los atributos que utilizó para construir balizas. Si elimina un atributo existente y su baliza asociada, no podrá consultar los registros existentes con esa baliza. Puede crear balizas nuevas para los campos nuevos que añada a su registro, pero no puede actualizar las balizas existentes para incluir el nuevo campo.

Consideraciones sobre los SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT atributos

De forma predeterminada, la partición y las claves de clasificación son el único atributo incluido en el contexto de cifrado. Podría considerar la posibilidad de definir campos adicionales para SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT que el proveedor del identificador de clave de rama de su conjunto de claves AWS KMS jerárquicas pueda identificar qué clave de rama es necesaria para el descifrado a partir del contexto de cifrado. Para obtener más información, consulte el proveedor de ID de clave de sucursal. Si especifica algún SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT atributo, los atributos de partición y ordenación también deben serloSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT.

nota

Para utilizar la acción SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT criptográfica, debe utilizar la versión 3.3 o posterior del SDK de cifrado de AWS bases de datos. Implemente la nueva versión en todos los lectores antes de actualizar su modelo de datos para SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT incluirla.

Agregue SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT atributos nuevos ENCRYPT_AND_SIGN y SIGN_ONLY

Para añadir un SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT atributo o un nuevo ENCRYPT_AND_SIGN atributo, defina el nuevo atributo en las acciones de sus atributos. SIGN_ONLY

No puede eliminar un DO_NOTHING atributo existente y volver a añadirlo como SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT atributo ENCRYPT_AND_SIGNSIGN_ONLY, o.

Uso de una clase de datos anotada

Si ha definido las acciones de los atributos con unaTableSchema, añada el nuevo atributo a la clase de datos anotada. Si no especificas una anotación de acción de atributo para el nuevo atributo, el cliente cifrará y firmará el nuevo atributo de forma predeterminada (a menos que el atributo forme parte de la clave principal). Si solo quiere firmar el nuevo atributo, debe añadirlo con la @DynamoDBEncryptionSignAndIncludeInEncryptionContext anotación @DynamoDBEncryptionSignOnly o.

Uso de un objeto de modelo

Si ha definido manualmente las acciones de los atributos, añada el nuevo atributo a las acciones de los atributos del modelo de objetos y especifique ENCRYPT_AND_SIGNSIGN_ONLY, o SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT como acción de atributo.

Elimine los atributos existentes

Si decide que ya no necesita un atributo, puede dejar de escribir datos en ese atributo o puede eliminarlo formalmente de las acciones de sus atributos. Cuando dejas de escribir nuevos datos en un atributo, el atributo sigue apareciendo en las acciones de tus atributos. Esto puede resultar útil si necesita volver a utilizar el atributo en el futuro. Si eliminas formalmente el atributo de tus acciones de atributos, no lo eliminas de tu conjunto de datos. Su conjunto de datos seguirá conteniendo elementos que incluyan ese atributo.

Para eliminar formalmente un atributo ENCRYPT_AND_SIGNSIGN_ONLY, o un DO_NOTHING atributo existenteSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT, actualice las acciones de sus atributos.

Si elimina un atributo DO_NOTHING, no debe eliminarlo de los atributos no firmados permitidos. Aunque ya no escriba valores nuevos en ese atributo, el cliente necesitará saber que el atributo no está firmado para poder leer los elementos existentes que lo contienen.

Uso de una clase de datos anotada

Si ha definido las acciones de los atributos con una TableSchema, elimine el atributo de la clase de datos anotada.

Uso de un objeto de modelo

Si definió manualmente las acciones de los atributos, elimine el atributo de las acciones de los atributos del modelo de objetos.

Cambie un ENCRYPT_AND_SIGN atributo existente a SIGN_ONLY o SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT

Para cambiar un ENCRYPT_AND_SIGN atributo existente a SIGN_ONLY oSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT, debe actualizar las acciones de su atributo. Tras implementar la actualización, el cliente podrá verificar y descifrar los valores existentes escritos en el atributo, pero solo firmará los nuevos valores escritos en el atributo.

nota

Tenga en cuenta detenidamente sus requisitos de seguridad antes de cambiar un ENCRYPT_AND_SIGN atributo existente a SIGN_ONLY oSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT. Cualquier atributo que pueda almacenar datos confidenciales debe estar cifrado.

Uso de una clase de datos anotada

Si ha definido las acciones de los atributos con unaTableSchema, actualice el atributo existente para incluir la @DynamoDBEncryptionSignAndIncludeInEncryptionContext anotación @DynamoDBEncryptionSignOnly o en la clase de datos anotada.

Uso de un objeto de modelo

Si ha definido manualmente las acciones de atributo, actualice la acción de atributo asociada al atributo existente desde ENCRYPT_AND_SIGN SIGN_ONLY o SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT en su modelo de objetos.

Cambie un SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT atributo SIGN_ONLY o existente a ENCRYPT_AND_SIGN

Para cambiar un SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT atributo SIGN_ONLY o un atributo existente aENCRYPT_AND_SIGN, debe actualizar las acciones de sus atributos. Tras implementar la actualización, el cliente podrá comprobar los valores existentes escritos en el atributo y cifrará y firmará los nuevos valores escritos en el atributo.

Uso de una clase de datos anotada

Si ha definido las acciones de sus atributos con unaTableSchema, elimine la @DynamoDBEncryptionSignAndIncludeInEncryptionContext anotación @DynamoDBEncryptionSignOnly o del atributo existente.

Uso de un objeto de modelo

Si ha definido manualmente las acciones de atributo, actualice la acción de atributo asociada al atributo desde SIGN_ONLY o SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT hacia ENCRYPT_AND_SIGN en su modelo de objetos.

Añada un atributo DO_NOTHING nuevo

Para reducir el riesgo de errores al añadir un atributo DO_NOTHING nuevo, le recomendamos que especifique un prefijo distinto al asignar un nombre a los atributos DO_NOTHING y, a continuación, utilizar ese prefijo para definir los atributos no firmados permitidos.

No puede eliminar un SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT atributo o atributo existente ENCRYPT_AND_SIGN de la clase de datos anotada ySIGN_ONLY, a continuación, volver a añadir el atributo como DO_NOTHING atributo. Solo puede agregar atributos DO_NOTHING completamente nuevos.

Los pasos que siga para añadir un atributo DO_NOTHING nuevo dependerán de si ha definido los atributos no firmados permitidos de forma explícita en una lista o con un prefijo.

Utilizar un prefijo de atributos no firmados permitido

Si ha definido las acciones de los atributos con un TableSchema, añada el atributo DO_NOTHING nuevo a la clase de datos anotada con la anotación @DynamoDBEncryptionDoNothing. Si ha definido manualmente las acciones de los atributos, actualice las acciones de los atributos para incluir el nuevo atributo. Asegúrese de configurar explícitamente el nuevo atributo con la acción de atributo DO_NOTHING. Debe incluir el mismo prefijo distinto en el nombre del nuevo atributo.

Utilizar una lista de atributos no firmados permitidos
  1. Añada el atributo DO_NOTHING nuevo a la lista de atributos no firmados permitidos e implemente la lista actualizada.

  2. Implemente el cambio desde el paso 1.

    No puede continuar con el paso 3 hasta que el cambio se haya propagado a todos los hosts que necesiten leer estos datos.

  3. Añada el atributo DO_NOTHING nuevo a las acciones de sus atributos.

    1. Si ha definido las acciones de los atributos con un TableSchema, añada el atributo DO_NOTHING nuevo a la clase de datos anotada con la anotación @DynamoDBEncryptionDoNothing.

    2. Si ha definido manualmente las acciones de los atributos, actualice las acciones de los atributos para incluir el nuevo atributo. Asegúrese de configurar explícitamente el nuevo atributo con la acción de atributo DO_NOTHING.

  4. Implemente el cambio desde el paso 3.

Cambio de un atributo SIGN_ONLY existente a SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT

Para cambiar un atributo existente SIGN_ONLY a SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT, debe actualizar las acciones del atributo. Tras implementar la actualización, el cliente podrá comprobar los valores existentes escritos en el atributo y seguirá firmando los nuevos valores escritos en el atributo. Los nuevos valores escritos en el atributo se incluirán en el contexto de cifrado.

Si especifica algún SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT atributo, los atributos de partición y ordenación también deben serloSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT.

Uso de una clase de datos anotada

Si ha definido sus acciones de atributo con unaTableSchema, actualice la acción de atributo asociada al atributo de @DynamoDBEncryptionSignOnly a@DynamoDBEncryptionSignAndIncludeInEncryptionContext.

Uso de un objeto de modelo

Si ha definido manualmente las acciones de atributo, actualice la acción de atributo asociada al atributo de SIGN_ONLY a SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT en su modelo de objetos.

Cambio de un atributo SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT existente a SIGN_ONLY

Para cambiar un atributo existente SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT a SIGN_ONLY, debe actualizar las acciones del atributo. Tras implementar la actualización, el cliente podrá comprobar los valores existentes escritos en el atributo y seguirá firmando los nuevos valores escritos en el atributo. Los nuevos valores escritos en el atributo no se incluirán en el contexto de cifrado.

Antes de cambiar un SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT atributo existente aSIGN_ONLY, considere detenidamente cómo sus actualizaciones podrían afectar a la funcionalidad de su proveedor de ID de clave de sucursal.

Uso de una clase de datos anotada

Si ha definido sus acciones de atributo con unaTableSchema, actualice la acción de atributo asociada al atributo de @DynamoDBEncryptionSignAndIncludeInEncryptionContext a@DynamoDBEncryptionSignOnly.

Uso de un objeto de modelo

Si ha definido manualmente las acciones de atributo, actualice la acción de atributo asociada al atributo de SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT a SIGN_ONLY en su modelo de objetos.