Microservices über IP-Filter sichern

yuuvis® RAD 8.x »

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. Die Standardeinstellung erlaubt Zugriff von allen IP-Adressen: trusted.ipPattern: '.*'

  • 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 wieder alle Zugriffe erlauben: trusted.ipPattern: '.*'

  • Bei der Installation von yuuvis® RAD service-manager wird ein IP-Filter für den Zugriff über den Service 'dms-sidecar' auf yuuvis® RAD core-service in der Konfigurationsdatei dms-prod.yml eingerichtet. IP-Filter der Konfigurationsdatei application-prod.yml gelten hier ebenfalls nicht.

Schritte, mit denen Sie einen IP-Filter für die Services konfigurieren:

  1. Öffnen Sie die Datei application-prod.yml aus dem Verzeichnis …\services\service_manager\config\.
  2. Ordnen Sie dem Parameter trusted.ipPattern die gewünschten IP-Adressen zu.

  3. Für einzelne Services erstellen Sie IP-Filter analog über die Konfigurationsdateien <service>-prod.yml. Ausschließlich diese Filter gelten dort.

  4. 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.

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.