Compute Engine VMとして実行されているDBサーバーと、CloudRunで実行されているAPIがあります。どちらも同じプロジェクトの一部です。 DB VMにCloudRunコードからのみアクセスできるようにしたい。
ファイアウォールには、プロジェクト内のすべてのマシンに適用される「default-allow-internal」ルールがあるため、最初はこれで問題ないと思いました。しかし、私はまだ接続障害を抱えていました。
次に、サービスアカウントを対象とし、サービスアカウントからの接続を許可する新しい入力ルールを追加してみました。これもうまくいきませんでした。
DB VMが機能し、ファイアウォールルールが機能し、すべてが期待どおりに機能したことを確認するためだけに、個人IPからの接続を許可するようにルールを変更しました。
最後に、「ソースタグ」によるフィルタリングを調べましたが、オプションを選択できず、CloudRunインスタンスにソースタグを追加できないようでした。
DBへのアクセスを制限するという目標を達成することは可能ですかVM Cloud Runマシンからの着信接続のみを許可する)?
クラウド実行(完全に管理された)サービスは、ホワイトリストに登録される可能性のある静的IPを取得しません。さらに、ドキュメントをご覧ください サービスはまだサポートされていません :
次の表に、Cloud Runでまだサポートされていないサービス(完全に管理されている)を示します。 GoogleCloud上のCloudRun for Anthosは、Google KubernetesEngineが使用できるすべてのサービスを使用できることに注意してください。
したがって、ご覧のとおり、Cloud Run(完全に管理されている)で実行されているサービスとVPCネットワークを接続する簡単な方法はありません。
Cloud Run(完全に管理されている)でサービスの外部IPを取得するためのいくつかの回避策:
gCEを介してトラフィックをルーティングするsshクライアントを実行してSOCKSプロキシを作成しますVMこのような静的外部IPアドレスを持つインスタンス 例
静的IPを持つプロキシを介してCloudRun(完全に管理されている)からアウトバウンドリクエストを送信します。例:以下の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
プロキシのIPまたはURLを含むPROXY
environemnt変数を使用します(ここを参照してください 環境変数を設定 )
このプロキシの場合、次のいずれかを実行できます。
[〜#〜]編集[〜#〜]Google公開課題追跡システムをご覧ください 機能リクエスト お気軽に参加、コメント、進行状況の追跡。