8.9. 管理者レベルのシークレットを kube-system プロジェクトに保存する代替方法
				デフォルトでは、管理者のシークレットは kube-system プロジェクトに保存されます。install-config.yaml ファイルの credentialsMode パラメーターを Manual に設定した場合は、次のいずれかの代替手段を使用する必要があります。
			
- 長期クラウド認証情報を手動で管理するには、長期認証情報を手動で作成する の手順に従ってください。
- クラスターの外部で管理される短期認証情報を個々のコンポーネントに対して実装するには、短期認証情報を使用するように Azure クラスターを設定する の手順に従ってください。
8.9.1. 長期認証情報を手動で作成する
					Cloud Credential Operator (CCO) は、クラウドアイデンティティーおよびアクセス管理 (IAM) API に到達できない環境にインストールする前に手動モードに配置できます。管理者はクラスター kube-system namespace に管理者レベルの認証情報シークレットを保存しないようにします。
				
手順
- install-config.yaml設定ファイルの- credentialsModeパラメーターを- Manualに設定しなかった場合は、次のように値を変更します。- 設定ファイルのサンプルスニペット - apiVersion: v1 baseDomain: example.com credentialsMode: Manual # ... - apiVersion: v1 baseDomain: example.com credentialsMode: Manual # ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- インストールマニフェストファイルをまだ作成していない場合は、次のコマンドを実行して作成します。 - openshift-install create manifests --dir <installation_directory> - $ openshift-install create manifests --dir <installation_directory>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - ここで、 - <installation_directory>は、インストールプログラムがファイルを作成するディレクトリーに置き換えます。
- 次のコマンドを実行して、インストールファイルのリリースイメージを - $RELEASE_IMAGE変数に設定します。- RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')- $ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 以下のコマンドを実行して、OpenShift Container Platform リリースイメージから - CredentialsRequestカスタムリソース (CR) のリストを抽出します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - このコマンドにより、それぞれの - CredentialsRequestオブジェクトに YAML ファイルが作成されます。- サンプル - CredentialsRequestオブジェクト- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 以前に生成した - openshift-installマニフェストディレクトリーにシークレットの YAML ファイルを作成します。シークレットは、それぞれの- CredentialsRequestオブジェクトについて- spec.secretRefに定義される namespace およびシークレット名を使用して保存する必要があります。- シークレットを含む - CredentialsRequestオブジェクトのサンプル- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - サンプル - Secretオブジェクト- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
手動でメンテナンスされる認証情報を使用するクラスターをアップグレードする前に、CCO がアップグレード可能な状態であることを確認します。
8.9.2. 短期認証情報を使用するように Azure クラスターを設定する
Microsoft Entra Workload ID を使用するクラスターをインストールするには、Cloud Credential Operator ユーティリティーを設定し、クラスターに必要な Azure リソースを作成する必要があります。
8.9.2.1. Cloud Credential Operator ユーティリティーの設定
						Cloud Credential Operator (CCO) が手動モードで動作しているときにクラスターの外部からクラウドクレデンシャルを作成および管理するには、CCO ユーティリティー (ccoctl) バイナリーを抽出して準備します。
					
							ccoctl ユーティリティーは、Linux 環境で実行する必要がある Linux バイナリーです。
						
前提条件
- クラスター管理者のアクセスを持つ OpenShift Container Platform アカウントを使用できる。
- 
								OpenShift CLI (oc) がインストールされている。
