🔓
Cloud RunがIAPでよりお手軽に認証できるようになりました!
IAPとは
Identity-Aware Proxy(IAP)はGoogle Cloudが提供するセキュリティ機能で、特定のユーザーのみがリソースにアクセスできるように制御するプロキシサービスです。
これまではCloud RunでIAPによる認証を利用するにはCloud Load Balancerを構築する必要がありましたが、今回のアップデートによりCloud Run単体でIAPを設定できるようになりました!
手順
今のところはgcloudコマンドからしか設定できないようなので、Cloud Shellで実行します。
IAP用サービスアカウントの作成と権限付与
まず、IAPに必要なサービスアカウントを作成し、「run.invoker」権限を付与します。
export PROJECT_ID=<your_project_id>
gcloud beta services identity create \
--service=iap.googleapis.com \
--project=$PROJECT_ID
export PROJECT_NUMBER=<your_project_number>
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:service-$PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com" \
--role="roles/run.invoker"
Cloud RunへのデプロイとIAPの有効化
次に、コンテナをCloud Runにデプロイし、IAPを有効にします。
gcloud alpha run deploy my-iap-service \
--image=us-docker.pkg.dev/cloudrun/container/hello \
--region asia-northeast1 \
--iap
・・・
Service URL: https://my-iap-service-XXXXXXXXX.asia-northeast1.run.app
URLにアクセスすると、権限エラーが発生するはずです。
IAPアクセス権の設定
特定のメールアドレスによるアクセスを許可するために、IAPにアクセス権を付与します。
gcloud alpha iap web add-iam-policy-binding \
--member=user:<your_email> \
--role=roles/iap.httpsResourceAccessor \
--region asia-northeast1 \
--resource-type=cloud-run \
--service=my-iap-service
数秒待ってから再度アクセスすると、以下のようにIAPを通過してCloud Runサービスへアクセスできるようになります。
IAPの認証を通してCloud Runサービスにアクセスできました!
アクセス権の削除
アクセス権を削除する場合は、以下のコマンドを実行します。
gcloud alpha iap web remove-iam-policy-binding \
--member=user:<your_email> \
--role=roles/iap.httpsResourceAccessor \
--region asia-northeast1 \
--resource-type=cloud-run \
--service=my-iap-service
既存のCloud RunサービスへのIAP設定
既存のCloud Runサービスに対しても、次のコマンドでIAPを有効化または無効化できます。
gcloud alpha run services update <your_service> --[no-]iap
今回のアップデートにより、Cloud Load Balancerの構築が不要になり、コスト削減と手軽さが大きく向上しました!
GAが待ち遠しいですね!
GitHubで編集を提案
Discussion
記事の内容に沿って進めているのですが、デプロイのところで下記のエラーが発生します。
利用申請は行ったのですが、こちらのエラーがでるということは申請が通っていないということになりますでしょうか。。。
もしご存知でしたら教えていただけますと幸いです。
エラーメッセージから申請が通ってないものと思われます。
おそらく申請が通ればメールが来ると思います!
返信ありがとうございます!
やはり申請が通っていないのですね。。。
参考までに教えていただければと思うのですが、申請するとすぐにメール来ましたでしょうか?
こちらの記事に関するGoogle Cloud公式アナウンスや公式ドキュメントはあるでしょうか?
見つけることができなかったので、URLを教えて頂けると幸いです。