Inhaltsverzeichnis
Da Secrets unabhängig von den Pods erstellt werden können, die sie verwenden, besteht ein geringeres Risiko, dass das Secret während des Workflows zum Erstellen, Anzeigen und Bearbeiten von Pods offengelegt wird. Kubernetes und Anwendungen, die in Ihrem Cluster ausgeführt werden, können mit Secrets auch zusätzliche Vorsichtsmaßnahmen treffen, z. Vermeiden, dass geheime Daten in nichtflüchtigen Speicher geschrieben werden. Mounten Sie Hostpfade oder benannte Volumes, die als Unteroptionen für einen Dienst angegeben sind.
Die Kubernetes-API überprüft, ob die erforderlichen Schlüssel für ein Geheimnis dieses Typs festgelegt sind. Wenn Sie diese Art von Secrets mithilfe eines Manifests erstellen, überprüft der API-Server, ob der erwartete Schlüssel im Datenfeld vorhanden ist, und er überprüft, ob der bereitgestellte Wert als gültiges JSON geparst werden kann. Der API-Server überprüft nicht, ob JSON tatsächlich eine Docker-Konfigurationsdatei ist.
- Keycloak verfügt über eine integrierte Unterstützung für die Verbindung zu bestehenden LDAP- oder Active Directory-Servern.
- Selbst wenn eine einzelne App die Macht der Secrets beurteilen kann, mit denen sie voraussichtlich interagieren wird, können andere Apps innerhalb desselben Namespace diese Annahmen ungültig machen.
- Nachdem Sie den Schlüssel bestellt haben, wird eine Benachrichtigung an das Unternehmen gesendet, mit dem Sie sich verbinden, und das empfangende Unternehmen kann den Schlüssel entweder akzeptieren oder ablehnen.
Dieses Beispiel zeigt ein benanntes Volume, das vom Webdienst verwendet wird, und einen für einen einzelnen Dienst definierten Bind-Mount. Der db-Dienst verwendet auch ein benanntes Volume namens dbdata , definiert es jedoch unter Verwendung des alten Zeichenfolgenformats zum Mounten eines benannten Volumes. Benannte Volumes müssen wie gezeigt unter dem Volume-Schlüssel der obersten Ebene aufgeführt werden. Eine Funktion, die von benutzerdefinierten Netzwerken nicht unterstützt wird und mit der Sie umgehen können, ist die gemeinsame Nutzung von Umgebungsvariablen zwischen Containern. Sie können jedoch andere Mechanismen wie Volumes verwenden, um Umgebungsvariablen kontrollierter zwischen Containern zu teilen.
Befehl
Ein Bootstrap-Token-Secret kann erstellt werden, indem der Secrettype explizit auf bootstrap.kubernetes.io/token angegeben wird. Diese Art von Secret ist für Token konzipiert, die während des Node-Bootstrap-Prozesses verwendet werden. Es speichert Token, die zum Signieren bekannter ConfigMaps verwendet werden. Stellen Sie sich ein Programm vor, das HTTP-Anforderungen verarbeiten, eine komplexe Geschäftslogik ausführen und dann einige Nachrichten mit einem HMAC signieren muss. Da es sich um eine komplexe Anwendungslogik handelt, kann es auf dem Server zu einem unbemerkten Exploit zum Lesen von Remote-Dateien kommen, der den privaten Schlüssel einem Angreifer zugänglich machen könnte.
Containername
Der Secret-Typ wird verwendet, um die programmatische Handhabung der Secret-Daten zu erleichtern. Verwenden Sie envFrom, um alle Daten des Geheimnisses als Container-Umgebungsvariablen zu definieren. Der Schlüssel aus dem Secret wird im Pod zum Umgebungsvariablennamen. Wenn Sie Container-Images aus einem privaten Repository abrufen möchten, benötigen Sie eine Möglichkeit für das Kubelet auf jedem Knoten, sich bei diesem Repository zu authentifizieren. Sie können Image-Pull-Secrets konfigurieren, um dies zu ermöglichen.
SvKMS ist eine Softwarelösung, die vom Endbenutzer installiert wird. KMaaS ist vollständig Cloud-basiert – es ist ein echtes Key Management-as-a-Service, bei dem nichts gewartet werden muss. Der Typ kubernetes.io/dockerconfigjson dient zum Speichern eines serialisierten JSON, das denselben Formatregeln folgt wie die Datei ~/.docker/config.json, die ein neues Format für ~/.dockercfg ist. Bei Verwendung dieses Secret-Typs muss das Datenfeld des Secret-Objekts einen .dockerconfigjson-Schlüssel enthalten, in dem der Inhalt für die Datei ~/.docker/config.json als base64-codierter String bereitgestellt wird. Das Kubelet hält einen Cache der aktuellen Schlüssel und Werte für die Geheimnisse, die in Volumes für Pods auf diesem Knoten verwendet werden. Sie können konfigurieren, wie das Kubelet Änderungen an den zwischengespeicherten Werten erkennt.
Daher muss ein Secret vor allen Pods erstellt werden, die davon abhängen. Sie können ein Geräte-Plugin verwenden, um knotenlokale Verschlüsselungshardware für einen bestimmten Pod verfügbar zu machen. Sie können beispielsweise vertrauenswürdige Pods auf Knoten planen, schlüsselnotdienst Duisburg die ein vertrauenswürdiges Plattformmodul bereitstellen, das out-of-band konfiguriert ist. Aktivieren oder konfigurieren Sie RBAC-Regeln, die das Lesen und Schreiben des Geheimnisses einschränken. Beachten Sie, dass Geheimnisse implizit von jedem mit der Berechtigung zum Erstellen eines Pods abgerufen werden können.