2017-05-17 9 views
2

私はアプリケーションエンジンに多くのマイクロサービスを内蔵しています。しかし、デフォルトでは、アプリエンジンはservice-project.appspot.comドメインを一般公開しており、誰でもhttpまたはhttpsでアクセスできます。 特定のIPアドレスに対してのみアクセスを制限する方法はありますか?Google App Engineの柔軟な環境へのパブリックアクセスを制限するにはどうすればよいですか?

私が考えることができる簡単な方法は、アプリケーションコードのソースIPアドレスを確認することです。 または、ソースIPアドレスをチェックするnginx設定でカスタムドッカーイメージを作成できます。しかし、アクセス制御は実際にはアプリケーションから独立しているため、これらはきれいな解決策ではなく、静的IPアドレスをコンテナ内にハードコードしたくないためです。

アプリエンジンのファイアウォールルールを設定する方法があると仮定しましたが、見つかりませんでした。アイデンティティアウェアプロキシは別の選択肢のようですが、アプリエンジンのフレックスには使用できません。

答えて

1

私はこれが寒さの心地よさだと知っていますが、私たちはApp EngineのフレックスサポートをIAPに再度有効にしています。しかし、それはほんの数日以上になるだろう。

https://cloud.google.com/appengine/docs/flexible/java/migrating#usersには、IPのハードコードよりも美味しいオプションがあります。 appspot.comトラフィックがCloud HTTP Load Balancerを経由しているため、GCEのファイアウォールルールを使用できないため、GCEインスタンスファイアウォールはロードバランサのIPのみを認識します。 あなたのアプリ内のIPを確認したい場合は、https://cloud.google.com/compute/docs/load-balancing/http/#componentsの説明に従ってX-Forwarded-Forを使用してください。

希望すると便利です。 - マチュー、クラウドIAPエンジニア

+0

お返事ありがとうございます。私はX-Forwarded-Forを使ってクライアントのIPアドレスを取得しようとしていましたが、10.128.16.0/20のような内部IPアドレスだけを許可していました。 しかし、 'http:// xxx.appspot.com'を使った内部呼び出しのクライアントIPアドレスも外部IPアドレスです。だから私はそれが外側か内側かを知ることができませんでした。このドキュメントに従って 'appspot.com'ドメイン名を使用すると、ローカルにルーティングする必要があります。 https://cloud.google.com/appengine/docs/standard/java/microservice-performance – essis

関連する問題