Verbinde dich mit dem Manager, REST-API-Server

Verbinde dich mit der Benutzeroberfläche

Öffne ein Browserfenster und verbinde dich mit dem Manager über HTTPS. Nachdem die EULA akzeptiert wurde, kann der Benutzer auf die Benutzeroberfläche zugreifen.

Je nach gewählter Implementierungsmethode wird die Manager-Adresse wie folgt lauten.

  • Docker

  • Kubernetes ohne LoadBalancer oder Ingress

  • LoadBalancer oder Ingress konfiguriert

https://<manager_host_ip>:8443
https://<node_host_ip>:<NodePort>
https://<FQDN|IP>/

Navigation

Du kannst SUSE® Security über die Konsole oder die REST-API verwalten.

Siehe unten für Fälle, in denen deine Unternehmensfirewall Port 8443 blockiert.

Wenn dein Chrome-Browser das SUSE® Security selbstsignierte Zertifikat blockiert, siehe den nächsten Abschnitt zum Hochladen von Chrome-Zertifikaten.

Verbinde dich mit dem REST-API-Server

Alle Operationen in SUSE® Security können über die REST-API anstelle der Konsole aufgerufen werden. Der REST-API-Server ist Teil des Controller/All-in-one Containers. Für Details zur REST-API siehe bitte den Abschnitt über Workflow und Automation.

Standardbenutzername und -passwort

admin:admin

Nach erfolgreichem Login sollte der Admin-Benutzer das Konto mit einem sichereren Passwort aktualisieren.

Zusätzliche Benutzer erstellen

Neue Benutzer können über das Menü Einstellungen → Benutzer & Rollen hinzugefügt werden. Es gibt vordefinierte globale Rollen in SUSE® Security:

  • Admin. Kann alle Aktionen ausführen, außer föderierte Richtlinien.

  • Föderierter Administrator. Kann alle Aktionen ausführen, einschließlich der Einrichtung von Master-/Remote-Clustern und föderierten Richtlinien (Regeln). Nur sichtbar, wenn Multi-Cluster aktiviert ist.

  • Nur Ansicht (Leser). Keine Aktionen erlaubt, nur Ansicht.

  • CI-Integration (ciops). Kann CI/CD-Scanning-Integrationsaufgaben wie Bild-Scanning durchführen. Diese Benutzerrolle wird für den Einsatz in Scanning-Plugins in der Build-Phase wie Jenkins, Bamboo usw. und für die Verwendung in den REST-API-Aufrufen empfohlen. Sie ist auf Scanfunktionen beschränkt und kann keine Aktionen in der Konsole durchführen.

Benutzer können mithilfe der erweiterten Einstellungen auf einen oder mehrere Namespaces beschränkt werden.

Siehe den Abschnitt Benutzer & Rollen für die erweiterte Benutzerverwaltung und die Erstellung benutzerdefinierter Rollen.

Einstellung für die Verbindungszeitüberschreitung

Du kannst im oberen rechten Bereich der Konsole unter 'Mein Profil' (→ Sitzungstimeout) die Anzahl der Sekunden einstellen, nach denen die Konsole automatisch abgemeldet wird. Der Standardwert beträgt 5 Minuten und das Maximum 3600 Sekunden (1 Stunde).

HTTP für den Manager aktivieren

Um HTTPS zu deaktivieren und den HTTP-Zugriff zu aktivieren, füge dies im Manager- oder All-in-one-YAML-Bereich in den Umgebungsvariablen hinzu. Zum Beispiel in Kubernetes:

- name: MANAGER_SSL
  value: "off"

Für OpenShift entferne auch diese Einstellung aus dem Route-Abschnitt der YAML-Datei:

tls:
    termination: passthrough

Dies ist nützlich, wenn der Manager hinter einem Lastenausgleich steht.

Zugriff vom Unternehmensnetzwerk aktivieren, das 8443 blockiert

Wenn dein Unternehmensnetzwerk keinen Zugriff auf Port 8443 zur Manager-Konsole erlaubt, kannst du einen Ingress-Dienst erstellen, um ihn zuzuordnen und den Zugriff zu ermöglichen.

