Seguridad
Versiones compatibles: Istio 1.28 Última actualización: February 19, 2026
Istio proporciona sólidas características de seguridad dentro de la service mesh. Basado en el modelo de seguridad Zero Trust, cifra automáticamente la comunicación de servicio a servicio y proporciona control de acceso granular.
Tabla de contenidos
- Descripción general de la arquitectura de seguridad
- Características principales de seguridad
- Componentes de seguridad
- Documentación detallada
- Mejores prácticas de seguridad
- Monitoreo de seguridad
Descripción general de la arquitectura de seguridad
Istio implementa un modelo de seguridad Zero Trust para proteger toda la comunicación dentro de la service mesh. La arquitectura de seguridad consta de 4 capas principales:
Capas de la arquitectura de seguridad
Componentes principales de la arquitectura:
Control Plane (istiod)
- Certificate Authority (CA): emisión y administración de certificados X.509
- Configuration API: distribución y administración de políticas de seguridad
- Service Discovery: administración de identidades de workloads
Data Plane (Envoy Proxy)
- Puntos de terminación mTLS: comunicación cifrada entre servicios
- Aplicación de políticas: aplicación de políticas de autenticación/autorización
- Telemetría de seguridad: recopilación de métricas de seguridad
Administración de identidades
- Administración robusta de identidades basada en el estándar SPIFFE
- Integración con Kubernetes ServiceAccount
- Renovación automática de certificados (24 horas de forma predeterminada)
Motor de políticas
- Políticas de seguridad declarativas (basadas en CRD)
- Control de acceso granular (RBAC)
- Compatibilidad con registros de auditoría
Características principales de seguridad
Istio proporciona las siguientes características principales de seguridad:
1. Seguridad de la comunicación (mTLS)
Toda la comunicación de servicio a servicio se cifra automáticamente. Istio admite una migración gradual mediante el modo PERMISSIVE.
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
name: default
namespace: istio-system
spec:
mtls:
mode: STRICT # Production: STRICT, Migration: PERMISSIVEDescripciones de los modos:
- STRICT: solo se permite mTLS (recomendado para producción)
- PERMISSIVE: se permiten tanto mTLS como texto sin cifrar (para migración)
- DISABLE: mTLS está deshabilitado
2. Autenticación
Istio proporciona dos capas de autenticación:
- Peer Authentication: autenticación de servicio a servicio (mTLS + SPIFFE ID)
- Request Authentication: autenticación de usuarios finales (JWT + OAuth/OIDC)
Ejemplo:
# Request Authentication (JWT)
apiVersion: security.istio.io/v1
kind: RequestAuthentication
metadata:
name: jwt-auth
spec:
jwtRules:
- issuer: "https://accounts.google.com"
jwksUri: "https://www.googleapis.com/oauth2/v3/certs"3. Autorización
Se aplican políticas de control de acceso granular. AuthorizationPolicy controla en función de:
- Service Account / Namespace
- Método HTTP / Ruta
- Dirección IP
- JWT Claims
apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
name: allow-read
spec:
action: ALLOW
rules:
- from:
- source:
principals: ["cluster.local/ns/default/sa/myapp"]
to:
- operation:
methods: ["GET"]
paths: ["/api/*"]Mejores prácticas de seguridad
1. Defensa en profundidad
Implemente una defensa en profundidad aplicando seguridad en múltiples capas:
Capa de red:
# 1. Enable mTLS STRICT mode
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
name: default
namespace: istio-system
spec:
mtls:
mode: STRICTCapa de aplicación:
# 2. Enable JWT authentication
apiVersion: security.istio.io/v1
kind: RequestAuthentication
metadata:
name: require-jwt
spec:
jwtRules:
- issuer: "https://your-auth-provider.com"
jwksUri: "https://your-auth-provider.com/.well-known/jwks.json"Capa de control de acceso:
# 3. Default deny policy
apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
name: deny-all
spec:
action: DENY
rules:
- {}
---
# 4. Allow only required access
apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
name: allow-specific
spec:
action: ALLOW
rules:
- from:
- source:
principals: ["cluster.local/ns/frontend/sa/webapp"]
to:
- operation:
methods: ["GET", "POST"]2. Principio de privilegio mínimo
- Otorgue solo los permisos mínimos necesarios a cada servicio
- Separe los ServiceAccounts de forma granular
- Utilice el aislamiento de namespace
3. Monitoreo de seguridad
- Habilite Istio Access Logs
- Recopile métricas de seguridad con Prometheus
- Supervise el estado de mTLS con Kiali
Próximos pasos
- mTLS: cifrado de servicio a servicio y administración de identidades
- Autenticación: integración de JWT y OAuth/OIDC
- Autorización: políticas de control de acceso granular
Referencias
Documentación oficial
Estándares relacionados
Cuestionario
Para poner a prueba sus conocimientos de este capítulo, pruebe el Cuestionario de seguridad de Istio.