-
Notifications
You must be signed in to change notification settings - Fork 141
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
End-to-End Encryption between Hosts #213
Comments
This sounds like a reasonable idea to implement this kind of security. This leaves essentially two options:
|
Is there a use case where it's more advantageous to implement mTLS at the service mesh layer when it can be implemented at the CNI layer? For my cluster I use WeaveNet to supply full network encryption transparent to all of my services which encrypts TCP and UDP traffic. |
@gravypod Great question. If you are not using a CNI plugin that allows for encryption, or you may only want certain traffic encrypted, you may want to offload encryption to the service mesh. The other situation is where you want to protect traffic from one service from being visible from another service inside your mesh. In that case, encrypting at the network level doesn't help, because all traffic is decrypted for network members. |
Not sure I'm understanding the full scope here, but if you're looking for mTLS between Go applications, you could evaluate https://github.com/johanbrandhorst/certify which automates this, given an existing CA with an API (Vault PKI, CFSS, etc). Not sure if this would be appropriate for this use case. Disclaimer: I'm the author of certify. |
@jbdoumenjou most software isn't written in Golang and an in-application solution for this sort of thing is very limiting. For example, in development you might not want to use mTLS for debugging reasons. Having an out-of-code solution for this sort of thing is ideal in my yes. From @dtomcej 's comment it's clear that there exists a use case that is fairly well reasoned at an application-level that would benefit from this feature. |
I think there's a misunderstanding - I was suggesting the use of certify within the scope of |
Proposal
Implementing mTLS between Hosts, rather than between pods. This would require to route a connection between two maesh proxies (one per node), instead of only one (on the target node) today. That would still bring mTLS between nodes in the cluster, but not when pods are running on the same node.
Background
One of the benefits by introducing a Service Mesh is the possibility to have end-to-end encryption (mtls) between services. While Maesh is currently not build to have one sidecar proxy per service to be light-weight, we're not intending to change that. In our opinion, end-to-end encryption between hosts in a service-mesh is sufficient.
The text was updated successfully, but these errors were encountered: