Zum Hauptinhalt springen
Version: Weekly Build

Secrets verschlüsseln und DNS konfigurieren

Bevor du beginnst

config.yaml und prod.vault.yaml sollten bereits erzeugt und überprüft sein, wie in Jumpbox vorbereiten und Konfiguration erzeugen beschrieben.

Die Secrets verschlüsseln und ablegen

Erzeuge eine age-Identität auf der Jumpbox und mache sie nur für Root lesbar:

age-keygen -o /etc/codesphere/secrets/age_key.txt
chmod 0600 /etc/codesphere/secrets/age_key.txt

Kopiere die erzeugten Dateien auf die Jumpbox und verschlüssele den Vault dort:

install -m 0600 config.yaml /etc/codesphere/config.yaml
install -m 0600 prod.vault.yaml /etc/codesphere/secrets/prod.vault.yaml

sops --encrypt --in-place \
--age "$(age-keygen -y /etc/codesphere/secrets/age_key.txt)" \
/etc/codesphere/secrets/prod.vault.yaml

Sichere config.yaml, den verschlüsselten Vault und die age-Identität in einem genehmigten Secret-Store. Die age-Identität wird benötigt, um die Installation wiederherzustellen oder zu aktualisieren. Committe den unverschlüsselten Vault oder die age-Identität niemals in die Versionsverwaltung.

Einen verschlüsselten Vault erneut bearbeiten

Um prod.vault.yaml später zu bearbeiten, setze SOPS_AGE_KEY_FILE auf deine age-Identität und öffne die Datei direkt mit sops — sie wird entschlüsselt, dein Editor geöffnet und beim Speichern erneut verschlüsselt:

export SOPS_AGE_KEY_FILE=/etc/codesphere/secrets/age_key.txt
sops /etc/codesphere/secrets/prod.vault.yaml

warnung

Wenn du prod.vault.yaml ändern musst, nachdem der Installer bereits einmal gelaufen ist, wende die Änderung direkt auf die Datei auf der Jumpbox an. Der Installer fügt dem Vault zur Laufzeit eigene generierte Secrets hinzu, weshalb das vollständige Ersetzen der Datei durch eine ältere lokale Kopie diese verwerfen würde.

DNS konfigurieren

Lege diese Einträge an, sobald die drei stabilen Adressen zugewiesen sind:

EintragKubernetes-ServiceZiel
<base-domain>gateway-controllerPlatform-Gateway-IP
<dc-id>.<base-domain>gateway-controllerPlatform-Gateway-IP
*.<dc-id>.<base-domain>public-gateway-controllerWorkspace-Gateway-IP
<dc-id>.ssh.<base-domain>ssh-workspace-proxyWorkspace-SSH-Proxy-IP

Verwende während der Ersteinrichtung eine kurze TTL wie 300 Sekunden. Je nach DNS-Anbieter und Netzwerkdesign können die Einträge A/AAAA-, Alias- oder Lastverteiler-Einträge sein. Stelle sicher, dass der Zertifikats-Solver DNS aktualisieren kann, wenn DNS-01 verwendet wird, oder dass TCP 80 das Platform-Gateway erreicht, wenn HTTP-01 verwendet wird. Siehe Cluster-Ingress-CA-Optionen für die Konfiguration des Zertifikats-Issuers.

Manche Cloud-Controller- und Lastverteilungs-Integrationen weisen externe IP-Adressen erst zu, nachdem Kubernetes und die Provider-Integration laufen. Falls die drei Adressen noch nicht bekannt sind, verschiebe das Anlegen und Verifizieren dieser Einträge auf Die Infrastrukturintegration abschließen und kehre dann mit den zugewiesenen Adressen zu dieser Tabelle zurück. Verifiziere andernfalls jeden Eintrag von außerhalb des privaten Netzwerks, bevor du fortfährst.

Was du jetzt haben solltest

  • config.yaml und die verschlüsselte prod.vault.yaml auf der Jumpbox abgelegt, mit der separat gesicherten age-Identität.
  • DNS-Einträge angelegt (oder ausdrücklich zurückgestellt) für Platform-Gateway, Workspace-Gateway und Workspace-SSH-Proxy.

Weiter geht's

Weiter geht es mit Den Installer ausführen.