← Back to Questions
Microservices - Scenario based questions

How will you secure communication between microservices?

Learn How will you secure communication between microservices? with simple explanations, real-time examples, interview tips and practical use cases.

How Will You Secure Communication Between Microservices?

Security is one of the most critical aspects of microservices architecture.

In microservices:

  • Services communicate frequently
  • Data flows across network
  • Multiple APIs are exposed
  • Sensitive business data is exchanged

If communication is not secured properly:

  • Data leakage may occur
  • Unauthorized access may happen
  • Man-in-the-middle attacks are possible
  • Service impersonation may occur
  • Financial fraud can happen

Real-Time Banking Example

Mobile Banking App
       ↓
API Gateway
       ↓
Account Service
       ↓
Payment Service
       ↓
Fraud Detection Service

Problem Scenario

Suppose:

  • Communication is plain HTTP
  • No authentication between services
  • No encryption

Dangerous Results

  • Hackers intercept payment data
  • Fake services send requests
  • Unauthorized data access occurs
  • Account information leaks

Main Security Risks in Microservices

Risk Description
Man-in-the-Middle Attack Traffic interception
Unauthorized Access Invalid service calls
Data Tampering Payload modification
Token Theft Credential compromise
Service Spoofing Fake service impersonation
Replay Attack Reusing old requests

Production-Level Security Solutions

  • HTTPS / TLS Encryption
  • mTLS (Mutual TLS)
  • JWT Authentication
  • OAuth2
  • API Gateway Security
  • Service-to-Service Authentication
  • Network Policies
  • Secrets Management
  • Role-Based Access Control (RBAC)
  • Service Mesh Security
  • Zero Trust Architecture

Step 1: Use HTTPS/TLS Encryption

Never use plain HTTP communication.


Bad Example

http://payment-service/process

Problem

  • Data visible in network
  • Easy interception possible

Correct Example

https://payment-service/process

Benefits

  • Encrypted communication
  • Protects sensitive data
  • Prevents packet sniffing

Spring Boot HTTPS Configuration

server:
  ssl:
    enabled: true
    key-store: classpath:keystore.p12
    key-store-password: password
    key-store-type: PKCS12

Step 2: Implement Mutual TLS (mTLS)

TLS secures communication, but mTLS additionally verifies both services.


Normal TLS

Client verifies Server

mTLS

Client verifies Server
AND
Server verifies Client

How mTLS Works

Service A
   ↔ Certificate Validation ↔
Service B

Benefits

  • Strong service authentication
  • Prevents fake services
  • Encrypted communication

Real Banking Example

Payment Service accepts requests only from:

  • Authorized Transaction Service

Other services rejected automatically.


Step 3: JWT Authentication

JWT tokens securely identify users and services.


JWT Flow

User Login
    ↓
Auth Service Generates JWT
    ↓
JWT Sent to Services

JWT Structure

Header.Payload.Signature

Benefits

  • Stateless authentication
  • Scalable
  • Secure token verification

Spring Security JWT Example

http
.authorizeHttpRequests(auth ->
    auth.anyRequest().authenticated()
)
.oauth2ResourceServer(
    oauth -> oauth.jwt()
);

Step 4: OAuth2 Security

OAuth2 is widely used in enterprise systems.


Flow

User
  ↓
Authorization Server
  ↓
Access Token
  ↓
Microservices

Popular Authorization Servers

  • Keycloak
  • Okta
  • Auth0
  • Azure AD

Benefits

  • Centralized authentication
  • Token management
  • Secure authorization

Step 5: Secure API Gateway

API Gateway is first entry point.


Responsibilities

  • Authentication
  • Authorization
  • Rate limiting
  • Request validation
  • IP filtering

Spring Cloud Gateway Example

spring:
  cloud:
    gateway:
      default-filters:
      - TokenRelay

Benefits

  • Centralized security
  • Reduced duplication
  • Consistent authentication

Step 6: Service-to-Service Authentication

Internal services should also authenticate each other.


Bad Practice

Any internal service can call Payment Service

Correct Practice

Only authorized services allowed