- 次の権限で使用する - ccoctlユーティリティー用のグローバル Microsoft Azure アカウントが作成されました。- 例8.3 必要な Azure 権限 - Microsoft.Resources/subscriptions/resourceGroups/read
- Microsoft.Resources/subscriptions/resourceGroups/write
- Microsoft.Resources/subscriptions/resourceGroups/delete
- Microsoft.Authorization/roleAssignments/read
- Microsoft.Authorization/roleAssignments/delete
- Microsoft.Authorization/roleAssignments/write
- Microsoft.Authorization/roleDefinitions/read
- Microsoft.Authorization/roleDefinitions/write
- Microsoft.Authorization/roleDefinitions/delete
- Microsoft.Storage/storageAccounts/listkeys/action
- Microsoft.Storage/storageAccounts/delete
- Microsoft.Storage/storageAccounts/read
- Microsoft.Storage/storageAccounts/write
- Microsoft.Storage/storageAccounts/blobServices/containers/write
- Microsoft.Storage/storageAccounts/blobServices/containers/delete
- Microsoft.Storage/storageAccounts/blobServices/containers/read
- Microsoft.ManagedIdentity/userAssignedIdentities/delete
- Microsoft.ManagedIdentity/userAssignedIdentities/read
- Microsoft.ManagedIdentity/userAssignedIdentities/write
- Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/read
- Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
- Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/delete
- Microsoft.Storage/register/action
- Microsoft.ManagedIdentity/register/action
 
手順
- 次のコマンドを実行して、OpenShift Container Platform リリースイメージの変数を設定します。 - RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')- $ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 以下のコマンドを実行して、OpenShift Container Platform リリースイメージから CCO コンテナーイメージを取得します。 - CCO_IMAGE=$(oc adm release info --image-for='cloud-credential-operator' $RELEASE_IMAGE -a ~/.pull-secret) - $ CCO_IMAGE=$(oc adm release info --image-for='cloud-credential-operator' $RELEASE_IMAGE -a ~/.pull-secret)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注記- $RELEASE_IMAGEのアーキテクチャーが、- ccoctlツールを使用する環境のアーキテクチャーと一致していることを確認してください。
- 以下のコマンドを実行して、OpenShift Container Platform リリースイメージ内の CCO コンテナーイメージから - ccoctlバイナリーを抽出します。- oc image extract $CCO_IMAGE \ --file="/usr/bin/ccoctl.<rhel_version>" \ -a ~/.pull-secret - $ oc image extract $CCO_IMAGE \ --file="/usr/bin/ccoctl.<rhel_version>" \- 1 - -a ~/.pull-secret- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- <rhel_version>には、ホストが使用する Red Hat Enterprise Linux (RHEL) のバージョンに対応する値を指定します。値が指定されていない場合は、デフォルトで- ccoctl.rhel8が使用されます。次の値が有効です。- 
												rhel8: RHEL 8 を使用するホストの場合はこの値を指定します。
- 
												rhel9: RHEL 9 を使用するホストの場合はこの値を指定します。
 
- 
												
 
- 次のコマンドを実行して、権限を変更して - ccoctlを実行可能にします。- chmod 775 ccoctl.<rhel_version> - $ chmod 775 ccoctl.<rhel_version>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
検証
- ccoctlが使用できることを確認するには、help ファイルを表示します。コマンドを実行するときは、相対ファイル名を使用します。以下に例を示します。- ./ccoctl.rhel9 - $ ./ccoctl.rhel9- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
8.9.2.2. Cloud Credential Operator ユーティリティーを使用した Azure リソースの作成
						ccoctl azure create-all コマンドを使用して、Azure リソースの作成を自動化できます。
					
							デフォルトで、ccoctl はコマンドが実行されるディレクトリーにオブジェクトを作成します。オブジェクトを別のディレクトリーに作成するには、--output-dir フラグを使用します。この手順では、<path_to_ccoctl_output_dir> を使用してこの場所を参照します。
						
前提条件
以下が必要になります。
- 
								ccoctlバイナリーを抽出して準備している。
