サービスの作成、更新、削除などの管理作業に加えて、デベロッパーがサービスのリリース前に個人的にテストしたいと考える場合があります。このオプションは Cloud Run サービス向けであり、Cloud Run ジョブ向けではありません。
始める前に
認証するサービスにアクセスする権限を付与しているか確認します。デベロッパーまたはデベロッパーのグループには、Cloud Run Invoker ロールを付与する必要があります。
コンソール UI
Google Cloud コンソールに移動します。
サービスを選択します。ただし、クリックはしないでください。
右側のパネルで [権限] タブをクリックします(先に右上の [情報パネルを表示] をクリックする必要がある場合があります)。
[プリンシパルを追加] をクリックします。
[新しいプリンシパル] フィールドに、デベロッパー アカウントのメールアドレスを入力します。
[ロールの選択] プルダウン メニューから、
Cloud Run Invoker
ロールを選択します。[保存] をクリックします。
gcloud
gcloud run services add-iam-policy-binding
コマンドを使用します。
gcloud run services add-iam-policy-binding SERVICE \ --member='USER:EMAIL' \ --role='roles/run.invoker'
ここで
- SERVICE は、サービスの名前です。
- USER は、単一デベロッパーまたはグループのどちらを承認するかに応じて、
user
またはgroup
という値になります。 EMAIL は、メール アカウントです。
例:
gcloud run services add-iam-policy-binding myservice \ --member='user:test-user@gmail.com' \ --role='roles/run.invoker'
限定公開サービスをテストする
Cloud Run プロキシまたは curl
を使用して、限定公開サービスをテストできます。
Google Cloud CLI で Cloud Run プロキシを使用する
限定公開サービスをテストする場合、Google Cloud CLI の Cloud Run プロキシを使用するのが最も簡単な方法です。この方法では、限定公開サービスが http://localhost:8080
(または --port
で指定されたポート)にプロキシされ、アクティブなアカウントのトークンまたは指定した別のトークンが提供されます。これにより、ウェブブラウザや curl
などのツールを使用できます。これは、ブラウザでウェブサイトや API を非公開でテストする場合におすすめの方法です。
次のコマンドラインを使用して、Linux、macOS、WSL(推奨)または Cygwin 環境のローカルでサービスをプロキシできます。
gcloud run services proxy SERVICE --project PROJECT-ID
curl
を使用する
別の方法としては、curl
などのツールを使用し、Authorization
のヘッダーに認証トークンを渡すことで、プロキシを使用せずに限定公開サービスをテストすることもできます。
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
curl
コマンドを使用するには、Cloud Run Admin や Cloud Run Invoker のような run.routes.invoke
権限を持つユーザーに、有効な ID トークンを渡す必要があります。ロールの一覧とそれに関連する権限については、Cloud Run IAM のロールをご覧ください。
gcloud CLI にログインしている ID の有効な ID トークンを取得するには、gcloud auth print-identity-token
コマンドを使用します。サービスでの run.routes.invoke
権限がアカウントに付与されていれば、gcloud CLI で作成されたトークンを使用して、どのプロジェクトでも HTTP リクエストを呼び出せます。
開発目的の場合は、gcloud CLI で生成された ID トークンを使用します。ただし、このようなトークンにはオーディエンス クレームがないため、リプレイ攻撃を受けやすくなります。本番環境では、適切な対象を指定したサービス アカウントに対して発行された ID トークンを使用します。この方法は、トークンの使用を目的のサービスのみに制限することでセキュリティを強化します。Google アカウント以外の場合は、Workforce Identity 連携を使用して Cloud Run サービスを呼び出します。これにより、サービス アカウント キーをダウンロードする必要がなくなります。
サービスの開発と使用に必要な最小権限セットを割り当てることをおすすめします。サービスの IAM ポリシーは、必要最小限のユーザーとサービス アカウントに限定してください。