Example

Order Service
   ↓ JWT/mTLS
Payment Service

Benefits

  • Stops unauthorized internal calls
  • Improves internal security

Step 7: Use Network Policies

Restrict network communication between services.


Kubernetes Network Policy Example

apiVersion: networking.k8s.io/v1

kind: NetworkPolicy

spec:
  podSelector:
    matchLabels:
      app: payment-service

Benefits

  • Limits unnecessary access
  • Prevents lateral attacks
  • Improves isolation

Step 8: Secrets Management

Never hardcode secrets in code.


Bad Practice

password=admin123

Production Solutions

  • HashiCorp Vault
  • AWS Secrets Manager
  • Kubernetes Secrets
  • Azure Key Vault

Benefits

  • Secure credential storage
  • Centralized secret management
  • Easy secret rotation

Step 9: Role-Based Access Control (RBAC)

Not every service should access everything.


Example

Notification Service
Cannot Access Payment Database

Benefits

  • Least privilege principle
  • Reduces attack surface

Step 10: Service Mesh Security

Large-scale systems use service mesh.


Popular Tools

  • Istio
  • Linkerd

Features

  • Automatic mTLS
  • Traffic encryption
  • Policy enforcement
  • Observability

Istio mTLS Example

apiVersion: security.istio.io/v1beta1

kind: PeerAuthentication

spec:
  mtls:
    mode: STRICT

Benefits

  • Strong internal security
  • Centralized traffic control
  • Automatic certificate handling

Step 11: Implement Zero Trust Architecture

Never trust any service automatically.


Zero Trust Principle

Verify Every Request

Benefits

  • Improved security
  • Reduced insider attacks
  • Strong authentication enforcement

Step 12: Logging and Monitoring

Security monitoring is critical.


Monitor

  • Unauthorized access attempts
  • Failed authentications
  • Suspicious traffic
  • API abuse
  • Certificate failures

Monitoring Tools

  • Grafana
  • Prometheus
  • ELK Stack
  • Splunk
  • Datadog

Real Production Incident

Issue

A fintech application exposed internal services without authentication.


Impact

  • Unauthorized API access
  • Sensitive customer data exposed
  • Financial fraud risk increased

Root Causes

  • No mTLS
  • No service authentication
  • Secrets hardcoded
  • No network isolation

Fixes Applied

  • Implemented HTTPS everywhere
  • Enabled Istio mTLS
  • Added OAuth2 and JWT
  • Secured API Gateway
  • Introduced Vault for secrets
  • Configured Kubernetes Network Policies

Final Result

Before:
Weak internal security

After:
Encrypted and authenticated
service communication

Production Best Practices

Technique Purpose
HTTPS/TLS Encrypt communication
mTLS Mutual authentication
JWT Secure token-based auth
OAuth2 Centralized authorization
API Gateway Security Centralized protection
RBAC Access control
Network Policies Traffic isolation
Secrets Management Secure credentials
Service Mesh Advanced internal security

Final Interview Answer

To secure communication between microservices, I would use HTTPS/TLS encryption to protect data in transit and implement mTLS for mutual authentication between services. I would use JWT and OAuth2 for secure authentication and authorization, with API Gateway acting as the centralized security layer. Internal services should authenticate each other using tokens or certificates, and Kubernetes Network Policies should restrict unnecessary communication. I would also use secrets management tools like Vault or AWS Secrets Manager instead of hardcoding credentials. In large-scale systems, I would use service mesh technologies like Istio for automatic mTLS, policy enforcement, and secure traffic management to achieve Zero Trust security in production environments.

Why this Microservices - Scenario based questions question is important?

This interview question helps candidates understand real-time backend development concepts, practical problem solving, coding fundamentals, system design basics and production-ready application behavior.

Practice this question carefully for Java backend roles, Spring Boot developer interviews, microservices interviews, company interviews and full-stack developer preparation.

About the Author

Naresh Kumar is a Senior Java Backend Engineer with experience building enterprise applications using Java, Spring Boot, Microservices, Docker, Kubernetes and Cloud technologies.