この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

認証の設定

RancherがKubernetesに追加する主な機能の1つは、一元化されたユーザー認証です。この機能により、ユーザーは任意のKubernetesクラスターに対して同一の認証情報を使用して認証できます。

この一元化されたユーザ認証は、Rancher認証プロキシを使用して実施され、このプロキシはRancherの他の部分と一緒にインストールされます。このプロキシはユーザーを認証し、サービスアカウントを使用してKubernetesクラスターへのリクエストを転送します。

外部プロバイダーを有効にするために使用されるアカウントには管理者権限が付与されます。テストアカウントや非管理者アカウントを使用する場合でも、そのアカウントには管理者レベルの権限が付与されます。理由を理解するには、外部認証設定とプリンシパルユーザーを参照してください。

外部認証とローカル認証

Rancher 認証プロキシは、以下の外部認証サービスと統合されています。

認証サービス

Microsoft Active Directory

GitHub

Microsoft Azure AD

FreeIPA

OpenLDAP

Microsoft AD FS

PingIdentity

Keycloak (OIDC)

Keycloak (SAML)

Okta

Google OAuth

Shibboleth

Generic (OIDC)

ただし、Rancher は ローカル認証 も提供しています。

ほとんどの場合、ローカル認証よりも外部認証サービスを使用するべきです。外部認証は中央の場所からユーザー管理を可能にします。ただし、外部認証プロバイダーが利用できない場合やメンテナンス中の場合など、稀な状況下で Rancher を管理するために、いくつかのローカル認証ユーザーが必要になることがあります。

ユーザとグループ

  • ローカル認証は、グループの作成や管理をサポートしていません。

  • 外部認証プロバイダーが設定された後、ローカル Rancher スコープの管理者ユーザーは、各認証プロバイダーのメンバーであるユーザーやグループなどのリソースのみを表示します。

Rancherは、誰がRancherにログインできるか、どのリソースにアクセスできるかを判断するために、ユーザーとグループに依存しています。外部プロバイダーで認証する際、グループはユーザーに基づいて外部プロバイダーから提供されます。これらのユーザーとグループには、クラスター、プロジェクト、グローバルDNSプロバイダーおよびエントリなどのリソースに対して特定の役割が与えられます。グループにアクセスを許可すると、そのグループのメンバーであるすべてのユーザーが、指定した権限でリソースにアクセスできるようになります。役割と権限に関する詳細は、ロールベースのアクセス制御を参照してください。

詳細については、ユーザーとグループを参照してください。

Rancherの認可範囲

Rancherを外部認証サービスを使用してサインオンできるように設定した後、誰がRancherにログインして使用できるかを設定する必要があります。次のオプションを指定できます。

アクセスレベル 説明

有効なユーザーを許可する

_任意の_ユーザーは認可サービスでRancherにアクセスできます。この設定の使用は一般的に推奨されません!

クラスター、プロジェクト、承認されたユーザーおよび組織のメンバーを許可する

認可サービス内の任意のユーザーと、*クラスター メンバー*または*プロジェクト メンバー*として追加された任意のグループは、Rancherにログインできます。さらに、認証サービス内の任意のユーザーまたはグループを*承認されたユーザーおよび組織*リストに追加すると、Rancherにログインできます。

承認されたユーザーおよび組織のみにアクセスを制限する

認証サービス内のユーザーまたは承認されたユーザーおよび組織に追加されたグループのみがRancherにログインできます。

ローカルクラスタには信頼された管理者レベルのユーザーのみがアクセスできるべきであり、これはRancherインスタンス内の他のすべてのクラスターを管理します。Rancherはローカルクラスタに直接インストールされており、Rancherの管理機能により、ローカルクラスタの管理者はダウンストリームクラスタをプロビジョニング、変更、接続、および詳細を表示できます。ローカルクラスタはRancherインスタンスのアーキテクチャの鍵であるため、不適切なアクセスはセキュリティリスクを伴います。

認可サービス内のユーザーに対するRancherのアクセスレベルを設定するには、次の手順に従ってください。

  1. 左上隅で、*☰ > ユーザーと認証*をクリックします。

  2. 左のナビゲーションバーで、*認証プロバイダー*をクリックします。

  3. 認証プロバイダーの設定詳細を設定した後、*サイトアクセス*オプションを使用してユーザー認可の範囲を設定します。上記の表は、各オプションのアクセスレベルを説明しています。

  4. オプション:*任意の有効なユーザーを許可する*以外のオプションを選択した場合、表示されるテキストフィールドでユーザーを検索することにより、承認されたユーザーおよび組織のリストにユーザーを追加できます。

  5. 保存]をクリックします。

