In this sense, I understand the encryption needed between say client and server and all communications that are external.

But for a scenario where for all VMs are in the same VPC and not exposed to the external world... Is VM-to-VM communication necessary here with TLS? For eg an entire Kubernetes cluster has all its worker and control plane VMs in the same VPC and none of them are externally exposed, then why communication between them and between pods needs to be encrypted?

For this, the attacker must first have access to the network, right? What are the kinds of attacks that can happen?

Yes, I know this probably has a straightforward and obvious answer. Sorry for the noob question. Whenever I try searching for this, I see everywhere talks about how to do this. But I still could not understand why it is needed.


1 Answer 1


If an attacker compromises a system in the VPC or part of the underlying network infrastructure then the lack of TLS may allow them to read or modify traffic. And since you don't know that two hosts in the same VPC are running the same hypervisor (or even in the same building), it's hard for you to accurately assess how feasible that is, as you don't know exactly which network devices your traffic is going over, or what other controls exist.

But in many cases, this requirement can come about for compliance reasons, rather than from a proper risk assessment. It's pretty common to have requirements like "all data must be encrypted in transit" - and it's often easier just to implement that encryption everywhere (including within a Kubernetes cluster) than to try and argue why it's not a necessary or useful control in a specific case (especially where you don't know exactly what the underlying network looks like).

Not the answer you're looking for? Browse other questions tagged .