やりたいこと
- サービスアカウントとしてCloudRunサービスを呼び出す時の、IAM認証を設定する。
- CloudRunサービスの設定で、「Cloud IAM を使用して承認ユーザーを管理します。」をオンにした場合の認証
手順
-
CloudShell/ローカルターミナルにログインしているIAMユーザに、ロール「サービスアカウント トークン作成者」を付与する。
- 「IAMと管理」>「IAM」> 該当のユーザの権限編集画面 >「サービスアカウント トークン作成者」を付与
- サービスアカウントではないので注意
-
以下コマンドで、サービスアカウントのトークンを取得し、そのトークンをBearerに設定しCloudRunサービスを呼び出すことができる。
- 「impersonate-service-account」オプションが、サービスアカウントとなりきって〜というものらしい。
PROJECT_ID=hoge
SERVICE_ACCOUNT=fuga@${PROJECT_ID}.iam.gserviceaccount.com
CLOUDRUN_URL=https://piyo.run.app
token=$(gcloud auth print-identity-token --impersonate-service-account=${SERVICE_ACCOUNT} --audiences=${CLOUDRUN_URL})
curl -H "Authorization: Bearer ${token}" ${CLOUDRUN_URL}