*結果:*Rancherのアクセス構成設定が適用されました。

SAMLプロバイダーの注意点
  • Rancherで権限を割り当てる際、ユーザーとグループは検証されません。

  • ユーザーを追加する際、正確なユーザーID(つまり`UID Field`)を正しく入力する必要があります。ユーザーIDを入力すると、他の一致するユーザーIDの検索は行われません。

  • グループを追加する際は、テキストボックスの隣にあるドロップダウンからグループを選択する必要があります。Rancherは、テキストボックスからの入力がユーザーであると仮定します。

  • グループのドロップダウンには、あなたがメンバーであるグループのみが表示されます。ただし、管理者権限または制限された管理者権限を持っている場合、メンバーでないグループに参加することができます。

外部認証の設定とプリンシパルユーザー

外部認証の設定には以下が必要です:

  • 管理者ロールが割り当てられたローカルユーザー、以下では_ローカルプリンシパル_と呼びます。

  • 外部認証サービスで認証できる外部ユーザー、以下では_外部プリンシパル_と呼びます。

外部認証の設定は、Rancher内でのプリンシパルユーザーの管理にも影響します。具体的には、ユーザーアカウントが外部プロバイダーを有効にすると、管理者レベルの権限が付与されます。これは、ローカルプリンシパルと外部プリンシパルが同じユーザーIDとアクセス権を共有しているためです。

以下の手順でこれらの影響を示します:

  1. ローカルプリンシパルとしてRancherにサインインし、外部認証の設定を完了します。

    サインイン
  2. Rancherは外部プリンシパルをローカルプリンシパルに関連付けます。これらの2つのユーザーはローカルプリンシパルのユーザーIDを共有しています。

    プリンシパルIDの共有
  3. 設定を完了すると、Rancherは自動的にローカルプリンシパルのサインアウトを行います。

    ローカルプリンシパルのサインアウト
  4. その後、Rancherは自動的に外部プリンシパルとして再度サインインします。

    外部プリンシパルのサインイン
  5. 外部プリンシパルとローカルプリンシパルがIDを共有しているため、ユーザーページに外部プリンシパルのユニークなオブジェクトは表示されません。

    外部プリンシパルのサインイン
  6. 外部プリンシパルとローカルプリンシパルは同じアクセス権を共有しています。

以前に設定された認証プロバイダーの再設定

以前に設定されたプロバイダーを再設定または無効にしてから再度有効にする必要がある場合は、試みるユーザーがローカル管理者ではなく外部ユーザーとしてRancherにログインしていることを確認してください。

認証プロバイダーの無効化

認証プロバイダーを無効にすると、Rancherはそれに関連するすべてのリソースを削除します。例えば:

  • シークレット。

  • グローバルロールバインディング。

  • クラスター ロール テンプレート バインディング。

  • プロジェクト ロール テンプレート バインディング。

  • プロバイダーに関連付けられた外部ユーザーですが、Rancherにローカルユーザーとしてログインしたことはありません。

この操作は多くのリソースの損失につながる可能性があるため、プロバイダーに対して保護策を追加することをお勧めします。このクリーンアッププロセスが認証プロバイダーが無効になっているときに実行されないようにするには、対応する認証設定に特別なアノテーションを追加してください。

例えば、Azure ADプロバイダーに保護策を追加するには、`azuread`認証設定オブジェクトにアノテーションを付けます:

kubectl annotate --overwrite authconfig azuread management.cattle.io/auth-provider-cleanup='user-locked'

Rancherは、アノテーションを`unlocked`に設定するまでクリーンアップを実行しません。

リソースクリーンアップを手動で実行する

Rancherは、別の認証プロバイダーを構成した後でも、ローカルクラスタ内の以前に無効にした認証プロバイダー構成からリソースを保持する場合があります。例えば、プロバイダーAを使用し、それを無効にしてプロバイダーBを使用し始めた場合、Rancherの新しいバージョンにアップグレードすると、プロバイダーAによって構成されたリソースのクリーンアップを手動でトリガーできます。

無効な認証プロバイダーのクリーンアップを手動でトリガーするには、その認証設定に`management.cattle.io/auth-provider-cleanup`アノテーションと`unlocked`値を追加します。