【GCP】Cloud Run サービス起動用のサービスアカウントを作成する
Cloud Pub / Sub や Tasks、Scheduler など、他の GCP サービスから Cloud Run サービスを起動したいことがあります。
そのような場合、対象サービスの起動権限をもったサービスアカウントが必要になります。
今回は、Cloud Run サービス起動用のサービスアカウント の作成について解説していきたいと思います!
目次
サービスアカウントを作成
まずは、Cloud Run サービスの起動に使用するサービスアカウントを作成 します。
以下のコマンドを実行して、サービスアカウントを作成してください。
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \ --display-name $DISPLAY_NAME
ここで、$SERVICE_ACCOUNT_NAME
には、サービスアカウント名 を設定してください。 ( 例 : test-invoker など )
$DISPLAY_NAME
には、サービスアカウントの表示名 を設定してください。 ( 例 : Test Invoker など )
Cloud Run サービスの呼び出し権限を付与
次に、作成したサービスアカウントに、対象の Cloud Run サービスの呼び出し権限を付与 します!
以下のコマンドにより、作成したサービスアカウントに呼び出し権限を追加してください。
gcloud run services add-iam-policy-binding $SERVICE_NAME \ --member=serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com \ --role=roles/run.invoker
ここで、$SERVICE_NAME
には、呼び出し対象となる Cloud Run サービスの名前 を設定してください。
$SERVICE_ACCOUNT_NAME
は、先ほど作成したサービスアカウントの名前です。特に変更は必要ありません。
$PROJECT_ID
には、Google Cloud のプロジェクト ID を設定してください。
設定の確認
追加したアカウントのチェック
まずは、追加したアカウントを確認します。
GCP のコンソールページから、IAM と管理 > サービスアカウント
を開いてください。
追加したアカウントがリストにあるか、確認してください。
追加されたアカウントは、以下のようなフォーマットになっていると思います。
${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
「メール」や「名前」の項目が設定した通りであれば、サービスアカウントの追加は成功です!
付与した権限のチェック
次に、作成したサービスアカウントに、対象サービスの起動権限が付与されているか確認します。
Cloud Run のコンソールページから、呼び出し対象としたサービスを探して、サービスのリンクをクリックしてください。
サービスページが開いたら、「権限」タブをクリックしてください。
今回追加したサービスアカウントがあるか、確認してください。
「ロール」の項目に「Cloud Run 起動元」と表示されていれば、権限の付与も成功です!
まとめ
今回は、Cloud Run サービス起動用のサービスアカウントの作成について解説してみました!
サービスアカウントの作成と権限の付与は、多少面倒ではありますが、慣れてしまえば、それほど難しくありません。
GCP のサービスを利用する中で、サービスアカウントを利用する場面は多いので、慣れておいて損はないと思います。
ぜひ一度、試してみてください!