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á.
Instale e use o provedor AWS CloudHSM JCE para o Client SDK 3
Antes de usar o provedor JCE, você precisa do AWS CloudHSM cliente.
O cliente é um daemon que estabelece comunicação end-to-end criptografada com os HSMs no seu cluster. O provedor JCE se comunica localmente com o cliente. Se você não instalou e configurou o pacote do AWS CloudHSM cliente, faça isso agora seguindo as etapas emInstalar o cliente (Linux). Após instalar e configurar o cliente, use o comando a seguir para iniciá-lo.
O provedor JCE é suportado somente em Linux e sistemas operacionais compatíveis.
Tópicos
Instalar o provedor JCE
Use so seguintes comandos para fazer download e instalar o provedor JCE. Este provedor só tem suporte no Linux e em sistemas operacionais compatíveis.
nota
Para atualizar, consulte Atualizar o Client SDK 3.
Depois de executar os comandos anteriores, você pode encontrar os seguintes arquivos do provedor JCE:
-
/opt/cloudhsm/java/cloudhsm-
version
.jar -
/opt/cloudhsm/java/cloudhsm-test-
version
.jar -
/opt/cloudhsm/java/hamcrest-all-1.3.jar
-
/opt/cloudhsm/java/junit.jar
-
/opt/cloudhsm/java/log4j-api-2.17.1.jar
-
/opt/cloudhsm/java/log4j-core-2.17.1.jar
-
/opt/cloudhsm/lib/libcaviumjca.so
Validação da Instalação
Execute operações básicas no HSM para validar a instalação.
Para validar a instalação do provedor JCE
-
(Opcional) Se você ainda não tiver o Java instalado em seu ambiente, use o comando a seguir para instalá-lo.
-
Use os comandos a seguir para definir as variáveis de ambiente necessárias. Substitua
<nome do usuário do HSM>
e<senha>
pelas credenciais de um usuário de criptografia (CU).$
export LD_LIBRARY_PATH=/opt/cloudhsm/lib
$
export HSM_PARTITION=PARTITION_1
$
export HSM_USER=
<HSM user name>
$
export HSM_PASSWORD=
<password>
-
Use o comando a seguir para executar o teste de funcionalidade básica. Se bem-sucedido, a saída do comando deverá ser semelhante à saída a seguir.
$
java8 -classpath "/opt/cloudhsm/java/*" org.junit.runner.JUnitCore TestBasicFunctionality
JUnit version 4.11 .2018-08-20 17:53:48,514 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:33) - Adding provider. 2018-08-20 17:53:48,612 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:42) - Logging in. 2018-08-20 17:53:48,612 INFO [main] cfm2.LoginManager (LoginManager.java:104) - Looking for credentials in HsmCredentials.properties 2018-08-20 17:53:48,612 INFO [main] cfm2.LoginManager (LoginManager.java:122) - Looking for credentials in System.properties 2018-08-20 17:53:48,613 INFO [main] cfm2.LoginManager (LoginManager.java:130) - Looking for credentials in System.env SDK Version: 2.03 2018-08-20 17:53:48,655 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:54) - Generating AES Key with key size 256. 2018-08-20 17:53:48,698 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:63) - Encrypting with AES Key. 2018-08-20 17:53:48,705 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:84) - Deleting AES Key. 2018-08-20 17:53:48,707 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:92) - Logging out. Time: 0.205 OK (1 test)
Fornecimento de credenciais ao provedor JCE
Os HSMs precisam autenticar seu aplicativo Java antes que o aplicativo possa usá-los. Cada aplicativo pode usar uma sessão. Os HSMs autenticam uma sessão usando o método de login explícito ou implícito.
Login explícito: esse método permite que você forneça credenciais do CloudHSM diretamente no aplicativo. Ele usa o método LoginManager.login()
, em que você passa no mome do usuário, a senha e o ID da partição do HSM do usuário CU. Para obter mais informações sobre como usar o método de login explícito, consulte o código de exemplo Fazer login em um HSM
Login implícito: esse método permite que você defina as credenciais do CloudHSM em um novo arquivo de propriedades, propriedades do sistema, ou como variáveis de ambiente.
-
Novo arquivo de propriedades: crie um novo arquivo chamado
HsmCredentials.properties
e adicione-o aoCLASSPATH
de seu aplicativo. O arquivo deve conter o seguinte:HSM_PARTITION = PARTITION_1 HSM_USER =
<HSM user name>
HSM_PASSWORD =<password>
-
Propriedades do sistema: defina as credenciais por meio das propriedades do sistema ao executar seu aplicativo. Os exemplos a seguir mostram duas formas diferentes de fazer isso:
$
java -DHSM_PARTITION=PARTITION_1 -DHSM_USER=
<HSM user name>
-DHSM_PASSWORD=<password>
System.setProperty("HSM_PARTITION","PARTITION_1"); System.setProperty("HSM_USER","
<HSM user name>
"); System.setProperty("HSM_PASSWORD","<password>
"); -
Variáveis de ambiente: defina as credenciais como variáveis de ambiente.
$
export HSM_PARTITION=PARTITION_1
$
export HSM_USER=
<HSM user name>
$
export HSM_PASSWORD=
<password>
As credenciais talvez não estejam disponíveis se o aplicativo não fornecê-las ou se você tentar uma operação antes que o HSM autentique a sessão. Nesses casos, a biblioteca de software do CloudHSM para Java procura as credenciais na seguinte ordem:
-
HsmCredentials.properties
-
Propriedades do sistema
-
Variáveis de ambiente
Tratamento de erros
O tratamento de erros é mais fácil com o login explícito do que com o método de login implícito. Ao usar a classe LoginManager
, você tem mais controle sobre como seu aplicativo trata as falhas. O método de login implícito torna o tratamento de erros difícil de compreender quando as credenciais são inválidas ou os HSMs estiverem com problemas na autenticação da sessão.
Fundamentos do gerenciamento de chaves no provedor JCE
Os conceitos básicos do gerenciamento de chaves no provedor JCE envolvem a importação e a exportação, o carregamento por identificador ou a exclusão de chaves. Para obter mais informações sobre como gerenciar chaves, consulte Gerenciar chaves
Você também pode encontrar mais amostras de código de provedor JCE em Exemplos de código.