⛏️
PHP on GKEとCloud Run間の認証
GKEとCloud Run間の認証について調査した際のURLやメモ書き。
概要
- 基本的には、サービス間認証 | Cloud Run のドキュメント | Google Cloudにある通り。GKEのSAに
roles/invoker
を付与すれば良い。 - PHPのライブラリ googleapis/google-auth-library-php: Google Auth Library for PHP を使えばID Tokenの取得・設定が可能。
詳細
手順としては以下の通り。
- IAM: GKEのSAに
roles/run.invoker
を付与する - App: RunのURLからIDトークンを取得、ヘッダに付与して、対象APIにアクセスする
IAM
省略。Runのサービス単位で権限を付与できる。Terraformの場合、google_cloud_run_service_iam | Resources | hashicorp/google | Terraform Registryが参考になる。
App
googleapis/google-auth-library-php: Google Auth Library for PHP にあるサンプルコードがそのまま使用できる。
注意点として、ローカル環境で動かす場合はミドルウェアやHTTPClientをDIするなどして、環境で切り替えるような実装が必要。
Discussion