Saltar al contenido principal
MKA1 tiene controles de cifrado activos en el entorno de producción desplegado. Verificamos el cifrado en reposo para los secretos de Kubernetes y los volúmenes respaldados por EBS, y el cifrado en tránsito para el edge público y el clúster de producción CNPG/PostgreSQL.

Qué está activo

Cifrado en reposo

Los siguientes controles fueron verificados en el entorno de producción en vivo:
  • El cifrado envelope de secretos EKS está activo en mk1-eks-production.
  • El clúster EKS en vivo reporta encryptionConfig para el tipo de recurso secrets.
  • El clúster en vivo reporta una clave KMS provider ARN: arn:aws:kms:us-west-2:REDACTED:key/5d84bfa7-REDACTED.
  • La clase de almacenamiento de producción ebs-sc utiliza el provisionador ebs.csi.aws.com con encrypted: "true" y type: gp3.
La infraestructura desplegada también declara almacenamiento respaldado por EBS cifrado:
  • infra-resources/mk1/resources/storage/ebs-storage-class.yaml establece encrypted: "true" en ebs-sc.
  • infra-resources/helm/cnpg/kube/cluster-production.yaml utiliza storageClass: ebs-sc para el clúster de PostgreSQL de producción.

Cifrado en tránsito

Los siguientes controles fueron verificados en el entorno de producción en vivo:
  • apigw.mka1.com:443 negoció TLSv1.3 con el conjunto de cifrado TLS_AES_128_GCM_SHA256.
  • livekit.mka1.com:443 negoció TLSv1.3 con el conjunto de cifrado TLS_AES_128_GCM_SHA256.
  • Ambas comprobaciones públicas de TLS se completaron con la verificación del certificado OK.
  • El ingreso público de Kong está configurado con alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS13-1-2-2021-06.
  • El clúster CNPG/PostgreSQL en vivo reporta ssl_min_protocol_version: TLSv1.3 y ssl_max_protocol_version: TLSv1.3.
  • El clúster CNPG/PostgreSQL en vivo reporta material de certificado activo en clientCASecret, serverCASecret, serverTLSSecret y replicationTLSSecret.
La infraestructura desplegada también declara la política de ingreso pública compatible con TLS:
  • infra-resources/kong/resources/ingress-proxy.yaml establece alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS13-1-2-2021-06.

Cómo lo validamos

Validamos el estado desplegado con scripts propios del repositorio en infra-resources e inspección directa del clúster en vivo. tools/compliance/verify_storage_encryption.sh captura evidencia de cifrado de almacenamiento ejecutando:
aws eks describe-cluster --name mk1-eks-production --region us-west-2
kubectl get storageclass ebs-sc efs-sc -o yaml
aws efs describe-file-systems --region us-west-2
aws ec2 describe-volumes --region us-west-2 \
  --filters Name=tag:kubernetes.io/created-for/pvc/name,Values='*'
tools/compliance/verify_tls13.sh captura evidencia pública de TLS ejecutando openssl s_client con -tls1_3 contra cada endpoint público:
openssl s_client -connect apigw.mka1.com:443 -servername apigw.mka1.com -tls1_3 -brief
openssl s_client -connect apigw.mka1.com:443 -servername apigw.mka1.com -tls1_3 -showcerts

openssl s_client -connect livekit.mka1.com:443 -servername livekit.mka1.com -tls1_3 -brief
openssl s_client -connect livekit.mka1.com:443 -servername livekit.mka1.com -tls1_3 -showcerts
También verificamos la configuración del clúster en vivo directamente:
kubectl -n kong get ingress kong-alb-ingress -o yaml
kubectl -n cnpg get cluster -o yaml

Evidencia

Los siguientes fragmentos saneados son extractos de comprobaciones contra nuestro despliegue de producción en vivo. Preservan las señales de cifrado verificadas y redactan detalles de infraestructura no relacionados.

Cifrado envelope de secretos EKS

{
  "cluster": {
    "name": "mk1-eks-production",
    "encryptionConfig": [
      {
        "resources": [
          "secrets"
        ],
        "provider": {
          "keyArn": "arn:aws:kms:us-west-2:[redacted-account]:key/[redacted-key-id]"
        }
      }
    ]
  }
}

Clase de almacenamiento respaldada por EBS cifrada

kind: StorageClass
metadata:
  name: ebs-sc
parameters:
  encrypted: "true"
  type: gp3
provisioner: ebs.csi.aws.com
volumeBindingMode: WaitForFirstConsumer

Handshake TLS 1.3 de la puerta de enlace API pública

Verificando TLS 1.3 para apigw.mka1.com:443
Conectando a [redacted-ip]
CONEXIÓN ESTABLECIDA
Versión del protocolo: TLSv1.3
Cifrado: TLS_AES_128_GCM_SHA256
Verificación: OK
Clave temporal del par: X25519, 253 bits
...
Nuevo, TLSv1.3, el cifrado es TLS_AES_128_GCM_SHA256
Protocolo: TLSv1.3
Clave pública del servidor es de 2048 bits
Código de retorno de verificación: 0 (ok)

Handshake TLS 1.3 de LiveKit

Verificando TLS 1.3 para livekit.mka1.com:443
Conectando a [redacted-ip]
CONEXIÓN ESTABLECIDA
Versión del protocolo: TLSv1.3
Cifrado: TLS_AES_128_GCM_SHA256
Verificación: OK
Clave temporal del par: X25519, 253 bits
...
Nuevo, TLSv1.3, el cifrado es TLS_AES_128_GCM_SHA256
Protocolo: TLSv1.3
Clave pública del servidor es de 2048 bits
Código de retorno de verificación: 0 (ok)

Extractos verificados del clúster en vivo

Ingreso público de Kong:
- alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS13-1-2-2021-06

CNPG/PostgreSQL:
- ssl_min_protocol_version: TLSv1.3
- ssl_max_protocol_version: TLSv1.3
- clientCASecret: mk1-db-[redacted]
- serverCASecret: mk1-db-[redacted]
- serverTLSSecret: mk1-db-[redacted]
- replicationTLSSecret: mk1-db-[redacted]