Die SUSE® Security UI-Konsole läuft als Nicht-Root-Benutzer im Container, weshalb sie nicht auf einem Port unter 1024 lauschen kann. Deshalb kann der Port nicht auf 443 geändert werden.

Wenn du versuchst, von deinem Unternehmensnetzwerk auf die Konsole zuzugreifen, … Hier ist der Weg, den ClusterIP-Dienst und die Ingress-HTTPS-Umleitung zu verwenden, um dies zu erreichen.

Zuerst erstelle ein Zertifikat für die HTTPS-Terminierung. Hier ein Beispiel:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=mycloud.domain.com" kubectl create secret tls neuvector-ingress-tls -n neuvector --key="tls.key" --cert="tls.crt"

Verwende dann die folgende YAML-Datei, um den Port 443 freizugeben, der die HTTPS-Verbindung zum Manager umleitet.

apiVersion: v1
kind: Service
metadata:
  name: neuvector-cluster-webui
  namespace: neuvector
spec:
  ports:
  - port: 443
    targetPort: 8443
    protocol: TCP
  type: ClusterIP
  selector:
    app: neuvector-manager-pod

---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: neuvector-ingress-webui
  namespace: neuvector
  annotations:
    ingress.mycloud.net/ssl-services: ssl-service=neuvector-cluster-webui
spec:
  tls:
  - hosts:
    - cloud.neuvector.com
    secretName: neuvector-ingress-tls
  rules:
  - host: cloud.neuvector.com
    http:
      paths:
      - path:
        backend:
          serviceName: neuvector-cluster-webui
          servicePort: 443

Du musst die Annotation für die Ingress-Adresse von ingress.mycloud.net auf deine entsprechende Adresse ändern.

Dieses Beispiel verwendet die URL cloud.neuvector.com. Nachdem der Ingress-Dienst erstellt wurde, kannst du seine externe IP finden. Anschließend kannst du die Hosts-Datei so konfigurieren, dass cloud.neuvector.com auf diese IP zeigt. Danach solltest du in der Lage sein, https://cloud.neuvector.com (die URL, die du verwenden möchtest) aufzurufen.

Verwendung von SSL-Passthrough anstelle von Umleitung

Um TLS/SSL-Passthrough anstelle des oben genannten Umleitungsbeispiels zu verwenden (unterstützt von einigen Ingress-Controllern wie nginx), stelle sicher, dass der Ingress-Controller korrekt für Passthrough konfiguriert ist und die entsprechende Annotation zum Ingress hinzugefügt wurde. Beispiel:

annotations:
  ingress.kubernetes.io/ssl-passthrough: "true"

Ersetzen der SUSE® Security selbstsignierten Zertifikate

Bitte sieh dir den nächsten Abschnitt Ersetzen der selbstsignierten Zertifikate für Details an. Das Zertifikat muss sowohl in den Manager- als auch in den Controller/Allinone-YAML-Dateien ersetzt werden.

Konfiguration des AWS ALB mit dem Zertifikat-ARN

Hier ist eine Beispiel-Ingress-Konfiguration, die den AWS-Lastenausgleich mit dem Zertifikat-ARN (tatsächlicher ARN anonymisiert) verwendet.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    # https://kubernetes_sigs.github.io/aws_alb_ingress_controller/guide/ingress/annotation/#healthcheck_path
    alb.ingress.kubernetes.io/backend_protocol: HTTPS
    alb.ingress.kubernetes.io/certificate_arn: arn:aws:acm:us_west_2:596810101010:certificate/380b6abc_1234_408d_axyz_651710101010
    alb.ingress.kubernetes.io/healthcheck_path: /
    alb.ingress.kubernetes.io/healthcheck_protocol: HTTPS
    alb.ingress.kubernetes.io/listen_ports: '[{"HTTPS":443}]'
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/success-codes: "301"
    alb.ingress.kubernetes.io/target-type: instance
    external-dns.alpha.kubernetes.io/hostname: eks.neuvector.com
    kubernetes.io/ingress.class: alb
  labels:
    app: neuvector-webui-ingress
  name: neuvector-webui-ingress
  namespace: neuvector
spec:
  tls:
  - hosts:
    - eks.neuvector.com
  rules:
  - http:
      paths:
      - backend:
          serviceName: neuvector-service-webui
          servicePort: 8443
        path: /*