CA-Optionen für Cluster Ingress
Codesphere unterstützt nun mehrere Optionen zum Ausstellen und Verwalten der Cluster Ingress CA, die zum Signieren von Zertifikaten für den gesamten Ingress-Traffic innerhalb des Clusters verwendet wird. Diese Flexibilität ermöglicht es, den Ansatz zu wählen, der am besten zu den Sicherheits- und Betriebsanforderungen der jeweiligen Organisation passt.
Verfügbare Issuer-Optionen
| Option | Beschreibung | Beispiel-Anwendungsfall |
|---|---|---|
| Self-Signed (Standard) | Erzeugt lokal eine neue selbstsignierte CA. | Schnellstart, Test oder wenn keine Org-CA verfügbar ist. |
| Organization CA | Verwendet die bestehende CA oder Intermediate-CA der eigenen Organisation zum Signieren der Ingress-Zertifikate. | Enterprise-Umgebungen mit zentraler CA-Verwaltung. |
| External Issuer | Integration mit einer externen Zertifizierungsstelle (z. B. HashiCorp Vault, AWS PCA, Let's Encrypt). | Automatisierte Zertifikatsverwaltung, cloud-native Umgebungen. |
Konfiguration
In der config.yaml kann der Zertifikats-Issuer über die Option codesphere.certIssuer ausgewählt werden. Der Legacy-Block cluster.certificates.ca wird für Self-Signed- und Organization-CA verwendet, während externe Issuer über codesphere.certIssuer konfiguriert werden.
Self-Signed oder Organization CA:
codesphere:
certIssuer:
type: self-signed
cluster:
certificates:
ca:
algorithm: RSA # or ECDSA
keySizeBits: 2048 # or 4096, etc.
certPem: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
certIssuer-Optionen:
Das Feld codesphere.certIssuer unterstützt die folgenden Typen:
self-signed: Verwendet eine selbstsignierte CA (Standard, keine ACME-Integration)acme: Verwendet das ACME-Protokoll (z. B. Let's Encrypt) für automatisierte Zertifikatsverwaltung
Für ACME müssen die ACME-Server-URL, die eigene E-Mail-Adresse und optional eine EAB-Key-ID (External Account Binding) angegeben werden. Der ACME-Private-Key und der EAB-Key sind Secrets und müssen der SOPS-Vault-Konfiguration hinzugefügt werden.
Beispiel: Self-Signed
codesphere:
certIssuer:
type: self-signed
cluster:
certificates:
ca:
algorithm: RSA # or ECDSA
keySizeBits: 2048 # or 4096, etc.
certPem: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Anforderungen an das SOPS-Vault-Secret für Self-Signed CA:
- Der Private Key für die selbstsignierte CA muss in der SOPS-Vault (prod.vault.yaml) unter dem Schlüssel
selfSignedCaKeyPemgespeichert werden.
Beispiel SOPS-Vault-Eintrag:
secrets:
- name: selfSignedCaKeyPem
file:
name: ca.key
content: |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
Beispiel: ACME (Let's Encrypt, mit Cloudflare-DNS-Solver)
codesphere:
certIssuer:
type: acme
acme:
server: https://acme-v02.api.letsencrypt.org/directory
eabKeyId: <optional-eab-key-id>
cluster:
certificates:
override:
issuers:
acme:
# DNS Solver configuration (override in your deployment config):
dnsSolver:
cloudflare:
apiTokenSecretRef:
name: acme-solver
key: api-token
solverSecret:
name: acme-solver
data:
api-token: <api-token>
Anforderungen an das SOPS-Vault-Secret für ACME:
- Der EAB-MAC-Key (falls verwendet) muss unter dem Schlüssel
acmeEabMacKeygespeichert werden.
Beispiel SOPS-Vault-Eintrag:
secrets:
- name: acmeEabMacKey
fields:
key: <your-eab-mac-key>
Hinweis:
- Die DNS-Solver-Konfiguration muss als Override in der Deployment-Konfiguration hinzugefügt werden, passend zum jeweiligen DNS-Provider (z. B. Cloudflare, Route53 usw.).
- Für Cloudflare
apiTokenSecretRefundsolverSecretwie oben gezeigt verwenden.
Hinweis:
- Für Self-Signed- und Organization-CA müssen sowohl der Private-Key- als auch der Zertifikats-PEM-Block angegeben werden.
- Bei externen Issuern hängen die Integrationsfelder vom jeweiligen externen CA-Provider ab. Die erforderlichen Felder sind der Dokumentation des jeweiligen Providers zu entnehmen.
Die richtige Option wählen
- Self-Signed: Am einfachsten einzurichten, allerdings muss das Vertrauen auf alle Nutzer/Geräte verteilt werden.
- Organization CA: Empfohlen für Produktion und Enterprise-Umgebungen, nutzt bestehende Vertrauensinfrastruktur.
- External Issuer: Am besten geeignet für automatisierte Zertifikatsverwaltung und cloud-native Workflows.