Configurações de sincronização e durabilidade de teclas em AWS CloudHSM - AWS CloudHSM

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á.

Configurações de sincronização e durabilidade de teclas em AWS CloudHSM

Este tópico descreve as principais configurações de sincronização AWS CloudHSM, os problemas comuns que os clientes enfrentam ao trabalhar com chaves em um cluster e as estratégias para tornar as chaves mais duráveis.

Conceitos

Chaves de token

Chaves persistentes que você cria durante as operações de geração, importação ou desempacotamento de chaves. AWS CloudHSM sincroniza chaves de token em um cluster.

Chaves de sessão

Chaves efêmeras que existem somente em um módulo de segurança de hardware (HSM) no cluster. AWS CloudHSM não sincroniza as chaves de sessão em um cluster.

Sincronização de chaves do lado do cliente

Um processo do lado do cliente que clona as chaves de token que você cria durante as operações de geração, importação ou desencapsulamento de chaves. Você pode tornar as chaves de token mais duráveis executando um cluster com no mínimo dois HSMs.

Sincronização de chaves do lado do servidor

Clona periodicamente as chaves de cada HSM no cluster. Não requer gerenciamento.

Configurações de durabilidade de chave do cliente

Configurações que você define no cliente que afetam a durabilidade de chave. Essas configurações funcionam de forma diferente no Client SDK 5 e no Client SDK 3.

  • No Client SDK 5, use essa configuração para executar um único cluster HSM.

  • No Client SDK 3, use essa configuração para especificar o número de HSMs necessários para que as operações de criação de chaves sejam bem-sucedidas.

Noções básicas sobre sincronização de teclas

AWS CloudHSM usa a sincronização de chaves para clonar chaves de token em todos os HSMs em um cluster. Você cria chaves de token como chaves persistentes durante as operações de geração, importação ou desencapsulamento de chaves. Para distribuir essas chaves em todo o cluster, o CloudHSM oferece a sincronização de chaves do lado do cliente e do lado do servidor.

Key synchronization diagram showing client-side and server-side sync across CloudHSM cluster.

O objetivo da sincronização de chaves, tanto do lado do servidor quanto do lado do cliente, é distribuir as novas chaves pelo cluster o mais rápido possível depois de criá-las. Isso é importante porque as chamadas subsequentes que você fizer para usar novas chaves podem ser roteadas para qualquer HSM disponível no cluster. Se a chamada que você fizer for encaminhada para um HSM sem a chave, a chamada falhará. Você pode mitigar esses tipos de falhas especificando que seus aplicativos tentem novamente as chamadas subsequentes feitas após as operações de criação da chave. O tempo necessário para a sincronização pode variar, dependendo da workload do seu cluster e de outros intangíveis. Use CloudWatch métricas para determinar o tempo que seu aplicativo deve empregar nesse tipo de situação. Para obter mais informações, consulte CloudWatch Métricas.

O desafio da sincronização de chaves em um ambiente de nuvem é a durabilidade delas. Você cria chaves em um único HSM e geralmente começa a usá-las imediatamente. Se o HSM no qual você criou as chaves falhar antes delas serem clonadas em outro HSM no cluster, você perderá as chaves e o acesso a qualquer coisa criptografada por elas. Para mitigar esse risco, oferecemos a sincronização do lado do cliente. Esta sincronização é um processo do lado do cliente que clona as chaves que você cria durante as operações de geração, importação ou desencapsulamento de chaves. A clonagem das chaves à medida que você as cria torna as chaves mais duráveis. Obviamente, você não pode clonar chaves em um cluster com um único HSM. Para tornar as chaves mais duráveis, também recomendamos que você configure seu cluster para usar no mínimo dois HSMs. Com a sincronização do lado do cliente e um cluster com dois HSMs, você pode atender ao desafio da durabilidade de chave em um ambiente de nuvem.

Trabalhar com configurações de durabilidade de chave do cliente

