Risiken
Mit ETCD-Authentifizierung und -Autorisierung Ihr Cluster schützen
Die Wichtigkeit autorisierten Zugriffs auf die ETCD
Die ETCD stellt den sogenannten Key-Value-Store des Clusters dar. Einzig und allein die API benötigt eine Verbindung zum ETCD.
Ein Zugriff auf den ETCD entspricht der Administrations-Autorisierung eines Clusters. Idealerweise hat nur der API-Server authentifizierten als auch autorisierten Zugriff. In AKS wird der ETCD von Azure selbst verwaltet, jedoch ohne genaue Informationen auf welche Art und Weise dies geschieht.
Erhöhung der ETCD-Sicherheit
Um die Sicherheit von ETCD zu erhöhen, sollten die folgenden Flags in der ETCD YAML Konfigurationsdatei gesetzt werden:
--client-cert-auth=true: Ermöglicht die Authentifizierung von Client-Zertifikaten, um sicherzustellen, dass nur Clients mit gültigen Zertifikaten mit ETCD kommunizieren können.
--peer-client-cert-auth=true: Erfordert eine Peer-Authentifizierung mit Client-Zertifikaten für die ETCD-Peer-Kommunikation.
--peer-key-file=<path-to-peer-key>/peer.key: Gibt den Pfad zu der Peer-Key-Datei für ETCD an.
--peer-cert-file=<path-to-peer-cert>/peer.crt: Gibt den Pfad zur Peer-Zertifikatsdatei für ETCD an.
--key-file=<path-to-server-key>/server.key: Gibt den Pfad zur Server-Schlüsseldatei für ETCD an.
--cert-file=<path-to-server-cert>/server.crt: Gibt den Pfad zur Serverzertifikatsdatei für ETCD an.
--trusted-ca-file=<path-to-ca-cert>/ca.crt: Gibt den Pfad zur Datei des vertrauenswürdigen CA-Zertifikats an.
In ähnlicher Weise sollten in der YAML-Konfigurationsdatei des API-Servers die folgenden Flags gesetzt werden:
--etcd-cafile=<path-to-trusted-ca-file>: Gibt den Pfad zu der vertrauenswürdigen CA-Datei an, die für die ETCD-Kommunikation verwendet wird.
--peer-trusted-ca-file=<path-to-peer-trusted-ca-file>: Gibt den Pfad zur Datei der vertrauenswürdigen Peer-CA in der ETCD-Konfiguration an.
--etcd-keyfile=<path-to-apiserver-etcd-client-key>/apiserver-etcd-client.key: Gibt den Pfad zur ETCD-Client-Schlüsseldatei des API-Servers an.
--etcd-certfile=<path-to-apiserver-etcd-client-cert>/apiserver-etcd-client.crt: Gibt den Pfad zur ETCD-Client-Zertifikatsdatei des API-Servers an.
Bedeutung der einzelnen Flaggen
--client-cert-auth=true & --peer-client-cert-auth=true:
Diese Flags erzwingen eine Client-Zertifikat-Authentifizierung und stellen sicher, dass nur authentifizierte und autorisierte Clients und Peers mit ETCD kommunizieren können. Dies hilft, unbefugten Zugriff und mögliche Kompromittierung von Cluster-Statusdaten zu verhindern.
--key-file & --cert-file:
Die Server-Schlüssel- und -Zertifikatsdateien werden zum Aufbau sicherer Kommunikationskanäle verwendet. Sie stellen sicher, dass der ETCD-Server sicher kommuniziert und schützen die Daten während der Übertragung vor Abhören oder Manipulationen.
--peer-key-file & --peer-cert-file:
Diese Dateien werden für die sichere Peer-Kommunikation innerhalb des ETCD-Clusters verwendet. Sie helfen dabei, die Integrität und Vertraulichkeit der zwischen den ETCD-Knoten ausgetauschten Daten zu wahren.
--trusted-ca-file & --peer-trusted-ca-file:
Diese Flags geben die vertrauenswürdigen Zertifizierungsstellen zur Überprüfung der Authentizität von Client- und Peer-Zertifikaten an. Dadurch wird eine zusätzliche Sicherheitsebene geschaffen, indem sichergestellt wird, dass nur von vertrauenswürdigen Zertifizierungsstellen signierte Zertifikate akzeptiert werden.
API-Server-Flags (--etcd-cafile, --etcd-keyfile, --etcd-certfile
):
Diese Flags stellen sicher, dass der API-Server sicher mit dem ETCD-Server kommuniziert und verifizierte und vertrauenswürdige Zertifikate verwendet. Sie verhindern den unbefugten Zugriff auf ETCD-Daten, indem sie sicherstellen, dass nur der API-Server mit den richtigen Anmeldedaten auf ETCD zugreifen kann.