

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.

# Balizas
<a name="beacons"></a>


****  

|  | 
| --- |
| Se cambió el nombre de nuestra biblioteca de cifrado del lado del cliente por el de SDK de cifrado de AWS bases de datos. En esta guía para desarrolladores, se sigue proporcionando información sobre el [cliente de cifrado de DynamoDB](legacy-dynamodb-encryption-client.md). | 

Una baliza es una etiqueta de código de autenticación de mensajes basado en hash (HMAC) truncada que crea un mapa entre el valor de texto no cifrado escrito en un campo y el valor cifrado que está realmente almacenado en la base de datos. La baliza no altera el estado cifrado del campo. La baliza calcula un HMAC sobre el valor de texto no cifrado del campo y lo almacena junto con el valor cifrado. Esta salida del HMAC coincide uno a uno (1:1) con el valor de texto no cifrado de ese campo. La salida del HMAC se trunca para que varios valores de texto no cifrado distintos se asignen a la misma etiqueta HMAC truncada. Estos falsos positivos limitan la capacidad de un usuario no autorizado para identificar información distintiva sobre el valor del texto no cifrado.

[Las balizas solo se pueden crear a partir de campos marcados `ENCRYPT_AND_SIGN` o `SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT` en tus `SIGN_ONLY` acciones criptográficas.](concepts.md#crypt-actions) La baliza en sí no está firmada ni cifrada. No se puede construir una baliza con campos marcados `DO_NOTHING`.

El tipo de baliza que configure determinará el tipo de consultas que podrá realizar. Existen dos tipos de balizas que admiten el cifrado para búsquedas. Las *balizas estándar* realizan búsquedas de igualdad. Las *balizas compuestas* combinan cadenas literales de texto no cifrado y balizas estándar para realizar operaciones complejas de bases de datos. Después de [configurar las balizas](configure-beacons.md), debe configurar un índice secundario para cada baliza antes de poder buscar en los campos cifrados. Para obtener más información, consulte [Configurar índices secundarios con balizas](ddb-searchable-encryption.md#ddb-beacon-indexes).

**Topics**
+ [Balizas estándar](#standard-beacon-overview)
+ [Balizas compuestas](#compound-beacon-overview)

## Balizas estándar
<a name="standard-beacon-overview"></a>

Las balizas estándar son la forma más sencilla de implementar el cifrado para búsquedas en su base de datos. Solo pueden realizar búsquedas de igualdad para un único campo virtual o cifrado. Para obtener información sobre cómo configurar balizas estándar, consulte [Configuración de balizas estándar](configure-beacons.md#config-standard-beacons).



El campo a partir del cual se construye una baliza estándar se denomina la *fuente de baliza*. Identifica la ubicación de los datos que la baliza necesita mapear. La fuente de la baliza puede ser un campo cifrado o un *campo virtual*. La fuente de baliza de cada baliza estándar debe ser única. No puede configurar dos balizas con la misma fuente de baliza.

Las balizas estándar se pueden utilizar para realizar búsquedas de igualdad en un campo cifrado o virtual. O bien, se pueden usar para construir balizas compuestas para realizar operaciones de bases de datos más complejas. Para ayudarlo a organizar y administrar las balizas estándar, el SDK de cifrado de AWS bases de datos proporciona los siguientes *estilos de balizas* opcionales que definen el uso previsto de una baliza estándar. Para obtener más información, consulte [Definición de estilos de baliza.](configure-beacons.md#define-beacon-styles)

Puede crear una baliza estándar que realice búsquedas de igualdad para un único campo cifrado, o puede crear una baliza estándar que realice búsquedas de igualdad en la concatenación de varios `SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT` campos y `ENCRYPT_AND_SIGN``SIGN_ONLY`, creando un campo virtual.



**Campos virtuales**  
Un campo virtual es un campo conceptual creado a partir de uno o más campos de origen. Al crear un campo virtual no se graba un campo nuevo en el registro. El campo virtual no se almacena de forma explícita en la base de datos. Se utiliza en la configuración de baliza estándar para dar instrucciones a la baliza sobre cómo identificar un segmento específico de un campo o concatenar varios campos de un registro para realizar una consulta específica. Un campo virtual requiere al menos un campo cifrado.   
El siguiente ejemplo muestra los tipos de transformaciones y consultas que se pueden realizar con un campo virtual. En la aplicación, es posible que los campos de ejemplo utilizados en este ejemplo no cumplan con las recomendaciones de unicidad de [distribución](searchable-encryption.md#searchable-encryption-distribution) y [correlación](searchable-encryption.md#searchable-encryption-correlated-values) para las balizas.
Por ejemplo, si desea realizar búsquedas de igualdad en la concatenación de los campos `FirstName` y `LastName`, puede crear uno de los siguientes campos virtuales.  
+ Un campo virtual `NameTag`, construido a partir de la primera letra del campo `FirstName`, seguida del campo `LastName`, todo en minúsculas. Este campo virtual le permite realizar consultas `NameTag=mjones`.
+ Un campo virtual `LastFirst`, que se construye a partir del campo `LastName`, seguido del campo `FirstName`. Este campo virtual le permite realizar consultas `LastFirst=JonesMary`.
O bien, si desea realizar búsquedas de igualdad en un segmento específico de un campo cifrado, cree un campo virtual que identifique el segmento que desea consultar.  
Por ejemplo, si desea consultar un campo `IPAddress` cifrado con los tres primeros segmentos de la dirección IP, cree el siguiente campo virtual.  
+ Un campo virtual `IPSegment`, construido a partir de `Segments(‘.’, 0, 3)`. Este campo virtual le permite realizar consultas `IPSegment=192.0.2`. La consulta devuelve todos los registros con un valor `IPAddress` que comienza por “192.0.2”.
Los campos virtuales deben ser únicos. No se pueden construir dos campos virtuales a partir exactamente de los mismos campos de origen.  
Para obtener ayuda para configurar los campos virtuales y las balizas que los utilizan, consulte [Creación de un campo virtual](configure-beacons.md#create-virtual-field).

## Balizas compuestas
<a name="compound-beacon-overview"></a>

Las balizas compuestas crean índices que mejoran el rendimiento de las consultas y permiten realizar operaciones de base de datos más complejas. Puede utilizar balizas compuestas para combinar cadenas literales de texto no cifrado y balizas estándar para realizar consultas complejas en registros cifrados, como consultar dos tipos de registros diferentes desde un único índice o consultar una combinación de campos con una clave de clasificación. Para ver más ejemplos de soluciones de baliza compuesta, consulte [Elegir un tipo de baliza](choosing-beacon-type.md).

Las balizas compuestas se pueden construir a partir de balizas estándar o de una combinación de balizas estándar y campos señalizados. Se construyen a partir de una lista de piezas. Todas las balizas compuestas deben incluir una lista de [partes cifradas](configure-beacons.md#encrypted-parts) que identifique los `ENCRYPT_AND_SIGN` campos incluidos en la baliza. Cada `ENCRYPT_AND_SIGN` campo debe identificarse mediante una baliza estándar. Las balizas compuestas más complejas también pueden incluir una lista de [partes firmadas](configure-beacons.md#signed-parts) que identifique el texto sin formato `SIGN_ONLY` o `SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT` los campos incluidos en la baliza, y una lista de [partes constructivas](configure-beacons.md#constructor-parts) que identifique todas las formas posibles en que la baliza compuesta puede ensamblar los campos.

**nota**  
El SDK AWS de cifrado de bases de datos también admite *balizas firmadas* que se pueden configurar completamente a partir de texto sin formato `SIGN_ONLY` y campos. `SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT` Las balizas firmadas son un tipo de baliza compuesta que indexan y realizan consultas complejas en campos firmados, pero no cifrados. Para obtener más información, consulte [Crear balizas firmadas](configure.md#signed-beacons).

Para obtener ayuda para configurar balizas compuestas, consulte [Configuración de balizas compuestas](configure-beacons.md#config-compound-beacons).

La forma en que configure su baliza compuesta determina los tipos de consultas que puede realizar. Por ejemplo, puede hacer que algunas partes cifradas y firmadas sean opcionales para permitir una mayor flexibilidad en sus consultas. Para obtener más información sobre los tipos de consultas que pueden realizar las balizas compuestas, consulte [Balizas de consulta](using-beacons.md#querying-beacons).