Estoy creando un servicio AWS Lambda para una PoC pequeña. El flujo en PoC es:
Parece un simple ejemplo de tutorial de lambda, pero la parte complicada para mí fue la autorización. La URL a la que tengo que POST solo permite solicitudes que se autentican mutuamente a través de un certificado SSL. ¿Cómo puedo lograr esto en Lambda?
No pude encontrar suficientes respuestas para hacer que esto funcione. Consideré el uso de la opción de certificado SSL bidireccional de puerta de enlace API de AWS. Sin embargo, para que eso funcione, necesito instalar el certificado de la parte receptora en el almacén de certificados. ¿Es posible el par? ¿O la única forma es usar una caja micro-EC2?
En Lambda, puedo usar Node.JS, Java o Python.
¿Cómo implementar TLS mutuo en AWS Lambda?
Primer gran aplauso para Hakky54 por este buen tutorial sobre TLS mutuo. https://github.com/Hakky54/mutual-tls-ssl
Seguí su tutorial para comprender e implementar MTLS para AWS Lambdas. También puede probar su implementación localmente antes de implementarla en AWS simplemente ejecutando la aplicación Spring-Boot, que ahorra mucho tiempo.
Pasos (todos los comandos están documentados en el enlace anterior)
SSLContext sslContext = SSLContexts.custom() .loadKeyMaterial(keyStore, stores.getKeyStorePassword().toCharArray()) .loadTrustMaterialtrustStore, (X509Certificate[] chain, String authType) -> true) .build(); Client client = ClientBuilder.newBuilder() .withConfig(new ClientConfig()) .sslContext(sslContext.get()) .trustStore(trustStore) .keyStore(keyStore, keyStorePassword) .build(); client.target(endpoint).get();Estoy almacenando mis credenciales de almacén de claves en el almacén de parámetros.