2024年11月25日、Google Cloud から管理者宛てに「[Action Required] Ensure read access on container images deployed to Cloud Run」というタイトルのメール通知がありました。当記事では、通知の内容とユーザー側で必要なアクション、影響範囲の確認方法などを解説します。
通知の内容
Cloud Run のデプロイに使用することができる事前定義の IAM ロール「Cloud Run 管理者(roles/run.admin
)」および「Cloud Run デベロッパー(roles/run.developer
)」には、暗黙的に Artifact Registory の読み取り権限がついています。
2025年1月25日(米国時間)以降、この暗黙的な読み取り権限がなくなり、Cloud Run 管理者ロールとCloud Run デベロッパーロールでは Artifact Registry にあるコンテナイメージの読み取りができなくなります。したがって、このロールだけでは Cloud Run の作成、更新ができなくなります。
今後、Cloud Run の作成、更新を行うプリンシパル(ユーザー、サービスアカウント)は、コンテナイメージに対する明示的な読み取り権限が必要となります。具体的には、コンテナイメージが存在する Artifact Registry リポジトリ、もしくはプロジェクトに対する Artifact Registry 読み取り(roles/artifactregistry.reader
)ロールが必要となります。
以下に、変更の適用前・適用後の状況を要約します。
変更の適用前(2025年1月25日以前)
- 暗黙的な権限により、Cloud Run 管理者またはCloud Run デベロッパーロールを紐づけられたプリンシパルは Artifact Registry にあるコンテナイメージを読み取ることができる。
変更の適用後(2025年1月25日以降)
- Cloud Run 管理者ロールおよびCloud Run デベロッパーロールでは Artifact Registry にあるコンテナイメージを読み取ることはできない。そのため Cloud Run の作成、更新操作ができない。
- 今まで Cloud Run のデプロイに Cloud Run 管理者または Cloud Run デベロッパーロールを使用していたプリンシパルには、Artifact Registry 読み取りロールも紐づける必要がある。
- オーナー(
roles/owner
)ロール、または編集者(roles/editor
)ロールが紐づいているプリンシパルについては、この変更による影響はない。
ユーザー側で必要なアクション
2025年1月25日までに、Cloud Run 管理者またはCloud Run デベロッパーロールが紐づけられたプリンシパルを洗い出し、必要に応じて Artifact Registry 読み取りロールを付与する必要があります。
想定される影響範囲
Cloud Build や GitHub Actions 等の CI/CD パイプラインから Cloud Run のデプロイを行っているようなケースでは、パイプラインが使用するサービスアカウントに Cloud Run 管理者もしくはCloud Run デベロッパーロールが付与されている可能性があります。
今回の変更への対処が漏れてしまった場合、パイプラインが停止してしまう恐れがあるため、現在サービスアカウントに紐づけられているロールを確認し、権限が不足している場合は Artifact Registry 読み取りロール等を付与する必要があります。
影響範囲の確認方法
通知メール
変更の影響を受ける可能性がある組織やプロジェクトのオーナーや、エッセンシャルコンタクトに登録された連絡先には、2024年11月25日に Google Cloud から [Action Required] Ensure read access on container images deployed to Cloud Run
というタイトルのメールが配信されています。
変更の影響があるプロジェクトは、同メール最下部の「Your affected projects are listed below:」以下に記載されています。
エッセンシャルコンタクトについては以下の記事を参照してください。
Cloud Asset Inventory
また、Cloud Asset Inventory を使用することで、特定のロールが紐づいたプリンシパルの一覧を確認できます。
Google Cloud コンソールから確認する場合、たとえばCloud Run デベロッパーロールであれば、Cloud Asset Inventory の画面の IAM ポリシータブにて roles: run.developer
でフィルタリングします。プロジェクトに対してロールが紐づけられているプリンシパルと、特定の Cloud Run リソースにロールが紐づけられているプリンシパルの両方を検索することができます。
Cloud Run 管理者ロールについては roles: run.admin
でフィルタリングすることができます。
gcloud CLI では gcloud asset search-all-iam-policies
コマンドで確認できます。
# Cloud Run デベロッパーロールが付与されたプリンシパルの一覧を表示する $ gcloud asset search-all-iam-policies --query='roles:run.developer'
# 出力例 $ gcloud asset search-all-iam-policies --query='roles:run.developer' --- assetType: run.googleapis.com/Service # ロールが特定の Cloud Run に紐付いている場合 folders: - folders/xxxxxxxxxxxx - folders/xxxxxxxxxxxx organization: organizations/xxxxxxxxxxxx policy: bindings: - members: - serviceAccount:my-sa@myproject.iam.gserviceaccount.com role: roles/run.developer project: projects/xxxxxxxxxxxx resource: //run.googleapis.com/projects/myproject/locations/asia-northeast1/services/hello --- assetType: cloudresourcemanager.googleapis.com/Project # ロールがプロジェクトに紐付いている場合 folders: - folders/xxxxxxxxxxxx - folders/xxxxxxxxxxxx organization: organizations/xxxxxxxxxxxx policy: bindings: - members: - serviceAccount:xxxxxxxxxxxx-compute@developer.gserviceaccount.com role: roles/run.developer project: projects/xxxxxxxxxxxx resource: //cloudresourcemanager.googleapis.com/projects/myproject
Cloud Asset Inventory については、以下の記事も参考にしてください。
Cloud Logging
2025年1月25日の変更が適用されるまでは、該当のロールを使用して Cloud Run のデプロイが可能ですが、Cloud Logging に以下のエラーログが記録されるようになっています。
Cloud Run API check failed. Requests will be rejected after January 2025 hard enforcement deadline. User does not have access to image {Artifact Registry 内のコンテナイメージの URL}
Cloud Logging にて以下のクエリを実行することで、当該ログを検索することができます。
resource.type = "cloud_run_revision" severity=ERROR "User does not have access to image"
ログが出ている場合、対処が必要なプリンシパルを使用してデプロイが行われているので、Artifact Registry 読み取りロール等の付与を行います。
上記のクエリを使用してログベースのアラートを設定しておくことで、対象のログの確認漏れを防ぐことができます。
ログベースのアラートについては、以下の記事を参考にしてください。
佐々木 駿太 (記事一覧)
G-gen最北端、北海道在住のクラウドソリューション部エンジニア
2022年6月にG-genにジョイン。Google Cloud Partner Top Engineer 2025 Fellowに選出。好きなGoogle CloudプロダクトはCloud Run。
趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。
Follow @sasashun0805