Conectarse a varios clústeres de AWS CloudHSM - AWS CloudHSM

Conectarse a varios clústeres de AWS CloudHSM

Cada CloudHsmProvider representa una conexión al clúster de su AWS CloudHSM. Si desea comunicarse con otro clúster desde la misma aplicación, puede crear otro objeto de CloudHsmProvider con las configuraciones del otro clúster e interactuar con este otro clúster mediante el objeto del proveedor o el nombre del proveedor, como se muestra en el siguiente ejemplo.

CloudHsmProviderConfig config = CloudHsmProviderConfig.builder() .withCluster( CloudHsmCluster.builder() .withHsmCAFilePath(hsmCAFilePath) .withClusterUniqueIdentifier("CloudHsmCluster1") .withServer(CloudHsmServer.builder().withHostIP(hostName).build()) .build()) .build(); CloudHsmProvider provider1 = new CloudHsmProvider(config); if (Security.getProvider(provider1.getName()) == null) { Security.addProvider(provider1); } CloudHsmProviderConfig config2 = CloudHsmProviderConfig.builder() .withCluster( CloudHsmCluster.builder() .withHsmCAFilePath(hsmCAFilePath2) .withClusterUniqueIdentifier("CloudHsmCluster2") .withServer(CloudHsmServer.builder().withHostIP(hostName2).build()) .build()) .build(); CloudHsmProvider provider2 = new CloudHsmProvider(config2); if (Security.getProvider(provider2.getName()) == null) { Security.addProvider(provider2); }

Una vez que haya configurado los dos proveedores (ambos clústeres) anteriores, podrá interactuar con ellos mediante el objeto del proveedor o mediante el nombre del proveedor.

Si se basa en este ejemplo que muestra cómo hablar con cluster1, puede usar el siguiente ejemplo para una operación de AES/GCM/NoPadding:

Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding", provider1);

Y en la misma aplicación para generar la clave «AES» en el segundo clúster con el nombre del proveedor, también puede usar el siguiente ejemplo:

Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding", provider2.getName());