OpenID Connect(OIDC)トークンを使用して、Cloud IAP で保護されたリソースに対してサービス アカウントを認証します。
1. Cloud IAP で保護されたプロジェクトのアクセスリストにサービス アカウントを追加します。
2. JWT ベースのアクセス トークン(JWT-bAT)を生成します。
3. Cloud IAP で保護されたクライアント ID の OIDC トークンをリクエストします。
クライアント ID を見つけるには、次の手順を行います。
[Cloud IAP] ページに移動します。
アクセスするリソースを見つけて、右側の [さらに表示] > [OAuth クライアント] をクリックします。
表示される [認証情報] ページで、クライアント ID をメモします。
4. Authorization: Bearer ヘッダーに OIDC トークンを追加して、Cloud IAP で保護されたリソースへの認証済みリクエストを作成します。
このドキュメントを見て分からなかった人向け
ちなみに僕は全くわからなかった
解決方法はGoogleさんが参考に作成してくれている、プログラムを利用する
少し改造したのが コチラ
前準備
GCPのサービスアカウントをexportしておく。
export GOOGLE_APPLICATION_CREDENTIALS=$HOME'/.credentials/xxxxxxxxxxxxxxxx.json'
プログラムを実行
- fork repo こちらからプロジェクトをclone
- iap/に移動
- 外部ライブラリーをインストール
$ virtualenv/bin/pip install -r requirements.txt
- コマンド実行
$ python iap_get_oidc.py
- 結果が表示されるので
$ curl http://xxx.com -H "Authorization:Bearer xxxxxxxxx
で動作確認