Skip to main content

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.


Orientieren Sie sich an folgenden Maßnahmen: