2.7. ワークロード ID フェデレーション設定の更新
既存の Workload Identity Federation (WIF)設定を更新して、新しい OpenShift Dedicated y-stream バージョンをサポートし、最新のセキュリティーのベストプラクティスに合わせることができます。
WIF 設定の更新は、y-stream の更新にのみ適用されます。バージョンセマンティクスに関する詳細を含む更新プロセスの概要は、The Ultimate Guide to OpenShift Release and Upgrade Process for Cluster Administrators を参照してください。
WIF 対応の OpenShift Dedicated クラスターを新しいバージョンに更新する前に、wif-config もそのバージョンにアップグレードする必要があります。クラスターバージョンの更新を試みる前に wif-config バージョンをアップグレードしないと、クラスターバージョンのアップグレードが失敗します。
Red Hat が継続的に取り組んでいる最小権限の原則の一環として、WIF 設定において osd-deployer サービスアカウントに以前割り当てられていた特定の権限が削除されました。これらの変更により、サービスアカウントには機能を実行するために必要な権限のみが付与されるようになり、クラスターのセキュリティーが強化されます。
WIF 設定ロールとそれらに割り当てられた権限の完全なリストについては、managed-cluster-config を参照してください。
既存の WIF 設定をこれらの更新された権限に合わせるには、ocm gcp update wif-config コマンドを実行します。このコマンドは、最適な操作に必要な最新の権限とロールを含むように WIF 設定を更新します。
wif-config を更新するか、新しい wif-config を作成する場合は、OpenShift Cluster Manager CLI (ocm) が最新であることを確認してください。ocm を最新バージョンに更新しないと、エラーメッセージが表示され、サービスが中断される可能性があります。
出力例
Error: failed to create wif-config: failed to create wif-config: status is 400, identifier is '400', code is 'CLUSTERS-MGMT-400', at '2025-10-06T15:18:37Z' and operation identifier is 'f9551d63-a58a-4e3c-b847-5f99ba1b0b74': Client version is out of date for WIF operations. Please update from vOCM-CLI/1.0.7 to v1.0.8 and try again.
また、すでに WIF を使用している既存の OpenShift Dedicated クラスターを更新することもできます。そのためには、the- federated-project フラグを使用してワークロード ID プールおよびプロバイダーを管理する専用のプロジェクト を追加します。このベストプラクティスモデルでは、ワークロード ID プールとプロバイダーが専用の集中化された Google Cloud プロジェクトに分割されます。
the- federated-project フラグを使用して設定を更新すると、関連付けられたワークロード ID プールは、指定した新しいフェデレーションされたプロジェクトに移動します。一方、既存の IAM サービスアカウントとカスタムロールは、元のクラスターアソシエーションされたプロジェクトに残ります。
手順
ocmのバージョンを確認するには、次のコマンドを実行します。$ ocm version-
オプション:
ocmバージョンが最新でない場合は、OpenShift Cluster Manager の ダウンロード ページから、最新バージョンをダウンロードしてインストールします。 次のコマンドを実行し、wif-config を特定の OpenShift Dedicated バージョンに更新します。
ocm gcp update wif-config <wif_name> \1 --version <version>2 --federated-project <gcp_project_id>3 - 1
<wif_name>は、更新する WIF 設定の名前に置き換えます。- 2
- オプション:
<version>は、クラスターの更新先の OpenShift Dedicated y-stream バージョンに置き換えます。バージョンを指定しない場合、wif-config は最新の OpenShift Dedicated y-stream バージョンと、その直前のサポート対象の OpenShift Dedicated y-stream バージョン 3 つ (バージョン 4.17 以降) をサポートするように更新されます。 - 3
- オプション:
<gcp_project_id>は、ワークロードアイデンティティープールとプロバイダーが作成および管理される専用プロジェクトの ID に置き換えます。the-federated-projectフラグが指定されていない場合、ワークロード ID プールおよびプロバイダーはクラスターに関連付けられたプロジェクトに残ります。
次のステップ
osd-deployer サービスアカウントに以前割り当てられた古い権限セットは、wif-config を更新した後もアカウントに残ります。手動でロールにアクセスし、古い権限を削除する必要があります。
WIF 設定によって管理されるサービスアカウントからの古いデプロイパーミッションの削除と WIF 設定によって管理されているサービスアカウントからの古いサポートパーミッションの削除の手順に従い、これらの古いパーミッションを削除します。
さらに、the- federated-project フラグを使用してワークロード ID プールを新しい専用プロジェクトに移動した場合は、古いワークロード ID プールを元のクラスター関連付けられたプロジェクトから手動で削除できます。詳細は、Google Cloud ドキュメント の プールの削除 を参照し てください。
2.7.1. WIF 設定によって管理されるサービスアカウントから古いデプロイヤー権限を削除する リンクのコピーリンクがクリップボードにコピーされました!
WIF 設定が管理するサービスアカウントから古いデプロイヤーパーミッションを削除するには、サービスアカウントをホストする Google Cloud プロジェクトにアクセスできるターミナルで以下のコマンドを実行します。
手順
既存のロール定義を取得し、
PROJECT_ID環境変数が Google Cloud プロジェクトを指していることを確認します。$ gcloud iam roles describe \ osd_deployer_v4.18 \ --project $PROJECT_ID \ --format=yaml > /tmp/role.yaml不要な権限を削除します。これを行うには、ロール定義ファイルから不要な権限を除外し、更新された定義を新しいファイルに保存します。
$ cat /tmp/role.yaml | \ grep -v "resourcemanager.projects.setIamPolicy" | \ grep -v "iam.serviceAccounts.signBlob" | \ grep -v "iam.serviceAccounts.actAs" > /tmp/updated_role.yaml元のロール定義と更新されたロール定義の間の出力の変更を確認し、不要な権限のみが削除されていることを確認します。
$ diff /tmp/role.yaml /tmp/updated_role.yaml更新されたロール定義ファイルを使用して Google Cloud のロールを更新し、
PROJECT_ID環境変数が Google Cloud プロジェクトを指していることを確認します。$ gcloud iam roles update \ osd_deployer_v4.18 \ --project=$PROJECT_ID \ --file=/tmp/updated_role.yaml
2.7.2. WIF 設定によって管理されるサービスアカウントから古いサポート権限を削除する リンクのコピーリンクがクリップボードにコピーされました!
古くなったサポート権限を削除するには、サービスアカウントをホストしている Google Cloud プロジェクトへのアクセス権を持つターミナルで次のコマンドを実行します。
手順
既存のロール定義を取得し、
PROJECT_ID環境変数が Google Cloud プロジェクトを指していることを確認します。$ gcloud iam roles describe sre_managed_support --project $PROJECT_ID --format=yaml > /tmp/role.yaml不要な権限を削除します。これを行うには、ロール定義ファイルから不要な権限を除外し、更新された定義を新しいファイルに保存します。
$ cat /tmp/role.yaml | grep -v "compute.firewalls.create" > /tmp/updated_role.yaml元のロール定義と更新されたロール定義の間の出力の変更を確認し、不要な権限のみが削除されていることを確認します。
$ diff /tmp/role.yaml /tmp/updated_role.yaml更新されたロール定義ファイルを使用して Google Cloud のロールを更新し、
PROJECT_ID環境変数が Google Cloud プロジェクトを指していることを確認します。$ gcloud iam roles update sre_managed_support --project $PROJECT_ID --file=/tmp/updated_role.yaml