問題タブ [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-functions - GCP API Gateway から Cloud Functions へのデフォルトのサービス アカウント認証: "あなたのクライアントには要求された URL へのアクセス許可がありません""
Cloud Functions の前で API Gateway を使用しようとしていますが、Cloud Functions が公開されていない場合に 401 応答が返されます。
デフォルトの AppEngine サービス アカウント ID ( project-id @appspot.gserviceaccount.com) を使用するように Gateway を設定し、IAM でサービス アカウントにCloud Functions Invokerロールを付与しました。Cloud Functions Permissions タブの下の呼び出し元にも表示されます。ゲートウェイ エンドポイントが呼び出されると、「あなたのクライアントには、要求された URL [url] へのアクセス許可がありません」という不十分な形式の HTML ペイロードを含む 401 応答が返されます。残念ながら、Gateway ログにも問題の内容は示されていません。Cloud Function を公開して数分待つと、呼び出しが成功します。
ガイドの「バックエンド サービスの保護」セクションを数回読みましたが、何が欠けているのかわかりません。
ps: これは JWT の問題ではありません。その部分は見事に機能します
google-cloud-storage - Google Cloud API Gateway エンドポイントはどのようにして Cloud Storage ファイルからデータを配信できますか?
私は、Google Cloud API Gateway を使用してさまざまなエンドポイントをさまざまなサービスにルーティングする大規模な API を構築中です。サーバーレスの Cloud Functions もあれば、Kubernetes クラスタ内の Rails アプリによって提供されるものもあります。
クライアントからの認証されていないアクセスを必要とする情報エンドポイントの選択があります。ここでは、情報はめったに変更されません (数か月に 1 回程度)。私は、これらのエンドポイントの内容を Google Cloud Storage に (誰でも読めないバケットに) 書き込んでから、API Gateway 構成が特定のエンドポイントをそれらに向けられるようにしたいと考えていました (誰でも読めるバケットでは対応できません)。このプロジェクトのセキュリティ基準)。
API ゲートウェイ用のカスタム サービス アカウントを作成し、関連するバケットのStorage Object Viewerロールを付与しました。
しかし、そのサービス アカウントを使用して API 構成を作成し、Postman でエンドポイントを要求した後、期待した JSON 出力を取得する代わりに、Google サインイン ページの HTML が表示されます。
私の OpenAPI 構成のエンドポイント定義:
そして、これは郵便配達員の応答です:
このセットアップを機能させる方法、またはここで何が起こっているかをデバッグする方法はありますか? Cloud Functions と JWT のaud
価値に関して同様の問題を抱えている人を見てきましたが、彼らにとってうまくいった方法に従っても、Cloud Storage には何の影響もないようです。
どんな助けでも大歓迎です!(私は GCloud の世界の初心者なので、この種のほとんど静的なエンドポイントの代替実装があれば、それもクールです。)