Ich entwickle eine App mit GCP Managed Cloud Run und MongoDB Atlas. Wenn ich für die IP-Whitelist von Atlas eine Verbindung von überall zulasse, funktioniert Cloud Run perfekt mit MongoDB Atlas. Ich möchte die Verbindung jedoch nur für die erforderlichen IPs einschränken, finde jedoch keine ausgehenden IPs von Cloud Run. Gibt es eine Möglichkeit, die ausgehenden IPs zu kennen?

13
daigo 26 Juni 2019 im 04:30

3 Antworten

Beste Antwort

Cloud Run (wie alle skalierbaren serverlosen Produkte) bietet Ihnen keine dedizierten IP-Adressen, von denen bekannt ist, dass sie den ausgehenden Datenverkehr auslösen. Siehe auch: Möglicherweise kann eine statische IP-Adresse für Google Cloud abgerufen werden Funktionen?

3
Doug Stevenson 26 Juni 2019 im 02:27

Bis Cloud Run Cloud NAT oder Serverless VPC Access unterstützt, wird dies leider nicht unterstützt.

Wie von @Steren erwähnt, können Sie einen SOCKS-Proxy erstellen, indem Sie einen ssh - Client ausführen, der den Datenverkehr über eine GCE-VM-Instanz mit einer statischen externen IP-Adresse weiterleitet.

Ich habe hier darüber gebloggt: https://ahmet.im/blog/cloud- run-static-ip / und eine schrittweise Anleitung mit einem funktionierenden Beispiel finden Sie unter: https://github.com/ahmetb/cloud-run-static-outbound-ip

3
AhmetB - Google 24 Juli 2019 im 20:37

Cloud Run-Dienste erhalten keine statischen IPs.

Eine Lösung besteht darin, Ihre ausgehenden Anforderungen über einen Proxy mit einer statischen IP zu senden.

Zum Beispiel in Python:

import requests
import sys
from flask import Flask
import os

app = Flask(__name__)

@app.route("/")
def hello():

    proxy = os.environ.get('PROXY')
    proxyDict = { 
                "http": proxy,
                "https": proxy
                }
    r = requests.get('http://ifconfig.me/ip', proxies=proxyDict)
    return 'You connected from IP address: ' + r.text

Mit der Umgebungsvariablen PROXY, die die IP oder URL Ihres Proxys enthält (siehe hier zu setze eine Umgebungsvariable)

Für diesen Proxy können Sie entweder:

  • Erstellen Sie es selbst, beispielsweise mit einer Compute Engine-VM mit einer statischen öffentlichen IP-Adresse, auf der squid ausgeführt wird passt wahrscheinlich in die kostenlose Stufe der Compute Engine.
  • Verwenden Sie einen Dienst, der einen Proxy mit statischer IP-Adresse anbietet, z. B. https://www.quotaguard.com/ statische IP /, die bei 19 $ / m beginnt

Ich persönlich habe diese zweite Lösung verwendet. Der Dienst gibt mir eine URL mit einem Benutzernamen und einem Passwort, die ich dann mit dem obigen Code als Proxy verwende.

2
Steren 11 Juli 2019 im 23:16