Adding Security In Kubernetes Using Istio: Why Istio is important?

Alka Singh
3 min readJun 12, 2021
Istio

Microservices running in Kubernetes are offering a number of benefits to businesses due to their distributed development. Independent scaling, independent lifecycle management, logical business isolation are just a few benefits from a broad spectrum of advantages of going with microservices in Kubernetes. But, these benefits come with a price, and this price is too much for any company or business.

Microservices, being distributed services, invites security vulnerability and let the services prone to attacks from many surfaces. This made it important to not just secure the network borders but also the interior of the app architecture as individual microservices can be targeted.

Does Kubernetes not enough to deal with security?

An application running through application servers is powered by a security framework with authorization, authentication, credential mapping, auditing, and many other security plug-ins. Still, the distributed services of a microservice application require better solutions or encryption of the data being transmitted, especially in larger or more complex systems. This is where Kubernetes fails partially in meeting the security requirements of microservice architecture.

Istio: what is it? And how does it help with security needs in Kubernetes?

Istio is a platform that helps mitigate the complexity of microservices deployments. Infact, Istio complements Kubernetes by enhancing its traffic management, observability, and security for cloud-native applications.

How Does Istio fit Kubernetes Security?

Although Kubernetes itself provides network policy, Istio made the network more powerful by leveraging workload identity to produce service-level RBAC built on a strong chain of trust.

1. Encryption and Authentication

Istio ensures encryption and authentication through facilitating mutual TLS between services citadel. To do it, Istio provides certificate authority that releases certificates for each workload. The certification ensures mutual TLS for service-to-service communications. Instead of self-signed certifications, mutual TLS is performed twice in Istio to build trust in both directions.

2. Identity Management

Applications are given identities to be authenticated and unauthorized for any access, just like users are provided with unique user IDs. In Istio, the platform provides each service a secure identity and uses it to identify the service across the mesh, upon which Istio RBAC and policy is layered. SVIDs encodes a unique Kubernetes service account into certificates and ensures that service-to-service communications are secured right from their origin.

3. RBAC and Network Policy

Kubernetes comes with up its API RBAC and network policy to have control over Kubernetes API and to be aware of which services connect to which other services. Istio RBAC, however, here provides a better solution for service identity and richer expression of network policy pre-configured at the app level.

Istio operates at layer 7 as opposed to layer 4 and enforces policy in the protocols it understands due to being built with a richer set of attributes for complex applications.

Wrapping up

While you think that you have taken all the right steps to secure your app infrastructure and Kubernetes cluster, you are still at risk of malicious attacks on your systems. Istio’s security domain is layer 7. Therefore, the authentication, encryption, and identity and access control it provides you to protect valuable assets from compromise and exfiltration in Kubernetes.

--

--

Alka Singh

Technical Writer & Content Strategist | Active Since 2011 | Worked at OnGraph | Working On writingtrick.com |