Shinyproxy: Bereitstellung der Digitalocean-App-Plattform

Erstellt am 15. Jan. 2021  ·  15Kommentare  ·  Quelle: openanalytics/shinyproxy

Hallo zusammen!

Hat jemand Anregungen/Tipps zur Digitalocean App-Plattform? (https://www.digitalocean.com/products/app-platform/).

Soweit ich weiß, läuft dies mit Kubernetes im Hintergrund. Daher habe ich mich gefragt, ob ich dort shinyproxy kann und wenn ja, was wäre die am besten geeignete Konfiguration.

Danke im Voraus!
Felipe

question

Alle 15 Kommentare

Hi

Ich glaube, wir haben keine Erfahrung mit dieser Plattform. Aber ich denke, wenn die Kubernetes-API für die Anwendungen verfügbar ist, die sie ausführen, sollte es möglich sein, ShinyProxy darauf zu verwenden.

Konnten Sie das zwischenzeitlich ausprobieren? Wir sind natürlich sehr gespannt, ob Sie mit ShinyProxy auf dieser Plattform erfolgreich waren.

Am Ende habe ich alles zu AWS verschoben - aber ich habe ein anderes Testprojekt, das ich ausprobieren werde. Ich werde die Updates hier posten. Danke für Ihre Antwort!

@fmmattioni Sie können Ihr Dockerfile verwenden und dieser Vorlage folgen: https://github.com/digitalocean/sample-dockerfile Es ist ziemlich einfach.

Hallo @fmmationi

Wenn möglich würde ich immer empfehlen, unser offizielles Docker-Image zu verwenden . Dieses Image hat einige Sicherheitsverbesserungen (zB Ausführen von ShinyProxy unter einem Nicht-Root-Benutzer).

Hm, guter Punkt! Das wusste ich nicht! Danke für die Warnung!

Nur eine Frage: Ich habe eine ältere Version von Shinyproxy verwendet, da die neueste Version nicht mit AWS Cognito-Authentifizierung funktioniert. Kann ich diese ältere Version auch einfach über das Tag dort greifen - oder gibt es diese Sicherheitsverbesserungen nur in der neuesten Version?

Hallo @fmmationi

Die Sicherheitsverbesserungen sind in jeder Version enthalten.

Sie haben erwähnt, dass die neueste Version von ShinyProxy nicht mit AWS Cognito funktioniert. Uns sind keine Probleme mit OIDC in der neuesten Version (2.4.3) bekannt. Könnten Sie eine neue Ausgabe mit weiteren Details dazu eröffnen? (zB welches Verhalten Sie erleben, protokollierte Fehler usw.). Wir möchten wirklich, dass ShinyProxy nahtlos mit jedem Auth-Anbieter zusammenarbeitet. Wenn es also einen Fehler gibt, möchten wir ihn wirklich lösen.

Nur um sicherzustellen, dass ich es bekomme, sollte ich das in meinem Dockerfile haben, richtig?

FROM openanalytics/shinyproxy:latest

COPY application.yml /opt/shinyproxy/application.yml

WORKDIR /opt/shinyproxy/
CMD ["java", "-jar", "/opt/shinyproxy/shinyproxy.jar"]

Was das Problem mit AWS Cognito angeht, erinnere ich mich, dass die Protokolle beim letzten Einrichten erwähnt haben, dass die Option server.useForwardHeaders in der neuesten Version immer noch nicht funktionierte. Ich erinnere mich jedoch nicht, ob dies 2.4.3 war. Lassen Sie mich einen kurzen Test durchführen, und ich werde Sie wissen lassen.

Danke für die Antworten!

Ja, das ist eine richtige Docker-Datei für die Verwendung mit ShinyProxy, obwohl Sie sie sogar kürzer machen können:

FROM openanalytics/shinyproxy:latest

COPY application.yml /etc/shinyproxy/application.yml

Wenn Sie die Direktiven WORKDIR oder CMD nicht angeben, übernimmt Docker sie aus dem Basis-Image. Unser Basis-Image gibt /etc/shinyproxy als Arbeitsverzeichnis an, sodass Sie die Konfigurationsdatei dort ablegen können.

Bezüglich der Eigenschaft server.useForwardHeaders . Sie haben wahrscheinlich die folgende Warnmeldung erhalten:

WARNING: Using server.use-forward-headers will not work in this ShinyProxy release. See https://shinyproxy.io/documentation/security/#https-ssl--tls on how to change your configuration.

Ab 2.4.0 hat sich die Eigenschaft, die die Weiterleitungsheader konfiguriert, geändert, aber die Weiterleitungsheader funktionieren weiterhin. Sie müssen nur die folgende Konfiguration verwenden:

server:
  forward-headers-strategy: native

anstelle des alten Eigentums.
Mir ist aufgefallen, dass die Warnmeldung eigentlich auf https://shinyproxy.io/documentation/security/#forward -headers verweisen sollte. Ich werde das für die nächste Version ändern.

Das ist genau die Warnung, die ich bekommen habe!

Es tut mir leid, ich habe mir nicht einmal die Mühe gemacht, die Seite genauer zu lesen... Ich werde es noch einmal testen - wenn ich irgendwelche Probleme habe, werde ich es euch wissen lassen!

Dankeschön!

Kurzes Update: Die Eigenschaft server.forward-headers-strategy funktioniert tatsächlich ordnungsgemäß mit AWS Cognito! Vielen Dank, dass Sie mich in die richtige Richtung weisen!

Hey @LEDfan , während ich meine neue Konfiguration wie vorgeschlagen mit dem openanalytics/shinyproxy Docker-Image eingerichtet habe, ist mir aufgefallen, dass ich immer die folgende Fehlermeldung bekomme:

image

Das ist mein Dockerfile:

FROM openanalytics/shinyproxy:latest

COPY application.yml /etc/shinyproxy/application.yml

Wenn ich jedoch mein Dockerfile in Folgendes ändere:

FROM openjdk:8-jre

RUN mkdir -p /opt/shinyproxy/
RUN wget https://www.shinyproxy.io/downloads/shinyproxy-2.4.3.jar -O /opt/shinyproxy/shinyproxy.jar
COPY application.yml /opt/shinyproxy/application.yml

WORKDIR /opt/shinyproxy/
CMD ["java", "-jar", "/opt/shinyproxy/shinyproxy.jar"]

alles funktioniert wie erwartet.

Gibt es etwas, das ich in application.yml ändern oder eine bestimmte Einstellung in nginx ändern sollte, wenn ich das erste Dockerfile verwende?

Lassen Sie mich wissen, ob ich eine neue Ausgabe eröffnen oder weitere Details angeben soll.

Hallo @fmmationi

Ich habe vergessen zu erwähnen, dass unser Image standardmäßig keinen Zugriff auf den Docker-Socket hat, da es einen Nicht-Root-Benutzer verwendet.
Sie müssen das ShinyProxy-Docker-Image mit dem folgenden Befehl ausführen:

docker run  -v /var/run/docker.sock:/var/run/docker.sock:ro --group-add $(getent group docker | cut -d: -f3) -p 8080:8080 openanalytics/shinyproxy

Der Teil $(getent group docker | cut -d: -f3) bestimmt die Gruppen-ID des Dockers. Der Parameter --group-add stellt sicher, dass der Benutzer, der im ShinyProxy-Docker-Container ausgeführt wird, Teil dieser Gruppe ist (dh der Docker-Gruppe) und folglich hat der ShinyProxy-Docker-Container Zugriff auf den Docker-Socket.

Stellen Sie außerdem sicher, dass Sie das Attribut proxy.docker.url nicht gesetzt haben. Nur wenn Sie es nicht angeben, greift ShinyProxy auf den Docker-Socket und nicht auf einen Docker-HTTP-Port zu.

Viel Glück!

Süss! Vielen Dank für die ausführlichen Infos! Ich kann bestätigen, dass das jetzt funktioniert.

Dankeschön!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen