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á.
Configurar beacons
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. |
Há dois tipos de beacons que oferecem suporte à criptografia pesquisável. Os beacons padrão realizam pesquisas de igualdade. Eles são a maneira mais simples de implementar criptografia pesquisável em seu banco de dados. Os beacons compostos combinam cadeias de texto simples literais e beacons padrão para realizar consultas mais complexas.
Os beacons são projetados para serem implementados em bancos de dados novos e vazios. Qualquer beacon configurado em um banco de dados existente mapeará somente novos registros gravados no banco de dados. Os beacons são calculados a partir do valor de texto simples de um campo, uma vez que o campo é criptografado, não há como o beacon mapear os dados existentes. Depois de gravar novos registros com o beacon, não será possível atualizar a configuração do beacon. No entanto, é possível adicionar novos beacons aos novos campos que você adiciona ao seu registro.
Depois de determinar seus padrões de acesso, a configuração dos beacons deve ser a segunda etapa na implementação do banco de dados. Depois de configurar todos os seus beacons, você precisa criar um chaveiro AWS KMS hierárquico, definir a versão do beacon, configurar um índice secundário para cada beacon, definir suas ações criptográficas e configurar seu banco de dados e o cliente Database Encryption SDK. AWS Para ter mais informações, consulte Usar beacons.
Para facilitar a definição da versão do beacon, recomendamos criar listas para beacons padrão e compostos. Adicione cada beacon que você criar à respectiva lista de beacons padrão ou compostos à medida que você os configura.
Configurando beacons padrão
Os beacons padrão são a maneira mais simples de implementar criptografia pesquisável em seu banco de dados. Eles só podem realizar pesquisas de igualdade para um único campo criptografado ou virtual.
Sintaxe de exemplo de configuração
Para configurar um beacon padrão, forneça os valores a seguir.
- Nome do beacon
-
O nome que você usa ao consultar um campo criptografado.
O nome de um beacon pode ter o mesmo nome de um campo criptografado ou campo virtual, mas não pode ser igual ao nome de um campo não criptografado. É altamente recomendável usar o nome do campo criptografado ou do campo virtual a partir do qual seu beacon padrão é construído sempre que possível. Dois beacons diferentes não podem ter o mesmo nome de beacon. Para obter ajuda para determinar o melhor nome de beacon para sua implementação, consulte Escolher um nome de beacon.
- Comprimento do beacon
-
O número de bits do valor de hash do beacon que são mantidos após o truncamento.
O comprimento do beacon determina o número médio de falsos positivos produzidos por um determinado beacon. Para obter mais informações e ajudar a determinar o comprimento adequado do beacon para sua implementação, consulte Determinar o comprimento do beacon.
- Fonte do beacon (opcional)
-
O campo a partir do qual um beacon padrão é construído.
A fonte do beacon deve ser um nome de campo ou um índice referente ao valor de um campo aninhado. Quando o nome do beacon é o mesmo da fonte do beacon, você pode omitir a fonte do beacon da sua configuração e o SDK do AWS Database Encryption usará automaticamente o nome do beacon como fonte do beacon.
Criação de um campo virtual
Para criar um campo virtual, você deve fornecer um nome para o campo virtual e uma lista dos campos de origem. A ordem em que você adiciona campos de origem à lista de partes virtuais determina a ordem em que eles são concatenados para criar o campo virtual. O exemplo a seguir concatena dois campos de origem em sua totalidade para criar um campo virtual.
nota
Recomendamos verificar se seus campos virtuais produzem o resultado esperado antes de preencher seu banco de dados. Para obter mais informações, consulte Teste de saídas de beacon.
Para criar um campo virtual com um segmento específico de um campo de origem, você deve definir essa transformação antes de adicionar o campo de origem à sua lista de partes virtuais.
Considerações de segurança para campos virtuais
Os beacons não alteram o estado criptografado do campo. No entanto, quando você usa beacons, há uma compensação inerente entre a eficiência de suas consultas e a quantidade de informações reveladas sobre a distribuição dos dados. A forma como você configura seu beacon determina o nível de segurança que é preservado por esse beacon.
Evite criar um campo virtual com campos de origem que se sobreponham aos beacons padrão existentes. A criação de campos virtuais que incluam um campo de origem que já tenha sido usado para criar um beacon padrão pode reduzir o nível de segurança de ambos os beacons. A extensão da redução da segurança depende do nível de entropia adicionado pelos campos de origem adicionais. O nível de entropia é determinado pela distribuição de valores exclusivos no campo de origem adicional e pelo número de bits que o campo de origem adicional contribui para o tamanho geral do campo virtual.
É possível usar a população e o comprimento do beacon para determinar se os campos de origem de um campo virtual preservam a segurança do seu conjunto de dados. A população é o número esperado de valores exclusivos em um campo. A sua população não precisa ser precisa. Para obter ajuda para estimar a população de um campo, consulte Estimar a população.
Considere o exemplo a seguir ao analisar a segurança de seus campos virtuais.
-
Beacon1 é construído a partir de
FieldA
.FieldA
tem uma população maior que 2 (comprimento do Beacon1). -
Beacon2 é construído a partir de
VirtualField
, que é construído a partir deFieldA
,FieldB
,FieldC
eFieldD
. Juntos,FieldB
,FieldC
eFieldD
têm uma população maior que 2N
O Beacon2 preserva a segurança do Beacon1 e do Beacon2 se as seguintes afirmações forem verdadeiras:
N ≥ (Beacon1 length)/2
e
N ≥ (Beacon2 length)/2
Definindo estilos de farol
Os beacons padrão podem ser usados para realizar pesquisas de igualdade para um campo criptografado ou virtual. Ou, eles podem ser usados para construir beacons compostos para realizar operações de banco de dados mais complexas. Para ajudá-lo a organizar e gerenciar beacons padrão, o SDK de criptografia de AWS banco de dados fornece os seguintes estilos de beacon opcionais que definem o uso pretendido de um beacon padrão.
nota
Para definir estilos de beacon, você deve usar a versão 3.2 ou posterior do SDK de criptografia de AWS banco de dados. Implante a nova versão em todos os leitores antes de adicionar estilos de beacon às suas configurações de beacon.
Configuração de beacons compostos
Os beacons compostos para combinar cadeias de texto simples literais e beacons padrão para realizar operações de banco de dados complexas, como consultar dois tipos de registro diferentes de um único índice ou consultar uma combinação de campos com uma chave de classificação. Faróis compostos podem ser construídos a partir deENCRYPT_AND_SIGN
,SIGN_ONLY
, e SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
campos. Você deve criar um beacon padrão para cada campo criptografado incluído no beacon composto.
nota
Recomendamos verificar se seus beacons compostos produzem o resultado esperado antes de preencher seu banco de dados. Para obter mais informações, consulte Teste de saídas de beacon.
Sintaxe de exemplo de configuração
Você pode definir suas partes criptografadas e assinadas em listas definidas local ou globalmente. Recomendamos definir suas partes criptografadas e assinadas em uma lista global na versão do beacon sempre que possível. Ao definir peças criptografadas e assinadas globalmente, você pode definir cada peça uma vez e depois reutilizá-las em várias configurações de faróis compostos. Se você pretende usar uma peça criptografada ou assinada apenas uma vez, você pode defini-la em uma lista local na configuração do beacon composto. Você pode referenciar partes locais e globais na sua lista de construtores.
Se você definir suas listas de peças criptografadas e assinadas globalmente, deverá fornecer uma lista de peças do construtor que identifique todas as formas possíveis pelas quais o farol composto pode montar os campos em sua configuração de farol composto.
nota
Para definir listas de peças criptografadas e assinadas globalmente, você deve usar a versão 3.2 ou posterior do SDK de criptografia de AWS banco de dados. Implante a nova versão para todos os leitores antes de definir qualquer nova parte globalmente.
Você não pode atualizar as configurações de beacon existentes para definir listas de peças criptografadas e assinadas globalmente.
Para configurar um beacon composto, forneça os valores a seguir.
- Nome do beacon
-
O nome que você usa ao consultar um campo criptografado.
O nome de um beacon pode ter o mesmo nome de um campo criptografado ou campo virtual, mas não pode ser igual ao nome de um campo não criptografado. Beacons diferentes não podem ter o mesmo nome. Para obter ajuda para determinar o melhor nome de beacon para sua implementação, consulte Escolher um nome de beacon.
- Dividir caractere
-
O personagem usado para separar as partes que compõem seu beacon composto.
O caractere dividido não pode aparecer nos valores de texto simples de nenhum dos campos a partir dos quais o beacon composto foi construído.
- Lista de peças criptografadas
-
Identifica os campos
ENCRYPT_AND_SIGN
incluídos no beacon composto.Cada parte deve incluir um nome e um prefixo. O nome da parte deve ser o nome do beacon padrão construído a partir do campo criptografado. O prefixo pode ser qualquer string, mas deve ser exclusivo. Uma parte criptografada não pode ter o mesmo prefixo de uma parte assinada. Recomendamos usar um valor curto que diferencie a parte de outras partes atendidas pelo beacon composto.
Recomendamos definir suas partes criptografadas globalmente sempre que possível. Você pode considerar definir uma parte criptografada localmente se pretende usá-la apenas em um farol composto. Uma peça criptografada definida localmente não pode ter o mesmo prefixo ou nome de uma peça criptografada definida globalmente.
- Lista de peças assinadas
-
Identifica os campos assinados incluídos no farol composto.
nota
As peças assinadas são opcionais. Você pode configurar um farol composto que não faça referência a nenhuma peça assinada.
Cada parte deve incluir um nome, uma fonte e um prefixo. A fonte é o
SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
campoSIGN_ONLY
ou que a peça identifica. A fonte deve ser um nome de campo ou um índice referente ao valor de um campo aninhado. Se o nome da peça identificar a fonte, você poderá omitir a fonte e o SDK do AWS Database Encryption usará automaticamente o nome como fonte. Recomendamos especificar a fonte como nome da parte sempre que possível. O prefixo pode ser qualquer string, mas deve ser exclusivo. Uma parte criptografada assinada não pode ter o mesmo prefixo de uma parte criptografada. Recomendamos usar um valor curto que diferencie a parte de outras partes atendidas pelo beacon composto.Recomendamos definir suas peças assinadas globalmente sempre que possível. Você pode considerar definir uma peça assinada localmente se pretende usá-la apenas em um farol composto. Uma peça assinada definida localmente não pode ter o mesmo prefixo ou nome de uma peça assinada definida globalmente.
- Lista de construtores
-
Identifica os construtores que definem as diferentes maneiras pelas quais as partes criptografadas e assinadas podem ser montadas pelo beacon composto. Você pode referenciar partes locais e globais na sua lista de construtores.
Se você construir seu farol composto a partir de partes criptografadas e assinadas globalmente definidas, deverá fornecer uma lista de construtores.
Se você não usar nenhuma peça assinada ou criptografada definida globalmente para construir seu farol composto, a lista de construtores é opcional. Se você não especificar uma lista de construtores, o SDK do AWS Database Encryption monta o beacon composto com o construtor padrão a seguir.
-
Todas as partes assinadas na ordem em que foram adicionadas à lista de partes assinadas
-
Todas as partes criptografadas na ordem em que foram adicionadas à lista de partes criptografadas
-
Todas as partes são obrigatórias
- Construtores
-
Cada construtor é uma lista ordenada de partes do construtor que define uma maneira pela qual o beacon composto pode ser montado. As partes do construtor são unidas na ordem em que são adicionadas à lista, com cada parte separada pelo caractere de divisão especificado.
Cada parte do construtor nomeia uma parte criptografada ou assinada e define se essa parte é obrigatória ou opcional dentro do construtor. Por exemplo, se você quiser consultar um beacon composto em
Field1
,Field1.Field2
eField1.Field2.Field3
, marqueField2
eField3
como opcional e crie um construtor.Cada construtor deve ter pelo menos uma parte obrigatória. Recomendamos tornar obrigatória a primeira parte de cada construtor para que você possa usar o operador
BEGINS_WITH
nas consultas.Um construtor será bem-sucedido se todas as partes obrigatórias estiverem presentes no registro. Quando você grava um novo registro, o beacon composto usa a lista de construtores para determinar se o beacon pode ser montado a partir dos valores fornecidos. Ele tenta montar o beacon na ordem em que os construtores foram adicionados à lista de construtores e usa o primeiro construtor bem-sucedido. Se nenhum construtor for bem-sucedido, o beacon não será gravado no registro.
Todos os leitores e gravadores devem especificar a mesma ordem de construtores para garantir que os resultados da consulta estejam corretos.
Use o procedimento a seguir para especificar sua própria lista de construtores.
-
Crie uma parte construtora para cada parte criptografada e assinada para definir se essa parte é necessária ou não.
O nome da parte do construtor deve ser o nome do beacon padrão ou do campo assinado que ele representa.
-
Crie um construtor para cada forma possível de montar o beacon composto usando as partes do construtor que você criou na Etapa 1.
Por exemplo, se quiser consultar
Field1.Field2.Field3
eField4.Field2.Field3
, você deverá criar dois construtores.Field1
eField4
podem ser obrigatórios porque foram definidos em dois construtores separados. -
Crie uma lista de construtores que inclua todos os construtores que você criou na Etapa 2.
-
Especifique
constructorList
quando você cria seu farol composto.
-