Installation du JCE fournisseur pour le AWS CloudHSM client SDK 3 - AWS CloudHSM

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Installation du JCE fournisseur pour le AWS CloudHSM client SDK 3

Avant de pouvoir utiliser le JCE fournisseur, vous avez besoin du AWS CloudHSM client.

Le client est un démon qui établit une communication end-to-end cryptée avec le HSMs dans votre cluster. Le JCE fournisseur communique localement avec le client. Si vous n'avez pas installé ni configuré le package AWS CloudHSM client, faites-le maintenant en suivant les étapes décrites dansInstaller le client (Linux). Une fois que vous avez installé et configuré le client, utilisez la commande suivante pour le démarrer.

Notez que le JCE fournisseur n'est pris en charge que sur Linux et les systèmes d'exploitation compatibles.

Amazon Linux
$ sudo start cloudhsm-client
Amazon Linux 2
$ sudo systemctl cloudhsm-client start
CentOS 7
$ sudo systemctl cloudhsm-client start
CentOS 8
$ sudo systemctl cloudhsm-client start
RHEL 7
$ sudo systemctl cloudhsm-client start
RHEL 8
$ sudo systemctl cloudhsm-client start
Ubuntu 16.04 LTS
$ sudo systemctl cloudhsm-client start
Ubuntu 18.04 LTS
$ sudo systemctl cloudhsm-client start
Ubuntu 20.04 LTS
$ sudo systemctl cloudhsm-client start

Utilisez les sections suivantes pour installer, valider et fournir des informations d'identification au fournisseur.

Étape 1 : installer le JCE fournisseur

Utilisez les commandes suivantes pour télécharger et installer le JCE fournisseur. Cette bibliothèque est prise en charge uniquement sur les systèmes d'exploitation Linux et compatibles.

Note

Pour la mise à niveau, consultez Mettre à niveau le client SDK 3.

Amazon Linux
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-jce-latest.el6.x86_64.rpm
$ sudo yum install ./cloudhsm-client-jce-latest.el6.x86_64.rpm
Amazon Linux 2
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-jce-latest.el7.x86_64.rpm
$ sudo yum install ./cloudhsm-client-jce-latest.el7.x86_64.rpm
CentOS 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-jce-latest.el7.x86_64.rpm
$ sudo yum install ./cloudhsm-client-jce-latest.el7.x86_64.rpm
CentOS 8
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-client-jce-latest.el8.x86_64.rpm
$ sudo yum install ./cloudhsm-client-jce-latest.el8.x86_64.rpm
RHEL 7
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-jce-latest.el7.x86_64.rpm
$ sudo yum install ./cloudhsm-client-jce-latest.el7.x86_64.rpm
RHEL 8
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-client-jce-latest.el8.x86_64.rpm
$ sudo yum install ./cloudhsm-client-jce-latest.el8.x86_64.rpm
Ubuntu 16.04 LTS
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-client-jce_latest_amd64.deb
$ sudo apt install ./cloudhsm-client-jce_latest_amd64.deb
Ubuntu 18.04 LTS
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Bionic/cloudhsm-client-jce_latest_u18.04_amd64.deb
$ sudo apt install ./cloudhsm-client-jce_latest_u18.04_amd64.deb

Après avoir exécuté les commandes précédentes, vous pouvez trouver les fichiers du JCE fournisseur suivants :

  • /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

Étape 2 : valider l'installation

Effectuez des opérations de base sur le HSM pour valider l'installation.

Pour valider l'installation JCE du fournisseur
  1. (Facultatif) Si besoin, utilisez la commande suivante pour installer Java dans votre environnement.

    Linux (and compatible libraries)
    $ sudo yum install java-1.8.0-openjdk
    Ubuntu
    $ sudo apt-get install openjdk-8-jre
  2. Utilisez les commandes suivantes pour définir les variables d'environnement nécessaires. Remplacez <HSM user name> and <password> avec les informations d'identification d'un utilisateur cryptographique (CU).

    $ export LD_LIBRARY_PATH=/opt/cloudhsm/lib
    $ export HSM_PARTITION=PARTITION_1
    $ export HSM_USER=<HSM user name>
    $ export HSM_PASSWORD=<password>
  3. Utilisez la commande suivante pour lancer le test des fonctionnalités de base. Si elle aboutit, la sortie de commande devrait ressembler à la sortie ci-dessous.

    $ 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)

Étape 3 : Fournissez les informations d'identification au JCE fournisseur

HSMsdevez authentifier votre application Java avant que l'application puisse les utiliser. Chaque application peut utiliser une session. HSMsauthentifier une session en utilisant soit une méthode de connexion explicite, soit une méthode de connexion implicite.

Connexion explicite : cette méthode vous permet de fournir des HSM informations d'identification Cloud directement dans l'application. Il utilise la LoginManager.login() méthode dans laquelle vous transmettez le nom d'utilisateur, le mot de passe et l'ID de HSM partition du CU. Pour plus d'informations sur l'utilisation de la méthode de connexion explicite, consultez l'exemple de connexion à un HSM code.

Connexion implicite : cette méthode vous permet de définir les HSM informations d'identification Cloud dans un nouveau fichier de propriétés, dans les propriétés du système ou sous forme de variables d'environnement.

  • Nouveau fichier de propriétés : Créez un nouveau fichier intitulé HsmCredentials.properties et ajoutez-le dans le CLASSPATH de votre application. Le fichier doit contenir ce qui suit :

    HSM_PARTITION = PARTITION_1 HSM_USER = <HSM user name> HSM_PASSWORD = <password>
  • Propriétés système : Définissez les informations d’identification par le biais des propriétés système lors de l’exécution de votre application. Les exemples suivants montrent deux manières de le faire :

    $ 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>");
  • Variables d’environnement : Définissez les informations d’identification en tant que variables d’environnement.

    $ export HSM_PARTITION=PARTITION_1 $ export HSM_USER=<HSM user name> $ export HSM_PASSWORD=<password>

Les informations d'identification peuvent ne pas être disponibles si l'application ne les fournit pas ou si vous tentez une opération avant la session d'HSMauthentification. Dans ces cas, la bibliothèque HSM logicielle Cloud pour Java recherche les informations d'identification dans l'ordre suivant :

  1. HsmCredentials.properties

  2. Propriétés système

  3. Variables d’environnement

Gestion des erreurs

La gestion des erreurs est plus facile avec la méthode de connexion explicite qu’avec la méthode de connexion implicite. Lorsque vous utilisez la classe LoginManager, vous maîtrisez mieux la manière dont votre application gère les pannes. La méthode de connexion implicite rend la gestion des erreurs difficile à comprendre lorsque les informations d'identification ne sont pas valides ou que l'HSMsauthentification de session pose problème.