Microservices über IP-Filter sichern
IP-Filter können sowohl für Services als auch für Management-Endpunkte der Services eingerichtet werden.
IP-Filter für Services
Sie können konfigurieren, welche eingehenden IP-Adressen auf Services zugreifen dürfen.
Dabei gelten folgende Regeln:
-
IP-Filter für den Zugriff auf Services in der Konfigurationsdatei application-prod.yml gelten für alle Services, die nicht selbst konfiguriert werden.
-
IP-Filter für einzelne Services in den entsprechenden Konfigurationsdateien <service>-prod.yml gelten nur dort. IP-Filter der Konfigurationsdatei application-prod.yml gelten dann dort nicht.
-
Der Zugriff auf den Service 'gateway' muss in der Regel von allen IP-Adressen erlaubt sein. Wenn IP-Filter in der Konfigurationsdatei application-prod.yml eingerichtet sind, dann muss die Konfigurationsdatei gateway-prod.yml alle Zugriffe erlauben:
trusted.ipPattern: '.*'
. Dieses ist die Standardeinstellung bei Neuinstallationen. -
Bei der Installation von yuuvis® RAD service-manager wird ein IP-Filter für den Zugriff auf alle Services angegeben und in die Konfigurationsdatei application-prod.yml eingetragen.
-
Für den Aufruf durch eine Administrator kann es notwendig sein, der entsprechenden IP-Adresse den Zugriff auf den Service 'admin' in der Konfigurationsdatei admin-prod.yml zu erlauben.
Schritte, mit denen Sie einen IP-Filter für die Services konfigurieren:
- Öffnen Sie die Datei application-prod.yml aus dem Verzeichnis …\services\service_manager\config\.
-
Ordnen Sie dem Parameter
trusted.ipPattern
die gewünschten IP-Adressen zu. -
Für einzelne Services erstellen Sie IP-Filter analog über die Konfigurationsdateien <service>-prod.yml. Ausschließlich diese Filter gelten dort.
- Speichern Sie die Konfigurationsdatei und starten Sie yuuvis® RAD service-manager neu.
Bei einer Liste von Adressen müssen IP-Adressen immer in Klammern gesetzt werden. Das Trennzeichen zwischen Adressen ist das Pipe-Zeichen '|'.
Da es sich um eine Regular Expression handelt, sollten Punkte in IP-Adressen mit '\' maskiert werden, Doppelpunkte in IPv6-Adressen nicht. Der Lesbarkeit halber kann die Maskierung aber auch weggelassen werden.
Regular Expressions können beispielsweise hier auf ihre Richtigkeit überprüft werden: https://regex101.com/
Beispiele
Erlaubter Zugriff | Beispiel-Konfiguration |
---|---|
Von allen IP-Adressen | .* |
Von angegebenen Adressen | (10\.10\.10\.10)|(10\.10\.10\.11)| ... (10\.10\.10\.1x) |
Von Adressbereichen | (10\.10.*)|(192\.168\.[0-9]{1,3}\.[0-9]{1,3})|(172\.[16-32]\.[0-9]{1,3}\.[0-9]{1,3}) |
Falls IP-Filter für die Services konfiguriert werden, dann müssen in der Regel folgende Adressen erlaubt werden:
- 127.0.0.1 und 0:0:0:0:0:0:0:1 (localhost-Repräsentation in IPv4 und IPv6)
Die Microservices werden mit der IP-Adresse '127.0.0.1' installiert. Diese Adresse muss angegeben werden, damit sie miteinander verbunden sind. Falls in Konfigurationsdateien von Microservices IP-Adressen geändert wurden, dann müssen auch diese erlaubt werden.
- Öffentliche IP-Adressen aller Microservice-Installationen
- Öffentliche IP-Adressen aller yuuvis® RAD server
- Öffentliche IP-Adresse aller Elasticsearch-Server
IP-Filter für Management-Endpunkte
Sie können ebenfalls konfigurieren, welche eingehenden IP-Adressen auf die Management-Endpunkte info, health, env, loggers und metrics zugreifen dürfen. Die Standardeinstellung erlaubt Zugriff von allen IP-Adressen: management.trusted.ipPattern: '.*'
Die Konfiguration erfolgt analog zur Konfiguration der IP-Filter für Services in der Konfigurationsdatei application-prod.yml über den Parameter management.trusted.ipPattern.
Den Zugriff auf die Management-Endpunkte für einzelne Services konfigurieren Sie über die jeweilige Datei …\services\service-manager\config\<service>-prod.yml. Diese haben Vorrang vor Konfigurationen über die application-prod.yml.
Falls Management-Filter konfiguriert sind, dann muss die Adresse von yuuvis® RAD services-admin erlaubt werden.
Der Zugriff auf die Management-Endpunkte ist nur erlaubt, wenn auch der Zugriff auf die Services erlaubt ist.