- Azure CLI を使用して Microsoft Azure アカウントにアクセスします。
手順
- 次のコマンドを実行して、インストールファイルのリリースイメージを - $RELEASE_IMAGE変数に設定します。- RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')- $ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 以下のコマンドを実行して、OpenShift Container Platform リリースイメージから - CredentialsRequestオブジェクトのリストを抽出します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注記- このコマンドの実行には少し時間がかかる場合があります。 
- ccoctlユーティリティーが Azure 認証情報を自動的に検出できるようにするには、次のコマンドを実行して Azure CLI にログインします。- az login - $ az login- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のコマンドを実行し、 - ccoctlツールを使用して- CredentialsRequestオブジェクトをすべて処理します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- トラッキングに使用される、作成されたすべての Azure リソースのユーザー定義名を指定します。
- 2
- オプション:ccoctlユーティリティーがオブジェクトを作成するディレクトリーを指定します。デフォルトでは、ユーティリティーは、コマンドが実行されるディレクトリーにオブジェクトを作成します。
- 3
- クラウドリソースが作成される Azure リージョンです。
- 4
- 使用する Azure サブスクリプション ID を指定します。
- 5
- コンポーネントCredentialsRequestオブジェクトのファイルを含むディレクトリーを指定します。
- 6
- クラスターのベースドメイン Azure DNS ゾーンを含むリソースグループの名前を指定します。
- 7
- 使用する Azure テナント ID を指定します。
- 8
- オプション: 仮想ネットワークリソースグループがクラスターリソースグループと異なる場合は、それを指定します。
 注記- クラスターで - TechPreviewNoUpgrade機能セットによって有効化されたテクノロジープレビュー機能を使用している場合は、- --enable-tech-previewパラメーターを含める必要があります。- 追加のオプションパラメーターとその使用方法の説明を表示するには、 - azure create-all --helpコマンドを実行します。
検証
- OpenShift Container Platform シークレットが作成されることを確認するには、 - <path_to_ccoctl_output_dir>/manifestsディレクトリーのファイルを一覧表示します。- ls <path_to_ccoctl_output_dir>/manifests - $ ls <path_to_ccoctl_output_dir>/manifests- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - Azure をクエリーすることで、Microsoft Entra ID サービスアカウントが作成されていることを確認できます。詳細は、Entra ID サービスアカウントのリストに関する Azure ドキュメントを参照してください。 
8.9.2.3. Cloud Credential Operator ユーティリティーマニフェストの組み込み
						個々のコンポーネントに対してクラスターの外部で管理される短期セキュリティー認証情報を実装するには、Cloud Credential Operator ユーティリティー (ccoctl) が作成したマニフェストファイルを、インストールプログラムの正しいディレクトリーに移動する必要があります。
					
前提条件
- クラスターをホストするクラウドプラットフォームでアカウントを設定した。
- 
								Cloud Credential Operator ユーティリティー (ccoctl) が設定されている。
- 
								ccoctlユーティリティーを使用して、クラスターに必要なクラウドプロバイダーリソースを作成している。
手順
- install-config.yaml設定ファイルの- credentialsModeパラメーターを- Manualに設定しなかった場合は、次のように値を変更します。- 設定ファイルのサンプルスニペット - apiVersion: v1 baseDomain: example.com credentialsMode: Manual # ... - apiVersion: v1 baseDomain: example.com credentialsMode: Manual # ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 既存のリソースグループを使用する代わりに、 - ccoctlユーティリティーを使用して新しい Azure リソースグループを作成した場合は、次のように- install-config.yamlの- resourceGroupNameパラメーターを変更します。- 設定ファイルのサンプルスニペット - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- この値は、ccoctl azure create-allコマンドの--name引数で指定された Azure リソースのユーザー定義名と一致する必要があります。
 
- インストールマニフェストファイルをまだ作成していない場合は、次のコマンドを実行して作成します。 - openshift-install create manifests --dir <installation_directory> - $ openshift-install create manifests --dir <installation_directory>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - ここで、 - <installation_directory>は、インストールプログラムがファイルを作成するディレクトリーに置き換えます。
- 次のコマンドを実行して、 - ccoctlユーティリティーが生成したマニフェストを、インストールプログラムが作成した- manifestsディレクトリーにコピーします。- cp /<path_to_ccoctl_output_dir>/manifests/* ./manifests/ - $ cp /<path_to_ccoctl_output_dir>/manifests/* ./manifests/- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 秘密鍵を含む - tlsディレクトリーをインストールディレクトリーにコピーします。- cp -a /<path_to_ccoctl_output_dir>/tls . - $ cp -a /<path_to_ccoctl_output_dir>/tls .- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow