Service mesh 101
Service meshes are one of the newest innovations in the world of microservices and cloud-native computing. They’re a critical tool for making microservices applications feasible to implement and manage.
At the same time, however, service meshes — like all components of the software stack — must be properly secured. Without sufficient security oversight, service meshes run the risk of becoming a vector for attack into software infrastructure, as well as a compliance liability.
A service mesh is a software-defined part of an infrastructure that provides a systematic, highly organized way for multiple microservices to discover and communicate with each other. Service meshes achieve this by creating a small proxy server instance for each service within a microservices application. This specialized proxy server, which is sometimes called a “sidecar” in service-mesh terminology, allows the service to lookup the address of any other services within the same environment.
Service mesh benefits
Service meshes like Istio offer key benefits when managing and scaling cloud native applications:
Better service management: Service meshes eliminate the need for developers and admins to manage service discovery and communication manually.
Automated service discovery and communication: Service meshes make it possible to build environments that can scale seamlessly because service discovery and communications are automated.
Performance improvements: Service meshes improve application performance and availability by automatically detecting instances of a service that are not responding or communicating.
Visibility: By tracking the location and status of different services, service meshes provide another key source of insight into application health and security.
Why is Istio rising in popularity?
The Istio project has been growing in adoption since it was announced publicly in 2017. Istio is a service mesh project designed to make it easier to connect, secure, and operate the connectivity between your application’s various components. When deployed and integrated with Kubernetes, Istio automatically balances inter-service traffic based on policies configured by admins, which means it’s easy to ensure that communications between services are properly balanced depending on user needs. Istio also offers built-in authentication and service encryption, adding crucial security enhancements to a microservices environment.
Istio makes it possible to configure how an individual application or service should behave on a highly granular level while also embedding configurations into application instances. Whenever a new instance of your application spins up, Istio is already there, ready to control service communication, discovery and balancing.
Security and compliance concerns when using Istio
Lack of real time visualization: Because of the ways microservices are architected, organizations often can’t gather real time insights into a service mesh’s network communications. Legacy security tools create a blind spot, forcing infrastructure and security teams to manually examine YAML files in an attempt to understand Istio network communications.
Inability to assess and implement compliance: As infrastructure teams adopt Istio to solve complex networking and access hurdles, the cloud native community lacks official guidance on compliance and security best practices. Enterprises that wish to adopt Istio also want to demonstrate proper configurations and ensure they are preventing known threats like traffic interception.
Improper access control measures: Without proper RBAC configurations and service role rules, an attacker that compromises one part of the service mesh could perform reconnaissance and potentially expand his position through the rest of the mesh. By properly implementing RBAC measures and Istio service roles, Istio can provide users with least privilege, per-service connectivity controls to prevent network threats.