Cloud Run ジョブのジョブ実行キャンセルに関する権限が変更になります

Cloud Run ジョブのキャンセルに関する権限が追加されるアップデートが予定されています。簡潔に内容をまとめ対象や対応策をまとめてみました。
2024.06.21

概要

2024年9月16日から、Cloud Run ジョブのジョブ実行のキャンセルに必要なIAM権限が現在のrun.jobs.runからrun.executions.cancelという新しいIAM権限に変更となります。 現在はCloud Run ジョブの実行(jobs.run APIメソッド)とジョブ実行のキャンセル(executions.cancel APIメソッド)の両方に、同じIAM権限であるrun.jobs.runが使用されています。 これが2024年9月16日から変更になります。
実行の権限は2024年9月16日以降も変わらずrun.jobs.runのままです。

現在 2024年9月16日以降
ジョブのキャンセル run.jobs.run run.executions.cancel
ジョブの実行 run.jobs.run run.jobs.run

What you need to know Currently, Cloud Run uses the same IAM permission, run.jobs.run, to control access to both running a job (the jobs.run API method) and canceling a job execution (the executions.cancel API method). To give you greater flexibility in defining custom roles, we are changing the IAM permission required for canceling a job execution (the executions.cancel API method) to a new IAM permission named run.executions.cancel.
現在、Cloud Runでは、ジョブの実行(jobs.run APIメソッド)とジョブの実行のキャンセル(executions.cancel APIメソッド)の両方のアクセスを制御するために、run.jobs.runという同じIAMパーミッションを使用しています。 カスタムロールをより柔軟に定義できるように、ジョブの実行のキャンセル(executions.cancel APIメソッド)に必要なIAMパーミッションを、run.executions.cancelという新しいIAMパーミッションに変更します。(DeepL翻訳)

※引用:[Action Advised] Update your IAM roles to cancel Cloud Run jobs

対応する必要があるかどうか

使用しているIAMユーザやサービスアカウントに付与しているロールによっては対応が必要になる可能性があります。
以下の表は、ジョブの実行をキャンセルするというアクションを行う際に用いているロールによって対応する必要があるかどうかをまとめたものです。

使用ロール 対応要否
run.jobs.runを使用しているカスタムロール 必要
Cloud Run 起動元(Invoker) 必要
Cloud Run 管理者 不要
Cloud Run 開発者 不要

Cloud Run 管理者、開発者の事前定義ロールに関してはIAMロールに該当キャンセル権限が自動追加されるとのことです。

対応が必要な場合の対応方法

以下の対応方法が一例として考えられます。

  • カスタムロールの場合:run.executions.cancel権限を付与する
  • Cloud Run 起動元の場合:run.executions.cancel権限を含む別のIAMロール(Cloud Run管理者、開発者、カスタムロールなど)に変更する

まとめ

影響対象は小さいですが、Cloud Run 起動元ロールでCloud Run ジョブの検証をしている場合などではジョブの実行はできるがキャンセルできなくなってしまうなんていうことになるので対応の必要がある場合は早めに対応しておきたいですね。
この記事がどなたかのお役に立てば嬉しいです。それではまた。

参考

Cloud Run IAM roles