Docker Container mit TPM2
Hinweis: Im Containerbetrieb (z.B. Docker, Kubernetes) ist die Lizensierung mit Online-Synchronisierung erforderlich, wenn dieser ohne TPM2-Modul betrieben wird.
Vorteile des TPM2-Moduls
- Unabhängigkeit von Internetverbindungen: Container ohne TPM2 benötigen eine regelmäßige Internetverbindung zur Lizenzüberprüfung. Mit TPM2 ist dies nicht erforderlich, was besonders für Linux-Container gilt. Windows-Container sind von dieser Einschränkung nicht betroffen.
- Sicherheit: Das TPM dient ausschließlich der sicheren Speicherung der Lizenzinformationen und ist von den Lizenzierungsverfahren (online/offline) unabhängig.
Mehrere Container Ein einzelnes TPM-Modul ermöglicht den Betrieb mehrerer lizenzierter OPC Router Container auf einem einzigen Linux-Host
Vorbereitungen für den TPM-Einsatz
- Linux Host mit TPM: Stellen Sie sicher, dass der Linux-Host über ein TPM verfügt.
- Physikalische Hosts: Ein TPM 2-Chip muss physisch vorhanden sein.
- Hyper-V VMs: Die TPM-Nutzung wird über VM-Einstellungen aktiviert.
- Wago-Edge-Devices: Die Aktivierung erfolgt im BIOS unter
Bios => Advanced => Trusted Computing => Security Device Support => Enable
.
Überprüfung der TPM-Bereitschaft
Die Verfügbarkeit und Funktionalität des TPM kann mit dem Befehl ls /dev | grep tpm
im Terminal überprüft werden. Eine erfolgreiche Ausgabe bestätigt die Einsatzbereitschaft des TPM.
Erfolgreich, wenn tpm ausgegeben wird:
Starten eines Docker-Containers mit TPM
Um einen OPC Router Container mit TPM-Unterstützung zu starten, sind spezifische Docker-Befehle notwendig. Wichtig dabei ist die korrekte Zuweisung des Hostnamens (--hostname
), der nicht nur als Identität dient, sondern auch konsistent bleiben muss, um Lizenzprobleme zu vermeiden. Die Bindung des TPM-Moduls an den Container erfolgt über --device /dev/tpmrm0:/dev/tpmrm0
. Die Speicherung der Schlüsseldateien und deren Pfad (-v /data:/data
) ist essentiell für die Lizenzverwaltung und -sicherheit.
Docker mit TPM starten
Beispiel, um einen OPC Router Docker Container mit TPM zu starten:
docker run -d \
--hostname opc-router1 \
--device /dev/tpmrm0:/dev/tpmrm0 \
-v /data:/data \
-e "INRAY_RSA_STORAGE=TPM" \
<... wie im Handbuch ...>
Hostname
--hostname opc-router1
Wird von dem Container als Identität auf dem Host genutzt. Der Hostname muss für einen Container gleich bleiben, ansonsten verliert er seine Identität. Jeder Container sollte einen eigenen, eindeutigen Hostname bekommen.
Data volume
-v /data:/data
Gibt an, wo auf dem Host die Schlüsseldateien des TPMs gespeichert werden. Für jeden --hostname wird ein eigener Ordner angelegt. Wird ein Ordner gelöscht oder kann vom Container nicht erreicht werden, dann geht auch dessen Lizenz verloren.
Technische Erklärung: Der Speicherplatz des TPM ist extrem eingeschränkt. Deswegen muss so viel wie möglich auf die Festplatte ausgelagert werden. Die Dateien können nur von dem physikalischen TPM gelesen werden, das die Dateien erstellt hat. Es sind also keine weiteren Schutzmaßnahmen für die Dateien nötig.
Device mount
--device /dev/tpmrm0:/dev/tpmrm0
Hiermit darf der Container den TPM-Resource-Manager des Hosts mit benutzen.
Hinweis:
-v /dev/tpmrm0:/dev/tpmrm0
erweckt den Eindruck, es könnte auch funktionieren. Tut es aber nicht. Der TPMRM muss immer mit --device
übergeben werden.
Umgebungsvariable zum aktivieren des TMP-Moduls
-e "INRAY_RSA_STORAGE=TPM"
Damit wird der Container gezwungen das TPM für die Lizenzierung zu nutzen.
Überprüfung:
- Wenn der Container läuft, ist sowohl die online wie auch die offline Lizensierung möglich.
- Der Container sollte keine Internet-Verbindung mehr verlangen.
- Durch einen Container- oder Host-Neustart soll die Lizenz weiterhin erhalten bleiben.
- In der Lizenzierungsübersicht sollte als Trustlevel 2 angeben sein
(möglicherweise müssen Sie für die Anzeige zuvor den Expertenmodus in den Einstellungen aktivieren)\