A sincronização de chaves é basicamente um processo automático, mas você pode gerenciar as configurações de durabilidade de chaves do lado do cliente. As configurações de durabilidade de chave do lado do cliente funcionam de forma diferente no Client SDK 5 e no Client SDK 3.

  • No Client SDK 5, apresentamos o conceito de quóruns de disponibilidade de chaves, que exige que você execute clusters com no mínimo dois HSMs. Você pode usar as configurações de durabilidade de chave do lado do cliente para optar por não atender aos dois requisitos de HSM. Para obter mais informações sobre quoruns, consulte Conceitos do Client SDK 5.

  • No Client SDK 3, você usa as configurações de durabilidade de chave do lado do cliente para especificar o número de HSMs nos quais a criação da chave deve ser bem-sucedida para que a operação geral seja considerada bem-sucedida.

No Client SDK 5, a sincronização de chaves é um processo totalmente automático. Com o quórum de disponibilidade de chaves, as chaves recém-criadas devem existir em dois HSMs no cluster antes que seu aplicativo possa usar a chave. Para usar o quórum de disponibilidade de chaves, seu cluster deve ter no mínimo dois HSMs.

Se a configuração do cluster não atender aos principais requisitos de durabilidade, qualquer tentativa de criar ou usar uma chave de token falhará com a seguinte mensagem de erro nos registros:

Key <key handle> does not meet the availability requirements - The key must be available on at least 2 HSMs before being used.

Você pode usar as configurações do cliente para cancelar o quórum de disponibilidade de chaves. Talvez você queira optar por não executar um cluster com um único HSM, por exemplo.

Conceitos do Client SDK 5

Quórum de disponibilidade chave

AWS CloudHSM especifica o número de HSMs em um cluster no qual as chaves devem existir antes que seu aplicativo possa usá-las. Requer clusters com no mínimo dois HSMs.

Gerenciando as configurações de durabilidade de chave do cliente

Para gerenciar as configurações de durabilidade de chave do cliente, você deve usar a ferramenta de configuração do Client SDK 5.

PKCS #11 library
Para desativar a durabilidade de chave do cliente para o Client SDK 5 no Linux
  • Use a ferramenta de configuração para desativar as configurações de durabilidade de chave do cliente.

    $ sudo /opt/cloudhsm/bin/configure-pkcs11 --disable-key-availability-check
Para desativar a durabilidade de chave do cliente para o Client SDK 5 no Windows
  • Use a ferramenta de configuração para desativar as configurações de durabilidade de chave do cliente.

    "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" --disable-key-availability-check
OpenSSL Dynamic Engine
Para desativar a durabilidade de chave do cliente para o Client SDK 5 no Linux
  • Use a ferramenta de configuração para desativar as configurações de durabilidade de chave do cliente.

    $ sudo /opt/cloudhsm/bin/configure-dyn --disable-key-availability-check
JCE provider
Para desativar a durabilidade de chave do cliente para o Client SDK 5 no Linux
  • Use a ferramenta de configuração para desativar as configurações de durabilidade de chave do cliente.

    $ sudo /opt/cloudhsm/bin/configure-jce --disable-key-availability-check
Para desativar a durabilidade de chave do cliente para o Client SDK 5 no Windows
  • Use a ferramenta de configuração para desativar as configurações de durabilidade de chave do cliente.

    "C:\Program Files\Amazon\CloudHSM\bin\configure-jce.exe" --disable-key-availability-check
CloudHSM CLI
Para desativar a durabilidade de chave do cliente para o Client SDK 5 no Linux
  • Use a ferramenta de configuração para desativar as configurações de durabilidade de chave do cliente.

    $ sudo /opt/cloudhsm/bin/configure-cli --disable-key-availability-check
Para desativar a durabilidade de chave do cliente para o Client SDK 5 no Windows
  • Use a ferramenta de configuração para desativar as configurações de durabilidade de chave do cliente.

    "C:\Program Files\Amazon\CloudHSM\bin\configure-cli.exe" --disable-key-availability-check

