サービス ID

ランタイム サービス アカウント

サービスの実行中、Cloud Run は ID としてサービス アカウント PROJECT_NUMBER-compute@developer.gserviceaccount.com を使用します。たとえば、Google Cloud クライアント ライブラリを使用して Google Cloud Platform サービスにリクエストを送信するときに、Cloud Run アプリケーションは自動的にトークンを取得して使用し、サービスの認証を行うことができます。

デフォルトの権限の変更

デフォルトでは、ランタイム サービス アカウントには編集者役割が付与され、Cloud Platform の多くのサービスにアクセスできます。サービスを開発する際は問題になりませんが、本番環境でサービスが必要とする権限よりも多くの権限が付与されるため、最小限のアクセス権を構成する必要があります。

コンソール UI

  1. Google Cloud Platform Console に移動します。

    Google Cloud Platform Console に移動

  2. テーブルからランタイム サービス アカウント(PROJECT_NUMBER-compute@developer.gserviceaccount.com)を選択します。

  3. 行の右側にある鉛筆をクリックして、[権限を編集] タブを表示します。

  4. [役割] プルダウンを使用して役割を追加または削除し、最小限のアクセス権限を設定します。

  5. [保存] をクリックします。

gcloud

編集者役割を削除してから、gcloud projects add-iam-policy-binding コマンドを使用して新しい役割を追加します。[VALUES_IN_BRACKETS] は、適切な値に置き換えます。

# Remove the Editor role
gcloud projects remove-iam-policy-binding PROJECT_ID\
  --member="[PROJECT_NUMBER]-compute@developer.gserviceaccount.com"
  --role="roles/editor"

# Add the desired role
gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="[PROJECT_NUMBER]-compute@developer.gserviceaccount.com"
  --role="[ROLE]"

ID とアクセス トークンの取得

Compute Metadata Server を使用して、ID トークンとアクセス トークンを取得します。

ID トークン

ID トークンは、他の Cloud Run サービスや ID トークンの検証が可能なサービスを呼び出すときに使用します。

次のように、Compute Metadata Server を使用して、特定のユーザーの ID トークンを取得します。

curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=[AUDIENCE]" \
  -H "Metadata-Flavor: Google"

AUDIENCE は、リクエストされた JWT ユーザーです。例: 呼び出すサービスの URL(https://service.domain.com など)、IAP で保護されたリソースの OAuth クライアント ID(1234567890.apps.googleusercontent.com)。

アクセス トークン

アクセス トークンは、Google API を呼び出すときに使用します。

デフォルトでは、アクセス トークンに cloud-platform スコープが設定されています。IAM でアクセスが許可されていれば、すべての Google Cloud Platform API にアクセスできます。他の Google または Google Cloud API にアクセスするには、適切なスコープのアクセス トークンを取得する必要があります。

アクセス トークンを取得するには、Compute Metadata Server を使用します。

特定のスコープを持つアクセス トークンが必要な場合は、次のようにしてアクセス トークンを生成します。

curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token?scopes=[SCOPES]" \
  -H "Metadata-Flavor: Google"

SCOPES は、リクエストされた OAuth スコープのカンマ区切りリストです。例: https://www.googleapis.com/auth/drive,https://www.googleapis.com/auth/spreadsheets

Google OAuth スコープの完全なリストを調べて、必要なスコープを探してください。

次のステップ

サービスへのアクセスを管理する方法またはデベロッパー、サービス、エンドユーザーの認証を安全に行う方法を学習する。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...