第6章 Red Hat Operator
6.1. Cloud Credential Operator
目的
Cloud Credential Operator (CCO) は、クラウドプロバイダーの認証情報を Kubernetes カスタムリソース定義 (CRD) として管理します。CCO は credentialsRequest
カスタムリソース (CR) で同期し、OpenShift Container Platform コンポーネントが、クラスターの実行に必要な特定のパーミッションと共にクラウドプロバイダーの認証情報を要求できるようにします。
install-config.yaml
ファイルで credentialsMode
パラメーターに異なる値を設定すると、CCO は複数の異なるモードで動作するように設定できます。モードが指定されていない場合や、credentialsMode
パラメーターが空の文字列 (""
) に設定されている場合、CCO はデフォルトモードで動作します。
デフォルトの動作
複数のモードがサポートされるプラットフォーム (AWS、Azure、および GCP) の場合、CCO がデフォルトモードで動作する際に、これは指定される認証情報を動的にチェックし、credentialsRequest
CR を処理するのに十分なモードを判別します。
デフォルトで、CCO は推奨される操作モードの mint モードに十分な認証情報があるかどうかを判別し、これらの認証情報を使用してクラスター内のコンポーネントの適切な認証情報を作成します。mint モードに十分な認証情報がない場合は、passthrough モードに十分な認証情報があるかどうかを判別します。passthrough モードに十分な認証情報がない場合、CCO は credentialsRequest
CR を適切に処理できません。
CCO は、Azure 認証情報が passthrough モードに十分であるかどうかを検証できません。Azure 認証情報が mint モードに不十分な場合、CCO は認証情報が passthrough モードには十分であることを前提として動作します。
インストール時に提供された認証情報が不十分であると判別される場合、インストールは失敗します。AWS では、インストーラーはプロセスの早期の段階で失敗し、どの必須パーミッションが欠落しているかを示します。他のプロバイダーは、エラーが発生するまでエラーの原因についての具体的な情報を提供しない場合があります。
認証情報が正常なインストールの後に変更され、CCO が新規の認証情報が不十分であると判別する場合に、CCO は新規の credentialsRequest
CR に条件を追加し、認証情報が不十分であるためにそれらを処理できないことを示唆します。
不十分な認証情報についての問題を解決するために、適切なパーミッションで認証情報を指定します。エラーがインストール時に発生した場合は、再度インストールを試行します。新規の credentialsRequest
CR 関連の問題については、CCO が再び CR の処理を試行するのを待機します。別の方法として、AWS、Azure、または GCP の IAM を手動で作成できます。詳細は、AWS、Azure、または GCP のインストールコンテンツの IAM の手動作成 についてのセクションを参照してください。
モード
install-config.yaml
ファイルに credentialsMode
パラメーターの異なる値を設定することで、CCO を mint、passthrough、または manual モードで動作するように設定できます。これらのオプションにより、CCO がクラウド認証情報を使用してクラスターで credentialsRequest
CR を処理し、CCO を組織のセキュリティー要件に対応するように設定する方法において透明性と柔軟性が提供されます。すべてのクラウドプロバイダーですべての CCO モードがサポートされているわけではありません。
Mint モード
mint モードは AWS、Azure、および GCP でサポートされます。
mint モードは、CCO が使用するデフォルトかつ推奨されるベストプラクティスの設定です。このモードでは、CCO は提供される管理レベルのクラウド認証情報を使用してクラスターを実行します。
インストール後に認証情報が削除されない場合、これは CCO によって保存され、クラスター内のコンポーネントの credentialsRequest
CR を処理し、必要な特定のパーミッションのみでそれぞれの新規の認証情報を作成するために使用されます。mint モードでクラウド認証情報を継続的に調整することで、アップグレードなどの追加の認証情報またはパーミッションを必要とするアクションを続行できます。
mint モードがクラスターの kube-system
namespace に管理者レベルの認証情報を保存する要件は、すべての組織のセキュリティー要件に適さない可能性があります。
mint モードで CCO を使用する場合、指定する認証情報が OpenShift Container Platform を実行し、インストールしているクラウドの各種要件を満たしていることを確認してください。指定される認証情報が mint モードで不十分な場合、CCO は IAM ユーザーを作成できません。
クラウド | パーミッション |
---|---|
AWS |
|
Azure | Azure アカウントの設定 コンテンツの サービスプリンシパルの作成 のセクションで指定されるパーミッションを持つサービスプリンシパル |
GCP |
|
管理者レベルの認証情報の削除またはローテーション機能を持つ mint モード
管理者レベルの認証情報の削除またはローテーション機能を持つ mint モードは、OpenShift Container Platform バージョン 4.4 以降で AWS でサポートされます。
このオプションでは、インストール時に管理者レベルの認証情報が必要ですが、認証情報はクラスターに永続的に保存されないため、有効期間を長くする必要はありません。
OpenShift Container Platform を mint モードでインストールした後に、管理者レベルの認証情報の Secret をクラスターから削除できます。Secret を削除する場合、CCO は、すべての credentialsRequest
CR に必要なパーミッションがあるかどうかを確認することを可能にする、以前に作成された読み取り専用の認証情報を使用します。削除された後に、必要な場合は、関連付けられた認証情報は基礎となるクラウドで破棄できます。
管理者レベルの認証情報を必要とするものがアップグレード時などに変更される必要がない限り、管理者レベルの認証情報を必要はありません。それぞれのアップグレードの前に、認証情報の Secret を管理者レベルの認証情報と共に元に戻す必要があります。認証情報が存在しない場合は、アップグレードがブロックされる可能性があります。
passthrough モード
passthrough モードは、AWS、Azure、GCP、Red Hat OpenStack Platform (RHOSP)、Red Hat Virtualization (RHV)、および VMware vSphere でサポートされています。
passthrough モードでは、CCO はクラウド認証情報を要求するコンポーネントに、指定されたクラウド認証情報を渡します。認証情報には、インストールを実行し、クラスター内のコンポーネントで必要な操作を完了するためのパーミッションが必要ですが、認証情報を新たに作成する必要はありません。CCO は、passthrough モードで、追加の制限されたスコープの認証情報の作成を試行しません。
passthrough モードのパーミッション要件
passthrough モードで CCO を使用する場合、指定する認証情報が OpenShift Container Platform を実行し、インストールしているクラウドの各種要件を満たしていることを確認してください。CCO が credentialsRequest
CR を作成するコンポーネントに渡す指定された認証情報が不十分な場合に、そのコンポーネントは、パーミッションがない API の呼び出しを試行する際にエラーを報告します。
AWS、Azure、または GCP の passthrough モードに指定する認証情報には、実行し、インストールしている OpenShift Container Platform のバージョンで必要なすべての credentialsRequest
CR に必要なすべての必須パーミッションがなければなりません。クラウドプロバイダーに必要な credentialsRequest
CR を見つけるには、AWS、Azure、または GCP のインストールコンテンツの IAM の手動作成 についてのセクションを参照してください。
OpenShift Container Platform クラスターを Red Hat OpenStack Platform (RHOSP) にインストールするには、CCO では member
ユーザーロールのパーミッションと共に認証情報が必要になります。
OpenShift Container Platform クラスターを Red Hat Virtualization (RHV) にインストールするには、CCO には、以下の権限と共に認証情報が必要になります。
-
DiskOperator
-
DiskCreator
-
UserTemplateBasedVm
-
TemplateOwner
-
TemplateCreator
-
OpenShift Container Platform デプロイメントにターゲットが設定される特定クラスターの
ClusterAdmin
OpenShift Container Platform クラスターを VMware vSphere にインストールするには、CCO には以下の vSphere 権限と共に認証情報が必要になります。
カテゴリー | 権限 |
---|---|
データストア | 領域の割り当て |
フォルダー | フォルダーの作成、フォルダーの削除 |
vSphere タグ | すべての権限 |
ネットワーク | ネットワークの割り当て |
リソース | 仮想マシンのリソースプールへの割り当て |
プロファイル駆動型ストレージ | すべての権限 |
vApp | すべての権限 |
仮想マシン | すべての権限 |
passthrough モードの認証情報のメンテナーンス
credentialsRequest
CR がクラスターのアップグレード時に変更される場合、各種要件を満たすために passthrough モードの認証情報を手動で更新する必要があります。アップグレード時の認証情報の問題を回避するには、アップグレードの前に、新規バージョンの OpenShift Container Platform のリリースイメージで credentialsRequest
CR を確認します。クラウドプロバイダーに必要な credentialsRequest
CR を見つけるには、AWS、Azure、または GCP のインストールコンテンツの IAM の手動作成 についてのセクションを参照してください。
インストール後のパーミッションの縮小
passthrough モードを使用する場合、各コンポーネントには他のすべてのコンポーネントによって使用されるパーミッションと同じパーミッションがあります。インストール後にパーミッションを縮小しない場合、すべてのコンポーネントにはインストーラーの実行に必要な幅広いパーミッションが付与されます。
インストール後に、認証情報のパーミッションを、クラスターの実行に必要なパーミッションに制限できます。これは、使用している OpenShift Container Platform バージョンのリリースイメージの credentialsRequest
CR で定義されます。
AWS、Azure、または GCP に必要な credentialsRequest
CR を見つけ、CCO が使用するパーミッションを変更する方法については、AWS、Azure、または GCP のインストールコンテンツの IAM の手動作成 についてのセクションを参照してください。
手動モード
手動モードは AWS でサポートされます。
手動モードでは、ユーザーは CCO の代わりにクラウド認証情報を管理します。このモードを使用するには、実行またはインストールしている OpenShift Container Platform バージョンのリリースイメージの credentialsRequest
CR を検査し、基礎となるクラウドプロバイダーで対応する認証情報を作成し、クラスターのクラウドプロバイダーのすべての credentialsRequest
CR に対応するために Kubernetes Secret を正しい namespace に作成する必要があります。
手動モードを使用すると、クラスターに管理者レベルの認証情報を保存する必要なく、各クラスターコンポーネントに必要なパーミッションのみを指定できます。このモードでは、AWS パブリック IAM エンドポイントへの接続も必要ありません。ただし、各アップグレードについて、パーミッションを新規リリースイメージを使用して手動で調整する必要があります。
手動モードを使用するように AWS を設定する方法についての詳細は、AWS の IAM の手動作成 について参照してください。
無効にされた CCO
無効にされた CCO は Azure および GCP でサポートされます。
Azure または GCP の認証情報を手動で管理するには、CCO を無効にする必要があります。CCO を無効にする場合には、手動モードで CCO を実行する場合と同様の設定やメンテナーンスの要件が多数適用されますが、異なるプロセスでこれを実行できます。詳細は、Azure または GCP のインストールコンテンツの IAM の手動作成についてのセクションを参照してください。
プロジェクト
openshift-cloud-credential-operator
CRD
credentialsrequests.cloudcredential.openshift.io
- スコープ: Namespaced
-
CR:
credentialsrequest
- 検証: Yes
設定オブジェクト
必要な設定はありません。