No Client SDK 3, a sincronização de chaves é basicamente um processo automático, mas você pode usar as configurações de durabilidade de chave do cliente para tornar as chaves mais duráveis. Você especifica o número de HSMs nos quais a criação da chave deve ser bem-sucedida para que a operação geral seja considerada bem-sucedida. A sincronização do lado do cliente sempre faz o possível para clonar as chaves de cada HSM no cluster, independentemente da configuração escolhida. Sua configuração impõe a criação de chaves no número de HSMs que você especificar. Se você especificar um valor e o sistema não conseguir replicar a chave para esse número de HSMs, o sistema limpará automaticamente qualquer material de chave indesejado e você poderá tentar novamente.

Importante

Se você não definir as configurações de durabilidade da chave do cliente (ou se usar o valor padrão de 1), suas chaves estarão vulneráveis à perda. Se seu HSM atual falhar antes que o serviço do lado do servidor tenha clonado essa chave em outro HSM, você perderá o material da chave.

Para maximizar a durabilidade da chave, considere especificar pelo menos dois HSMs para sincronização do lado do cliente. Lembre-se de que não importa quantos HSMs você especificar, a workload em seu cluster permanece a mesma. A sincronização do lado do cliente sempre faz o possível para clonar as chaves de cada HSM no cluster.

Recomendações

  • Mínimo: dois HSMs por cluster

  • Máximo: um a menos do que o número total de HSMs em seu cluster

Se a sincronização do lado do cliente falhar, o serviço do cliente limpará todas as chaves indesejadas que possam ter sido criadas e que agora sejam indesejadas. Essa limpeza é a melhor resposta que nem sempre pode funcionar. Se a limpeza falhar, talvez seja necessário excluir o material de chave indesejado. Para obter mais informações, consulte Falhas de sincronização de chaves.

Configurando o arquivo de configuração para durabilidade de chave do cliente

Para especificar as configurações de durabilidade de chave do cliente, você deve editar cloudhsm_client.cfg.

Para editar a configuração do cliente
  1. Abra o cloudhsm_client.cfg.

    Linux

    /opt/cloudhsm/etc/cloudhsm_client.cfg

    Windows:

    C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_client.cfg
  2. No client nó do arquivo, adicione create_object_minimum_nodes e especifique um valor para o número mínimo de HSMs nos quais as chaves AWS CloudHSM devem ser criadas com êxito para que as operações de criação de chaves sejam bem-sucedidas.

    "create_object_minimum_nodes" : 2
    nota

    A ferramenta de linha de comando key_mgmt_util (KMU) tem uma configuração adicional para durabilidade da chave do cliente. Para mais informações, consulte KMU e sincronização do lado do cliente.

Referência da configuração

Essas são as propriedades de sincronização do lado do cliente, mostradas em um trecho do cloudhsm_client.cfg:

{ "client": { "create_object_minimum_nodes" : 2, ... }, ... }
create_object_minimum_nodes

Especifica o número mínimo de HSMs necessários para considerar as operações de geração, importação ou desencapsulamento de chaves bem-sucedidas. O padrão é definido como "1". Isso significa que, para cada operação de criação de chave, o serviço do lado do cliente tenta criar chaves em cada HSM no cluster, mas, para retornar um sucesso, só é preciso criar uma única chave em um HSM no cluster.

KMU e sincronização do lado do cliente

Se você criar chaves com a ferramenta de linha de comando key_mgmt_util (KMU), você usa um parâmetro de linha de comando opcional (-min_srv) para limitar o número de HSMs nos quais clonar chaves. Se você especificar o parâmetro da linha de comando e um valor no arquivo de configuração, AWS CloudHSM honra o MAIOR dos dois valores.

Para obter mais informações, consulte os tópicos a seguir.

Sincronização de chaves em clusters clonados

A sincronização do lado do cliente e do lado do servidor serve apenas para sincronizar chaves dentro do mesmo cluster. Se você copiar um backup de um cluster para outra região, poderá usar o comando SyncKey do cloudhsm_mgmt_util (CMU) para sincronizar chaves entre clusters. Você pode usar clusters clonados para redundância entre regiões ou para simplificar seu processo de recuperação de desastres. Para obter mais informações, consulte, syncKey.