As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Escolha de um tipo de beacon
Nossa biblioteca de criptografia do lado do cliente foi renomeada para SDK de criptografia de AWS banco de dados. Este guia do desenvolvedor ainda fornece informações sobre o DynamoDB Encryption Client. |
Com a criptografia pesquisável, você pode pesquisar registros criptografados mapeando os valores de texto simples em um campo criptografado com um beacon. O tipo de beacon que você configura determina o tipo de consultas que você pode realizar.
É altamente recomendável identificar e planejar os tipos de consultas que você precisa realizar antes de configurar os beacons. Depois de configurar os beacons, você deve configurar um índice secundário para cada beacon antes de poder pesquisar nos campos criptografados. Para ter mais informações, consulte Configuração de índices secundários com beacons.
Os beacons criam um mapa entre o valor de texto simples gravado em um campo e o valor criptografado que está realmente armazenado em seu banco de dados. Não é possível comparar os valores de dois beacons padrão, mesmo que eles contenham o mesmo texto simples subjacente. Os dois beacons padrão produzirão duas etiquetas de HMAC diferentes para os mesmos valores de texto simples. Como resultado, os beacons padrão não podem realizar as consultas a seguir.
-
beacon1
=beacon2
-
beacon1
IN (beacon2
) -
value
IN (beacon1
,beacon2
, ...) -
CONTAINS(
beacon1
,beacon2
)
Você só pode realizar as consultas acima se comparar as partes assinadas dos beacons compostos, com exceção do CONTAINS
operador, que pode ser usado com beacons compostos para identificar o valor total de um campo criptografado ou assinado que o beacon montado contém. Ao comparar partes assinadas, você pode, opcionalmente, incluir o prefixo de uma parte criptografada, mas não pode incluir o valor criptografado de um campo. Para obter mais informações sobre os tipos de consultas que os beacons padrão e compostos podem realizar, consulte Consultar beacons.
Considere as seguintes soluções de criptografia pesquisáveis ao analisar seus padrões de acesso ao banco de dados. Os exemplos a seguir definem qual beacon configurar para atender aos diferentes requisitos de criptografia e consulta.
Beacons padrão
Os beacons padrão só podem realizar pesquisas de igualdade. É possível usar beacons padrão para realizar as consultas a seguir.
Consultar um único campo criptografado
Se você quiser identificar registros que contenham um valor específico para um campo criptografado, crie um beacon padrão.
Para o exemplo a seguir, considere um banco de dados chamado UnitInspection
que monitora os dados de inspeção de uma instalação de produção. Cada registro no banco de dados contém campos chamados work_id
, inspection_date
, inspector_id_last4
e unit
. O ID completo do inspetor é um número entre 0 e 99.999.999. No entanto, para garantir que o conjunto de dados seja distribuído uniformemente, ele armazena apenas os últimos quatro dígitos inspector_id_last4
da ID do inspetor. Cada campo no banco de dados é identificado pela chave primária work_id
. Os campos inspector_id_last4
e unit
são marcados ENCRYPT_AND_SIGN
nas ações criptográficas.
Veja a seguir um exemplo de uma entrada de texto sem formatação no banco de dados UnitInspection
.
{ "work_id": "1c7fcff3-6e74-41a8-b7f7-925dc039830b", "inspection_date": 2023-06-07, "inspector_id_last4": 8744, "unit": 229304973450 }
- Consultar um único campo criptografado em um registro
-
Se o campo
inspector_id_last4
precisar ser criptografado, mas você ainda precisar consultá-lo para obter correspondências exatas, construa um beacon padrão a partir do campoinspector_id_last4
. Em seguida, use o beacon padrão para criar um índice secundário. É possível usar esse índice secundário para consultar o campoinspector_id_last4
criptografado.
Para obter ajuda sobre a configuração de beacons padrão, consulte Configuração de beacons padrão.
Consultar um campo virtual
Um campo virtual é um campo conceitual construído a partir de um ou mais campos de origem. Se você quiser realizar pesquisas de igualdade para um segmento específico de um campo criptografado ou realizar pesquisas de igualdade na concatenação de vários campos, construa um beacon padrão a partir de um campo virtual. Todos os campos virtuais devem incluir pelo menos um campo de origem criptografado.
Os exemplos a seguir criam campos virtuais para o banco de dados Employees
. Veja a seguir um exemplo de um registro de texto sem formatação no banco de dados Employees
.
{ "EmployeeID": 101, "SSN": 000-00-0000, "LastName": "Jones", "FirstName": "Mary", "Address": { "Street": "123 Main", "City": "Anytown", "State": "OH", "ZIPCode": 12345 } }
- Consultar um segmento de um campo criptografado
-
Neste exemplo, o campo
SSN
é criptografado.Se você quiser consultar o campo
SSN
usando os últimos quatro dígitos de um número de previdência social, crie um campo virtual que identifique o segmento que você planeja consultar.Um campo
Last4SSN
virtual, construído a partir deSuffix(4)
permite que você faça consultasLast4SSN=0000
. Use esse campo virtual para construir um beacon padrão. Em seguida, use o beacon padrão para criar um índice secundário. É possível usar esse índice secundário para fazer consultas no campo virtual. Essa consulta retorna todos os registros com um valorSSN
que termina com os últimos quatro dígitos que você especificou. - Consultar a concatenação de vários campos
-
nota
O exemplo a seguir demonstra os tipos de transformações e consultas que você pode realizar com um campo virtual. No aplicativo, os campos de exemplo usados neste exemplo podem não atender às recomendações de exclusividade de distribuição e correlação para beacons.
Se você quiser realizar pesquisas de igualdade em uma concatenação dos campos
FirstName
eLastName
, é possível criar um campo virtualNameTag
, construído a partir da primeira letra do campoFirstName
, seguida pelo campoLastName
, tudo em minúsculas. Use esse campo virtual para construir um beacon padrão. Em seguida, use o beacon padrão para criar um índice secundário. É possível usar esse índice secundário para fazer consultasNameTag=mjones
no campo virtual.Pelo menos um dos campos de origem deve ser criptografado.
FirstName
ouLastName
podem ser criptografados, ou ambos podem ser criptografados. Todos os campos de origem de texto simples devem ser marcados comoSIGN_ONLY
ouSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
em suas ações criptográficas.
Para obter ajuda na configuração de campos virtuais e os beacons que os usam, consulte Criar um campo virtual.
Beacons compostos
Os beacons compostos criam um índice a partir de cadeias de texto simples literais e beacons padrão para realizar operações complexas de banco de dados. É possível usar beacons compostos para realizar as consultas a seguir.
Consulte uma combinação de campos criptografados em um único índice
Se você precisar consultar uma combinação de campos criptografados em um único índice, crie um beacon composto que combine os beacons padrão individuais construídos para cada campo criptografado para formar um único índice.
Depois de configurar o beacon composto, é possível criar um índice secundário que especifica o beacon composto como a chave de partição para realizar consultas de correspondência exata ou usar uma chave de classificação para realizar consultas mais complexas. Os índices secundários que especificam o beacon composto como chave de classificação podem realizar consultas de correspondência exata e consultas complexas mais personalizadas.
Para os exemplos a seguir, considere um banco de dados chamado UnitInspection
que monitora os dados de inspeção de uma instalação de produção. Cada registro no banco de dados contém campos chamados work_id
, inspection_date
, inspector_id_last4
e unit
. O ID completo do inspetor é um número entre 0 e 99.999.999. No entanto, para garantir que o conjunto de dados seja distribuído uniformemente, ele armazena apenas os últimos quatro dígitos inspector_id_last4
da ID do inspetor. Cada campo no banco de dados é identificado pela chave primária work_id
. Os campos inspector_id_last4
e unit
são marcados ENCRYPT_AND_SIGN
nas ações criptográficas.
Veja a seguir um exemplo de uma entrada de texto sem formatação no banco de dados UnitInspection
.
{ "work_id": "1c7fcff3-6e74-41a8-b7f7-925dc039830b", "inspection_date": 2023-06-07, "inspector_id_last4": 8744, "unit": 229304973450 }
- Realizar pesquisas de igualdade em uma combinação de campos criptografados
-
Se você quiser consultar o banco de dados
UnitInspection
para obter correspondências exatas eminspector_id_last4.unit
, primeiro crie beacons padrão distintos para os camposinspector_id_last4
eunit
. Em seguida, crie um beacon composto a partir dos dois beacons padrão.Depois de configurar o beacon composto, crie um índice secundário que especifica o beacon composto como a chave de partição. Use esse índice secundário para consultar as correspondências exatas em
inspector_id_last4.unit
. Por exemplo, você pode consultar esse beacon para encontrar uma lista das inspeções que um inspetor realizou para uma determinada unidade. - Execute consultas complexas em uma combinação de campos criptografados
-
Se você quiser consultar o banco de dados
UnitInspection
eminspector_id_last4
einspector_id_last4.unit
, primeiro crie beacons padrão distintos para os camposinspector_id_last4
eunit
. Em seguida, crie um beacon composto a partir dos dois beacons padrão.Depois de configurar o beacon composto, crie um índice secundário que especifica o beacon composto como a chave de classificação. Use esse índice secundário para consultar o banco de dados
UnitInspection
em busca de entradas que começam com um determinado inspetor ou consultar o banco de dados para obter uma lista de todas as unidades dentro de um intervalo de ID de unidade específico que foram inspecionadas por um determinado inspetor. Também é possível realizar pesquisas de correspondência exata eminspector_id_last4.unit
.
Para obter ajuda com a configuração de beacons compostos, consulte Configurar beacons compostos.
Consulte uma combinação de campos de texto simples criptografados em um único índice
Se você precisar consultar uma combinação de campos criptografados de texto simples em um único índice, crie um beacon composto que combine os beacons padrão individuais e campos de texto simples para formar um único índice. Os campos de texto simples usados para construir o farol composto devem estar marcados SIGN_ONLY ou SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT em suas ações criptográficas.
Depois de configurar o beacon composto, é possível criar um índice secundário que especifica o beacon composto como a chave de partição para realizar consultas de correspondência exata ou usar uma chave de classificação para realizar consultas mais complexas. Os índices secundários que especificam o beacon composto como chave de classificação podem realizar consultas de correspondência exata e consultas complexas mais personalizadas.
Para os exemplos a seguir, considere um banco de dados chamado UnitInspection
que monitora os dados de inspeção de uma instalação de produção. Cada registro no banco de dados contém campos chamados work_id
, inspection_date
, inspector_id_last4
e unit
. O ID completo do inspetor é um número entre 0 e 99.999.999. No entanto, para garantir que o conjunto de dados seja distribuído uniformemente, ele armazena apenas os últimos quatro dígitos inspector_id_last4
da ID do inspetor. Cada campo no banco de dados é identificado pela chave primária work_id
. Os campos inspector_id_last4
e unit
são marcados ENCRYPT_AND_SIGN
nas ações criptográficas.
Veja a seguir um exemplo de uma entrada de texto sem formatação no banco de dados UnitInspection
.
{ "work_id": "1c7fcff3-6e74-41a8-b7f7-925dc039830b", "inspection_date": 2023-06-07, "inspector_id_last4": 8744, "unit": 229304973450 }
- Realizar pesquisas de igualdade em uma combinação de campos
-
Se você quiser consultar o banco de dados
UnitInspection
para inspeções conduzidas por um inspetor específico em uma data específica, primeiro crie um beacon padrão para o campoinspector_id_last4
. O campoinspector_id_last4
é marcado comoENCRYPT_AND_SIGN
nas ações criptográficas. Todas as partes criptografadas exigem seu próprio beacon padrão. O campoinspection_date
está marcadoSIGN_ONLY
e não requer um beacon padrão. Em seguida, crie um beacon composto a partir do campoinspection_date
e do beaconinspector_id_last4
padrão.Depois de configurar o beacon composto, crie um índice secundário que especifica o beacon composto como a chave de partição. Use esse índice secundário para consultar os bancos de dados em busca de registros com correspondências exatas com um determinado inspetor e data de inspeção. Por exemplo, você pode consultar o banco de dados para obter uma lista de todas as inspeções realizadas pelo inspetor cujo ID termina em
8744
em uma data específica. - Execute consultas complexas em uma combinação de campos
-
Se você quiser consultar o banco de dados para inspeções conduzidas dentro de um intervalo
inspection_date
, ou consultar o banco de dados para inspeções conduzidas em uma determinadainspection_date
restringida porinspector_id_last4
ouinspector_id_last4.unit
, primeiro crie beacons padrão distintos para os camposinspector_id_last4
eunit
. Em seguida, crie um beacon composto a partir do campoinspection_date
de texto simples e dos dois beacons padrão.Depois de configurar o beacon composto, crie um índice secundário que especifica o beacon composto como a chave de classificação. Use esse índice secundário para realizar consultas para inspeções realizadas em datas específicas por um inspetor específico. Por exemplo, você pode consultar o banco de dados para obter uma lista de todas as unidades inspecionadas na mesma data. Ou você pode consultar o banco de dados para obter uma lista de todas as inspeções realizadas em uma unidade específica entre um determinado intervalo de datas de inspeção.
Para obter ajuda com a configuração de beacons compostos, consulte Configurar beacons compostos.