第9章 Operator のインストールおよびアップグレードについてのポリシーの作成


Operator の実行には幅広い権限が必要になる可能性があり、必要な権限はバージョン間で異なる場合があります。Operator Lifecycle Manager (OLM) は、cluster-admin 権限で実行されます。デフォルトで、Operator の作成者は ClusterServiceVersion (CSV) で任意のパーミッションのセットを指定でき、OLM はこれを Operator に付与します。

クラスター管理者は、Operator がクラスタースコープの権限を実行できず、ユーザーが OLM を使用して権限をエスカレートできないようにするよう対策を取る必要があります。これを制限する方法として、クラスター管理者は Operator をクラスターに追加される前に監査する必要があります。また、クラスター管理者には、サービスアカウントを使用した Operator のインストールまたはアップグレード時に許可されるアクションを判別し、制限するための各種ツールが提供されます。

OperatorGroup を、その権限のセットが付与されたサービスアカウントセットに関連付けることにより、クラスター管理者は Operator にポリシーを設定して、それらが RBAC ルールを使用して事前に決定された境界内でのみ動作するようにできます。Operator は、それらのルールによって明示的に許可されていないことはいずれも実行できません。

クラスター管理者以外のユーザーによるこの自己完結型の、スコープが制限された Operator のインストールによって、より多くのユーザーがさらに多くの Operator Framework ツールを利用でき、Operator によるアプリケーションのビルドのエクスペリエンスが強化されます。

9.1. Operator インストールポリシーについて

OLM を使用すると、クラスター管理者は OperatorGroup に関連付けられたすべての Operator がデプロイされ、サービスアカウントに付与される権限に基づいてデプロイされ、実行されるように OperatorGroup のサービスアカウントを指定できます。

APIService および CustomResourceDefinition リソースは、cluster-admin ロールを使用して OLM によって常に作成されます。OperatorGroup に関連付けられたサービスアカウントには、これらのリソースを作成するための権限を付与できません。

指定したサービスアカウントがインストールまたはアップグレードされる Operator についての適切なパーミッションを持たない場合、便利なコンテキスト情報がそれぞれのリソースのステータスに追加されます。これにより、管理者が問題のトラブルシューティングおよび解決が容易になります。

この OperatorGroup に関連付けられる Operator は、指定されたサービスアカウントに付与されるパーミッションに制限されます。Operator がサービスアカウントの範囲外のパーミッションを要求する場合、インストールは適切なエラーを出して失敗します。

9.1.1. インストールシナリオ

Operator をクラスターでインストールまたはアップグレードできるかどうかを決定する際に、OLM は以下のシナリオを検討します。

  • クラスター管理者は新規の OperatorGroup を作成し、サービスアカウントを指定します。この OperatorGroup に関連付けられるすべての Operator がサービスアカウントに付与される権限に基づいてインストールされ、実行されます。
  • クラスター管理者は新規の OperatorGroup を作成し、サービスアカウントを指定しません。OpenShift Container Platform は後方互換性を維持します。そのため、デフォルト動作はそのまま残り、Operator のインストールおよびアップグレードは許可されます。
  • サービスアカウントを指定しない既存の OperatorGroup の場合、デフォルトの動作は残り、Operator のインストールおよびアップグレードは許可されます。
  • クラスター管理者は既存の OperatorGroup を更新し、サービスアカウントを指定します。OLM により、既存の Operator は現在の権限で継続して実行されます。このような既存 Operator がアップグレードされる場合、これは再インストールされ、新規 Operator のようにサービスアカウントに付与される権限に基づいて実行されます。
  • OperatorGroup で指定されるサービスアカウントは、パーミッションの追加または削除によって変更されるか、または既存のサービスアカウントは新しいサービスアカウントに切り替わります。既存の Operator がアップグレードされる場合、これは再インストールされ、新規 Operator のように更新されたサービスアカウントに付与される権限に基づいて実行されます。
  • クラスター管理者は、サービスアカウントを OperatorGroup から削除します。デフォルトの動作は残り、Operator のインストールおよびアップグレードは許可されます。

9.1.2. インストールワークフロー

OperatorGroup がサービスアカウントに関連付けられ、Operator がインストールまたはアップグレードされると、OLM は以下のワークフローを使用します。

  1. 指定された Subscription オブジェクトは OLM によって選択されます。
  2. OLM はこの Subscription に関連する OperatorGroup をフェッチします。
  3. OLM は OperatorGroup にサービスアカウントが指定されていることを判別します。
  4. OLM はサービスアカウントにスコープが設定されたクライアントを作成し、スコープ設定されたクライアントを使用して Operator をインストールします。これにより、Operator で要求されるパーミッションは常に OperatorGroup のそのサービスアカウントのパーミッションに制限されるようになります。
  5. OLM は CSV で指定されたパーミッションセットを使用して新規サービスアカウントを作成し、これを Operator に割り当てます。Operator は割り当てられたサービスアカウントで実行されます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.