問題タブ [google-cloud-api-gateway]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-cloud-platform - SaaS API デプロイメントのクォータの管理
プログラムによるサーバー間アクセスを必要とする API を設計しています。Qps を制限して、顧客プロジェクトごとにクォータを設定したいと考えています。API Gatewayを構成してデプロイしました。
Cloud Endpointsの Quotas ドキュメント (API Gateway ドキュメントからリンク) によると、クォータは API キーやサービス アカウントではなく特定の GCP プロジェクトにバインドされるため、この動作は複数の GCP プロジェクトを介して実装できます。
このような展開を管理するためのベスト プラクティスは何ですか?
これを解決する良い方法は、トークンまたは SA のみを使用して、お客様のプロジェクトごとに個別の空の GCP プロジェクトを作成することですか? プロジェクトのクォータは一般的に簡単に拡張できますか?
Apigeeを検討して試してみました。ただし、このプロジェクトはエンタープライズ グレードとはほど遠いため、価格は適切ではなく、これを書いている時点では 60 日間の評価しかサポートされていません (無料利用枠はありません)。
google-cloud-platform - GCP - API Gateway から Google Cloud Run バックエンドへのアクセス
私の GCP プロジェクトでは、docker コンテナで (connexion を使用して) Python API を実行しています。API Gateway を使用して (API キーを使用して) API を公開したいと考えています。
で docker コンテナーをデプロイすると、ゲートウェイ経由で API 呼び出し--ingress internal
が行われます。Access is forbidden.
そのため、API ゲートウェイは Google Run コンテナにアクセスできません。を使用する--ingress all
と、すべてが期待どおりに機能しますが、内部 API は Web からアクセスできますが、これは私が望んでいるものではありません。
このためのサービス アカウントを作成しました。
... アカウントにrun.invoker
許可を与えました:
...そして、サービス アカウントを使用して API 構成を作成しました。
しかし、API Gateway から docker API にアクセスできません。ここで何が欠けていますか?API Gateway が内部的に接続できるように、API を保護するにはどうすればよいですか。
Update1: 実行サービスにもロールを適用しました:
Update2: John Hanley のリクエストによる追加情報:
私のゲートウェイ yml は次のようになります。
Cloud Run で直接デバッグを試みました:
結果は依然として禁止されています:
したがって、問題はサービス アカウントが Cloud Run アプリケーションにアクセスできないことにあります。run.invoker
役割が実行サービスに追加されたため、これが機能しない理由はわかりません。