问题标签 [aws-app-mesh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
14 浏览

amazon-web-services - ECS 中使用 app Mesh 的服务之间的内部通信

我在 AWS ECS 中有由三项服务组成的应用程序堆栈。我一直在计划使用 AWS App Mesh 来实现服务网格。我已按照以下说明为我的服务设置 mTLS。 https://awscloudfeed.com/whats-new/security/how-to-use-acm-private-ca-for-enabling-mtls-in-aws-app-mesh

使用博客中提到的技术,我能够设置 mTLS,并且从虚拟网关到服务的通信工作正常。

但是,当其中一项服务尝试访问另一项服务时,它无法建立连接。服务是使用 NodeJS 构建的,一个服务(比如说 A)使用请求库来调用服务 B。根据我对服务网格的理解,TLS 会话发起应该从服务 A 的特使代理开始,到服务的特使代理终止B. 在这种情况下,我应该在从服务 A 调用服务 B 时使用服务 B 的服务发现 url(例如http://serviceb.example.com)。这样做时,我收到 ECONNRESET 错误消息套接字挂断. 在使用 https 协议(例如https://serviceb.example.com)时,我收到 ECONNRESET 错误并显示 TLS 错误消息。

但是,如果我禁用服务 B 的客户端证书要求,我可以使用 https 协议从服务 A 访问它。这是否意味着如果我需要在 appmesh 中设置 mtls,我需要通过应用程序本身加载客户端证书?我认为请求应该毫无问题地通过,因为客户端证书是通过支持的客户端配置提供的。

您能否帮助我了解应用网格 mTLS 的工作原理以及在配置应用网格时是否遗漏了某些内容?谢谢你