sql >> データベース >  >> RDS >> MariaDB

ClusterControl1.8.2の新しいユーザーとLDAP管理

    ClusterControl 1.8.2にアップグレードすると、次の通知バナーが表示されます。

    どうしたの?これは、ClusterControlコントローラーサービス(cmon)によって処理される新しいユーザー管理システムを優先する現在のユーザー管理システムの減価償却通知です。バナーをクリックすると、このユーザーガイドで説明されているように、新しい管理者ユーザーを作成するためのユーザー作成ページにリダイレクトされます。

    このブログ投稿では、ClusterControl 1.8.2で導入された新しいユーザー管理システムを調べ、以前のシステムとの違いを確認します。明確にするために、古いユーザー管理システムは、2022年第1四半期まで、新しいユーザー認証および管理システムと並行して機能します。今後、ClusterControl 1.8.2以降のすべての新しいインストールは、新しいユーザーで構成されます。管理システム。

    ユーザー管理1.8.2より前

    ClusterControl 1.8.1以前では、ユーザー情報とアカウンティングが「dcps」と呼ばれるWebUIデータベース内に保存されます。このデータベースは、ClusterControl Controllerサービス(cmon)によって使用されるcmonデータベースから独立しています。

    ユーザーアカウントと認証 ユーザーアカウントは、次の情報で構成されています。

    • 名前

    • タイムゾーン

    • メール(認証に使用)

    • パスワード

    • 役割

    • チーム

    次のスクリーンショットに示すように、電子メールアドレスを使用してClusterControlGUIにログインします。

    ログインすると、ClusterControlはユーザーが所属する組織を検索し、特定のクラスターと機能にアクセスするための役割ベースのアクセス制御(RBAC)を割り当てます。チームは0個以上のクラスターを持つことができますが、ユーザーは1つ以上のチームに属している必要があります。ユーザーを作成するには、事前に作成された役割とチームが必要です。 ClusterControlには、管理者と呼ばれるデフォルトのチームと、スーパー管理者、管理者、ユーザーの3つのデフォルトの役割が付属しています。

    アクセス許可とアクセス制御

    ClusterControl 1.8.1以前は、役割の割り当てに基づくUIベースのアクセス制御を使用していました。別の用語では、この役割ベースのアクセス制御(RBAC)と呼びます。管理者は役割を作成し、すべての役割に特定の機能とページにアクセスするための一連の権限が割り当てられます。役割の強制はフロントエンド側で発生します。この場合、情報がこれら2つの認証エンジン間で共有されることはないため、ClusterControlコントローラーサービス(cmon)はアクティブユーザーが機能にアクセスできるかどうかを認識しません。これにより、特にGUIとCLIの両方のインターフェイスと互換性のある機能を追加する場合に、認証と承認の制御が将来的に困難になります。

    次のスクリーンショットは、RBACを介して制御できる利用可能な機能を示しています。

    管理者は、特定の機能に関連するアクセスレベルを選択するだけで、「dcps」データベース内に保存され、ClusterControlGUIによって使用されてGUIユーザーにUIリソースを許可します。ここで作成されたアクセスリストは、CLIユーザーとは何の関係もありません。

    LDAP

    ClusterControl pre-1.8.1は、LDAP認証にPHPLDAPモジュールを使用していました。 Active Directory、OpenLDAP、FreeIPAディレクトリサービスをサポートしていますが、uid、cn、sAMAccountNameなどのユーザー識別に使用できるLDAP属性の数は限られています。実装はかなり簡単で、高度なユーザー/グループベースのフィルタリング、属性マッピング、TLS実装をサポートしていません。

    LDAP設定に必要な情報は次のとおりです。

    これはフロントエンドサービスであるため、LDAPログファイルはWebアプリディレクトリ、特に/var/www/html/clustercontrol/app/log/cc-ldap.log。認証されたユーザーは、LDAPグループマッピングページで定義されているように、特定のClusterControlの役割とチームにマップされます。

    ユーザー管理post-1.8.2

    この新しいバージョンでは、ClusterControlは、認証ハンドラー、フロントエンド認証(電子メールアドレスを使用)とバックエンド認証(ユーザー名を使用)の両方をサポートします。バックエンド認証の場合、ClusterControlは、ClusterControl Controllerサービス(cmon)によって使用されるcmonデータベース内にユーザー情報とアカウンティングを格納します。

    ユーザーアカウントと認証 ユーザーアカウントは、次の情報で構成されています。

    • ユーザー名(認証に使用)

    • メールアドレス

    • フルネーム

    • タグ

    • オリジン

    • 無効

    • 一時停止

    • グループ

    • 所有者

    • ACL

    • ログインに失敗しました

    • CDTパス

    古い実装と比較すると、新しいユーザー管理にはユーザーに関するより多くの情報が含まれているため、複雑なユーザーアカウントの操作と、セキュリティが強化されたアクセス制御の向上が可能になります。ユーザー認証プロセスはブルートフォース攻撃から保護され、メンテナンスまたはセキュリティ上の理由で非アクティブ化できるようになりました。

    次のスクリーンショットに示すように、電子メールアドレスまたはユーザー名を使用してClusterControl GUIにログインします([ユーザー名]フィールドのプレースホルダーテキストに注意してください):

    ユーザーがメールアドレスを使用してログインすると、ユーザーは認証されます非推奨のフロントエンドユーザー管理サービスを介して、ユーザー名が指定されている場合、ClusterControlはコントローラーサービスによって処理される新しいバックエンドユーザー管理サービスを自動的に使用します。どちらの認証も、2つの異なるユーザー管理インターフェイスのセットで機能します。

    アクセス許可とアクセス制御

    新しいユーザー管理では、アクセス許可とアクセス制御は、読み取り(r)、書き込み(w)、および実行(x)と呼ばれる一連のアクセス制御リスト(ACL)テキストフォームによって制御されます。すべてのClusterControlオブジェクトと機能は、ディレクトリツリーの一部として構造化されています。これをCMONディレクトリツリー(CDT)と呼び、各エントリはユーザー、グループ、およびACLによって所有されます。 Linuxのファイルとディレクトリのアクセス許可に似ていると考えることができます。実際、ClusterControlアクセス制御の実装は、標準のPOSIXアクセス制御リストに従います。

    例を示すために、次のコマンドを検討してください。 「s9stree」コマンドラインを使用して、クラスターのCmon Directory Tree(CDT)値を取得しました(UNIXではこれをls -alと想像してください)。この例では、以下に示すように、クラスター名は「PostgreSQL12」です(行頭の「c」で示されています):

    $ s9s tree --list --long
    MODE        SIZE OWNER                      GROUP  NAME
    crwxrwx---+    - system                     admins PostgreSQL 12
    srwxrwxrwx     - system                     admins localhost
    drwxrwxr--  1, 0 system                     admins groups
    urwxr--r--     - admin                      admins admin
    urwxr--r--     - dba                        admins dba
    urwxr--r--     - nobody                     admins nobody
    urwxr--r--     - readeruser                 admins readeruser
    urwxr--r--     - s9s-error-reporter-vagrant admins s9s-error-reporter-vagrant
    urwxr--r--     - system                     admins system
    Total: 22 object(s) in 4 folder(s).

    readeruserという読み取り専用ユーザーがいて、このユーザーがreadergroupというグループに属しているとします。リーダーユーザーとリーダーグループに読み取り権限を割り当て、CDTパスが「/ PostgreSQL12」(UNIXと同様に、常に「/」で始まる)の場合、次のように実行します。

    $ s9s tree --add-acl --acl="group:readergroup:r--" "/PostgreSQL 12"
    Acl is added.
    $ s9s tree --add-acl --acl="user:readeruser:r--" "/PostgreSQL 12"
    Acl is added.

    これで、readeruserは、「PostgreSQL12」と呼ばれるデータベースクラスターの読み取り専用ユーザーとして、GUIおよびCLIを介してClusterControlにアクセスできます。上記のACL操作の例は、この記事で説明されているように、ClusterControlCLIから取得されたものであることに注意してください。 ClusterControl GUIを介して接続すると、次の新しいアクセス制御ページが表示されます。

    ClusterControl GUIは、アクセス制御を処理するためのより簡単な方法を提供します。これは、権限、所有権、およびグループ化を構成するためのガイド付きアプローチを提供します。以前のバージョンと同様に、すべてのクラスターはチームによって所有されており、別のチームを指定して、読み取り、管理、または別のチームがClusterControlGUIまたはCLIインターフェイスの両方からクラスターにアクセスすることを禁止できます。

    LDAP

    以前のバージョン(1.8.1以前)では、LDAP認証は、一連のテーブル(dcps.ldap_settingsおよびdcps.ldap_group_roles)を介してフロントエンドコンポーネントによって処理されていました。 ClusterControl 1.8.2以降、すべてのLDAP構成とマッピングは、この構成ファイル/etc/cmon-ldap.cnf内に保存されます。

    ClusterControl UIを介してLDAP設定とグループマッピングを構成することをお勧めします。このファイルを変更すると、コントローラープロセスへのリロードが必要になります。これは、UIを介してLDAPを構成するときに自動的にトリガーされます。ファイルに直接変更を加えることもできますが、次のコマンドを使用してcmonサービスを手動でリロードする必要があります。

    $ systemctl restart cmon # or service cmon restart

    次のスクリーンショットは、新しいLDAP詳細設定ダイアログを示しています。

    以前のバージョンと比較すると、新しいLDAP実装は、Active Directory、OpenLDAP、FreeIPAなどの業界標準のディレクトリサービスをサポートするように、よりカスタマイズ可能です。また、属性マッピングもサポートしているため、電子メール、本名、ユーザー名など、ClusterControlユーザーデータベースにインポートできる値を表す属性を設定できます。

    詳細については、LDAP設定ユーザーガイドをご覧ください。

    新しいユーザー管理の利点

    現在のユーザー管理は、新しいユーザー管理システムと並行して機能していることに注意してください。ただし、2022年第1四半期までに新しいシステムに移行することを強くお勧めします。現時点では手動移行のみがサポートされています。詳細については、以下の「新しいユーザー管理への移行」セクションを参照してください。

    新しいユーザー管理システムは、次の方法でClusterControlユーザーにメリットをもたらします。

    • ClusterControlCLIおよびClusterControlGUIの一元化されたユーザー管理。すべての認証、承認、およびアカウンティングは、ClusterControl Controllerサービス(cmon)によって処理されます。

    • 高度でカスタマイズ可能なLDAP構成。以前の実装では、いくつかのユーザー名属性のみがサポートされており、正しく機能させるには独自の方法で構成する必要がありました。

    • 同じユーザーアカウントを使用して、TLSを介してClusterControlAPIに対して安全に認証できます。たとえば、この記事をチェックしてください。

    • 安全なユーザー認証方法。新しいネイティブユーザー管理は、秘密/公開キーとパスワードの両方を使用したユーザー認証をサポートします。 LDAP認証の場合、LDAPバインディングとルックアップはSSLとTLSを介してサポートされます。

    • ユーザーのタイムゾーン設定に基づく時間表現の一貫したビュー、特にCLIとGUIの両方のインターフェイスを使用する場合データベースクラスタの管理と監視。

    • ブルートフォース攻撃からの保護。ユーザーは、一時停止または無効なログインによってシステムへのアクセスを拒否される可能性があります。

    新しいユーザー管理への移行

    両方のユーザーシステムのユーザーアカウントと構造が異なるため、フロントエンドからバックエンドへのユーザーの移行を自動化することは非常に危険な操作です。したがって、ユーザーは1.8.1以前からアップグレードした後、手動でアカウントの移行を実行する必要があります。詳細については、新規ユーザー管理の有効化を参照してください。既存のLDAPユーザーについては、「LDAP移行手順」セクションを参照してください。

    次の理由から、この新しいシステムに移行することを強くお勧めします。

    • UIユーザー管理システム(ユーザーが電子メールアドレスを使用してログインする場合)は、 2022年第1四半期の終わり(今から約1年後)。

    • 今後のすべての機能と改善は、cmonバックエンドプロセスによって処理される新しいユーザー管理システムに基づいています。

    • 1つのシステムで2つ以上の認証ハンドラーを実行するのは直感に反します。

    新しいClusterControlユーザー管理システムの移行と実装で問題が発生し、支援が必要な場合は、サポートポータル、コミュニティフォーラム、またはSlackチャネルから遠慮なくご連絡ください。

    > 最終的な考え

    ClusterControlは、時間の経過とともにより洗練された製品に進化しています。成長をサポートするために、長期的にはより豊かな体験のために新しい大きな変更を導入する必要があります。今後のバージョンでは、新しいユーザー管理システムの機能と改善が増えることを期待してください。


    1. インストールせずにWindowsでpostgresqlとpgadminを起動する

    2. SQL ComplianceManager5.9の一般提供の発表

    3. PostgreSQL-エラー:列の日付を型の日付にキャストできません

    4. SQLIN句をパラメータ化する