Secrets-Verschlüsselungskonfiguration

K3s unterstützt die Aktivierung der Geheimnisverschlüsselung im Ruhezustand. Beim ersten Start des Servers wird das Übergeben des Flags --secrets-encryption automatisch Folgendes tun:

  • Einen AES-CBC-Schlüssel generieren

  • Erzeugen Sie eine Konfigurationsdatei für die Verschlüsselung mit dem generierten Schlüssel.

  • Die Konfiguration als encryption-provider-config an die KubeAPI übergeben

Die Geheimnisverschlüsselung kann auf einem bestehenden Server nicht aktiviert werden, ohne ihn neu zu starten.
Verwenden Sie curl -sfL https://get.k3s.io | INSTALL_K3S_ARTIFACT_URL=<PRIME-ARTIFACTS-URL>/k3s sh -s - server --secrets-encryption, wenn Sie aus einem Skript installieren, oder andere in Konfigurationsoptionen beschriebene Methoden.

Wahl des Verschlüsselungsanbieters

Versionssperre

Verfügbar ab den April 2025-Versionen: v1.30.12+k3s1, v1.31.8+k3s1, v1.32.4+k3s1, v1.33.0+k3s1.

Mit dem --secrets-encryption-provider Flag können Sie aus den folgenden von K3s unterstützten Verschlüsselungsanbietern wählen:

  • aescbc: AES-CBC mit PKCS#7-Padding. Dies ist der standardmäßige Anbieter.

  • secretbox: XSalsa20 und Poly1305

Anbieter migrieren

Sie können vom aescbc Anbieter zum secretbox Anbieter migrieren, indem Sie die folgenden Schritte befolgen:

  1. Stellen Sie sicher, dass der secretbox Anbieter von Ihrer K3s-Version unterstützt wird.

  2. Aktualisieren oder fügen Sie das secrets-encryption-provider-Flag in Ihrer K3s-Konfigurationsdatei auf secretbox hinzu.

  3. Drehen Sie die Verschlüsselungsschlüssel gemäß dem Abschnitt Verschlüsselungsschlüsselrotation unten.

Generierte Konfigurationsdatei für Verschlüsselung

Wenn Sie den Server mit --secrets-encryption starten, erstellt K3s eine Verschlüsselungskonfigurationsdatei unter /var/lib/rancher/k3s/server/cred/encryption-config.json.

Nachfolgend finden Sie ein Beispiel für die generierte Verschlüsselungskonfigurationsdatei mit dem Standardanbieter aescbc:

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

Verschlüsselungstool für Geheimnisse

K3s enthält ein Dienstprogramm secrets-encrypt, das die automatische Steuerung über Folgendes ermöglicht:

  • Deaktivieren/Aktivieren der Geheimnisverschlüsselung

  • Hinzufügen neuer Verschlüsselungsschlüssel

  • Drehen und Löschen von Verschlüsselungsschlüsseln

  • Geheimnisse erneut verschlüsseln

Weitere Informationen finden Sie in der `k3s secrets-encrypt`Befehlsdokumentation.