Pular para o conteúdo principal

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.

O MKA1 possui controles de criptografia ativos no ambiente de produção implantado. Verificamos a criptografia em repouso para segredos do Kubernetes e volumes baseados em EBS, e a criptografia em trânsito para a borda pública e o cluster CNPG/PostgreSQL de produção.

O que está ativo

Criptografia em repouso

Os seguintes controles foram verificados no ambiente de produção ao vivo:
  • A criptografia envelope de segredos do EKS está ativa em mk1-eks-production.
  • O cluster EKS ao vivo reporta encryptionConfig para o tipo de recurso secrets.
  • O cluster ao vivo reporta uma chave de provedor KMS ARN: arn:aws:kms:us-west-2:REDACTED:key/5d84bfa7-REDACTED.
  • A classe de armazenamento de produção ebs-sc utiliza o provisionador ebs.csi.aws.com com encrypted: "true" e type: gp3.
A infraestrutura implantada também declara armazenamento baseado em EBS criptografado:
  • infra-resources/mk1/resources/storage/ebs-storage-class.yaml define encrypted: "true" em ebs-sc.
  • infra-resources/helm/cnpg/kube/cluster-production.yaml utiliza storageClass: ebs-sc para o cluster PostgreSQL de produção.

Criptografia em trânsito

Os seguintes controles foram verificados no ambiente de produção ao vivo:
  • apigw.mka1.com:443 negociou TLSv1.3 com o conjunto de cifras TLS_AES_128_GCM_SHA256.
  • livekit.mka1.com:443 negociou TLSv1.3 com o conjunto de cifras TLS_AES_128_GCM_SHA256.
  • Ambas as verificações públicas de TLS foram concluídas com verificação de certificado OK.
  • O ingress público do Kong está configurado com alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS13-1-2-2021-06.
  • O cluster CNPG/PostgreSQL ao vivo reporta ssl_min_protocol_version: TLSv1.3 e ssl_max_protocol_version: TLSv1.3.
  • O cluster CNPG/PostgreSQL ao vivo reporta material de certificado ativo em clientCASecret, serverCASecret, serverTLSSecret e replicationTLSSecret.
A infraestrutura implantada também declara a política de ingress pública compatível com TLS:
  • infra-resources/kong/resources/ingress-proxy.yaml define alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS13-1-2-2021-06.

Como validamos

Validamos o estado implantado com scripts de propriedade do repositório em infra-resources e inspeção do cluster ao vivo. tools/compliance/verify_storage_encryption.sh captura evidências de criptografia de armazenamento executando:
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 evidências públicas de TLS executando openssl s_client com -tls1_3 em 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
Também verificamos diretamente a configuração do cluster ao vivo:
kubectl -n kong get ingress kong-alb-ingress -o yaml
kubectl -n cnpg get cluster -o yaml

Evidências

Os trechos sanitizados a seguir são extraídos de verificações contra nossa implantação de produção ao vivo. Eles preservam os sinais de criptografia verificados e ocultam detalhes de infraestrutura não relacionados.

Criptografia envelope de segredos do EKS

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

Classe de armazenamento baseada em EBS criptografada

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

Handshake TLS 1.3 do gateway de API público

Verificando TLS 1.3 para apigw.mka1.com:443
Conectando a [redacted-ip]
CONEXÃO ESTABELECIDA
Versão do protocolo: TLSv1.3
Ciphersuite: TLS_AES_128_GCM_SHA256
Verificação: OK
Chave temporária do par: X25519, 253 bits
...
Novo, TLSv1.3, Cipher é TLS_AES_128_GCM_SHA256
Protocolo: TLSv1.3
Chave pública do servidor é 2048 bits
Código de retorno da verificação: 0 (ok)

Handshake TLS 1.3 do LiveKit

Verificando TLS 1.3 para livekit.mka1.com:443
Conectando a [redacted-ip]
CONEXÃO ESTABELECIDA
Versão do protocolo: TLSv1.3
Ciphersuite: TLS_AES_128_GCM_SHA256
Verificação: OK
Chave temporária do par: X25519, 253 bits
...
Novo, TLSv1.3, Cipher é TLS_AES_128_GCM_SHA256
Protocolo: TLSv1.3
Chave pública do servidor é 2048 bits
Código de retorno da verificação: 0 (ok)

Trechos verificados do cluster ao vivo

Ingress público do 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]