我正在为小型PoC构建AWS Lambda服务。 PoC中的流程是:
看起来像一个简单的lambda教程示例,但对我来说棘手的部分是授权。我必须POST到的URL只允许通过SSL证书进行相互身份验证的请求。我怎样才能在Lambda中实现这一目标?
我找不到足够的答案来完成这项工作。我查看了使用AWS API网关2路ssl证书选项。但是,为了实现这一点,我需要将接收部件证书安装到证书库中。甚至可能吗?或者唯一的方法是使用micro-EC2盒子?
在Lambda,我可以使用Node.JS,Java或Python。
答案 0 :(得分:0)
如何在AWS Lambda中实施双向TLS?
Hakky54的第一个大掌声,是有关TLS的良好教程。 https://github.com/Hakky54/mutual-tls-ssl
我按照他的教程来理解和实现AWS Lambdas的MTLS。您还可以通过只运行springboot应用程序在部署到AWS之前在本地测试您的实现,从而节省大量时间。
步骤(以上链接中记录了所有命令)
导出服务器证书并将其导入到客户端信任存储区
加载您的客户端密钥存储和信任存储,我都保存在s3存储桶中
创建TLS上下文
SSLContext sslContext = SSLContexts.custom() .loadKeyMaterial(keyStore, stores.getKeyStorePassword()。toCharArray()) .loadTrustMaterial(trustStore), (X509Certificate []链,字符串authType)-> true) .build();
创建新的新泽西州客户端
client = ClientBuilder.newBuilder()
.withConfig(new ClientConfig())
.sslContext(sslContext.get())
.trustStore(信任商店)
.keyStore(keyStore,keyStorePassword)
.build();
调用API
client.target(endpoint).get();
我将密钥库凭据存储在参数存储中。