> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mka1.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Claves respaldadas por HSM y TLS 1.3

> Cómo MKA1 utiliza módulos de seguridad de hardware (HSM) validados por AWS KMS y aplica TLS 1.3 para la gestión criptográfica de claves tanto en datos en reposo como en tránsito.

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 todos los endpoints públicos y en las conexiones internas a bases de datos, con tamaños de clave verificados que cumplen con 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 de sobres de secretos de EKS utiliza una clave de AWS KMS gestionada por el cliente (`arn:aws:kms:us-west-2:REDACTED:key/...`).
* La clave 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 de sobres.
* 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 utilizan 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 con inspección en vivo del clúster y pruebas directas de los endpoints.

La clave KMS y el respaldo HSM se confirman mediante la descripción del clúster EKS:

```bash theme={null}
aws eks describe-cluster --name mk1-eks-production --region us-west-2 \
  --query 'cluster.encryptionConfig'
```

El apretón de manos TLS 1.3 y los tamaños de clave se verifican con `openssl s_client`:

```bash theme={null}
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:

```bash theme={null}
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

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

### Apretón de manos TLS 1.3 con tamaños de clave — apigw\.mka1.com

```text theme={null}
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)
```

### Apretón de manos TLS 1.3 con tamaños de clave — livekit.mka1.com

```text theme={null}
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 de ALB y configuración TLS de base de datos

```text theme={null}
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]
```
