Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado.

Configuración de cifrado de secretos

K3s admite la habilitación del cifrado de secretos en reposo. Al iniciar el servidor por primera vez, pasar la bandera --secrets-encryption hará lo siguiente automáticamente:

  • Generar una clave AES-CBC

  • Generar un archivo de configuración de cifrado con la clave generada

  • Pasar la configuración a la KubeAPI como configuración-proveedor-de-cifrado

El cifrado de secretos no se puede habilitar en un servidor existente sin reiniciarlo.
Utiliza curl -sfL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s sh -s - server --secrets-encryption si instalas desde un guion, o otros métodos descritos en Opciones de Configuración.

Elegir Proveedor de Cifrado

Puerta de Versión

Disponible a partir de las versiones de abril de 2025: v1.30.12+k3s1, v1.31.8+k3s1, v1.32.4+k3s1, v1.33.0+k3s1.

Usando la bandera --secrets-encryption-provider, puedes elegir entre los siguientes proveedores de cifrado compatibles con K3s:

  • aescbc: AES-CBC con relleno PKCS#7. Este es el proveedor por defecto.

  • secretbox: XSalsa20 y Poly1305

Migrando Proveedores

Puedes migrar del proveedor aescbc al proveedor secretbox siguiendo estos pasos:

  1. Asegúrate de que el proveedor secretbox sea compatible con tu versión de K3s.

  2. Actualiza/Añade la bandera secrets-encryption-provider en tu archivo de configuración de K3s a secretbox.

  3. Gira las claves de cifrado, siguiendo la sección Rotación de Claves de Cifrado a continuación.

Archivo de configuración de cifrado generado

Cuando inicies el servidor con --secrets-encryption, K3s generará un archivo de configuración de cifrado en /var/lib/rancher/k3s/server/cred/encryption-config.json.

A continuación se muestra un ejemplo del archivo de configuración de cifrado generado con el proveedor aescbc por defecto:

{
  "kind": "EncryptionConfiguration",
  "apiVersion": "apiserver.config.k8s.io/v1",
  "resources": [
    {
      "resources": [
        "secrets"
      ],
      "providers": [
        {
          "aescbc": {
            "keys": [
              {
                "name": "aescbckey",
                "secret": "xxxxxxxxxxxxxxxxxxx"
              }
            ]
          }
        },
        {
          "identity": {}
        }
      ]
    }
  ]
}

Herramienta de Cifrado de Secretos

K3s contiene una herramienta utilitaria secrets-encrypt, que permite el control automático sobre lo siguiente:

  • Desactivar/Activar el cifrado de secretos

  • Añadir nuevas claves de cifrado

  • Rotar y eliminar claves de cifrado

  • Reencriptar secretos

Para obtener más información, consulta la documentación del comando k3s secrets-encrypt.