Saltar al contenido principal
MKA1 gestiona todas las claves criptográficas a través de AWS KMS, que está respaldado por módulos de seguridad de hardware validados FIPS 140-2 Nivel 3. TLS 1.3 se aplica en cada endpoint público y en las conexiones internas a la base de datos, con tamaños de clave verificados que cumplen los requisitos de cumplimiento.

Qué está activo

Gestión de claves respaldadas por HSM

Se verificaron los siguientes controles en el entorno de producción en vivo:
  • El cifrado envelope de secretos de EKS utiliza una clave de AWS KMS gestionada por el cliente (arn:aws:kms:us-west-2:REDACTED:key/...).
  • La clave de KMS está respaldada por HSMs validados FIPS 140-2 Nivel 3 operados por AWS.
  • Los secretos cifrados con SOPS en reposo en el repositorio también utilizan AWS KMS para el cifrado envelope.
  • Los volúmenes EBS adjuntos al clúster de producción usan encrypted: "true" con la clase de almacenamiento gp3, con claves de cifrado gestionadas por KMS.

Aplicación de TLS 1.3

Se verificaron los siguientes controles 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.
  • Ambos endpoints usan intercambio de claves X25519 (253 bits) y claves públicas de servidor RSA de 2048 bits emitidas por AWS Certificate Manager.
  • La política SSL del ALB ELBSecurityPolicy-TLS13-1-2-2021-06 está configurada en los ingresses de Kong y LiveKit, asegurando solo TLS 1.3 y cifrados TLS 1.2 fuertes.
  • El clúster de producción CNPG/PostgreSQL aplica ssl_min_protocol_version: TLSv1.3 y ssl_max_protocol_version: TLSv1.3.
  • Los certificados TLS de la base de datos son gestionados por cert-manager con secretos dedicados clientCASecret, serverCASecret, serverTLSSecret y replicationTLSSecret.

Cómo lo validamos

Validamos el uso de claves respaldadas por HSM y la aplicación de TLS 1.3 mediante inspección del clúster en vivo y pruebas directas a los endpoints. La clave de KMS y su respaldo por HSM se confirman mediante la descripción del clúster EKS:
aws eks describe-cluster --name mk1-eks-production --region us-west-2 \
  --query 'cluster.encryptionConfig'
El handshake TLS 1.3 y los tamaños de clave se verifican con openssl s_client:
openssl s_client -connect apigw.mka1.com:443 -servername apigw.mka1.com -tls1_3 -brief
openssl s_client -connect livekit.mka1.com:443 -servername livekit.mka1.com -tls1_3 -brief
La configuración TLS de la base de datos se verifica directamente en el clúster en vivo:
kubectl -n cnpg get cluster -o yaml | grep -A2 ssl

Evidencia

Los siguientes fragmentos anonimizados se extraen de comprobaciones contra nuestro despliegue de producción en vivo.

Proveedor KMS en el clúster EKS

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

Handshake TLS 1.3 con tamaños de clave — apigw.mka1.com

CONNECTION ESTABLISHED
Protocol version: TLSv1.3
Ciphersuite: TLS_AES_128_GCM_SHA256
Peer Temp Key: X25519, 253 bits
Verification: OK
...
Server public key is 2048 bit
Verify return code: 0 (ok)

Handshake TLS 1.3 con tamaños de clave — livekit.mka1.com

CONNECTION ESTABLISHED
Protocol version: TLSv1.3
Ciphersuite: TLS_AES_128_GCM_SHA256
Peer Temp Key: X25519, 253 bits
Verification: OK
...
Server public key is 2048 bit
Verify return code: 0 (ok)

Política SSL del ALB y configuración TLS de la base de datos

Kong public ingress:
- 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]