我正在为小型 PoC 构建 AWS Lambda 服务。 PoC 中的流程是:
看起来像是一个简单的 lambda 教程示例,但对我来说棘手的部分是授权。我必须发布到的 URL 只允许通过 SSL 证书相互验证的请求。我怎样才能在 Lambda 中实现这一点?
我找不到足够的答案来完成这项工作。我查看了使用 AWS API 网关 2-way ssl 证书选项。但是,为此,我需要将接收部分证书安装到证书存储中。甚至可能吗?还是唯一的方法是使用微型 EC2 盒子?
在 Lambda,我可以使用 Node.JS、Java 或 Python。
最佳答案
如何在 AWS Lambda 中实现双向 TLS?
Hakky54 为这个关于双向 TLS 的优秀教程首先鼓掌。
https://github.com/Hakky54/mutual-tls-ssl
我按照他的教程了解和实现 AWS Lambdas 的 MTLS。您还可以在部署到 AWS 之前在本地测试您的实现,只需运行 spring-boot 应用程序即可节省大量时间。
步骤(所有命令都记录在上面的链接中)
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();
我将我的 keystore 凭据存储在参数存储中。
关于java - AWS Lambda 中的相互身份验证(2 路 SSL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42618931/