sql >> データベース >  >> NoSQL >> MongoDB

ClusterControlを使用したロールベースのアクセス制御の実施

    ClusterControlバージョン1.8.2のSevereninesの最近のリリースでは、多くの高度な機能と変更が導入されました。重要な機能の1つは、新しいユーザーとLDAP管理をカバーする新しく改善されたユーザー管理システムです。 ClusterControlの補完的な既存の機能は、このブログの焦点であるユーザー管理用のロールベースアクセス制御(RBAC)です。

    ClusterControlの役割ベースのアクセス制御

    ClusterControlの役割ベースのアクセス制御(RBAC)に慣れていない場合は、特定のデータベースクラスター機能および管理アクションまたはタスクへの特定のユーザーのアクセスを制限できる機能です。たとえば、展開(ロードバランサーの追加、既存のクラスターの追加)、管理、および監視機能へのアクセス。これにより、許可されたユーザーのみがそれぞれの役割に基づいて作業および表示できるようになり、管理タスクへの役割のアクセスを制限することで、不要な侵入や人為的エラーを回避できます。機能へのアクセスはきめ細かく、組織またはユーザーがアクセスを定義できるようになっています。 ClusterControlは、許可フレームワークを使用して、ユーザーが許可のレベルに基づいて管理およびモニター機能と対話する方法を定義します。

    ClusterControlの役割ベースのアクセス制御は、DBAタスクの一部として常に使用している管理ユーザーにとって特に重要な役割を果たします。 ClusterControl DBAは、DBAがタスクをチームメンバーに委任し、ClusterControl機能へのアクセスを制御し、すべての機能をすべてのユーザーに公開するわけではないため、この機能に精通している必要があります。これは、誰が何を実行できるかを制御できるユーザー管理機能を利用することで実現できます。たとえば、アナリスト、DevOps、DBAなどのチームを設定し、特定のデータベースクラスターに対する責任の範囲に応じて制限を追加できます。

    ClusterControlアクセス制御を次の図に示します

    上記で使用されている用語の詳細を以下に示します。チームは、ClusterControlによって管理される1つ以上のデータベースクラスターに割り当てることができます。チームは、チーム内の空のユーザーまたは複数のユーザーで構成されます。デフォルトでは、新しいチームを作成するときに、スーパー管理者アカウントが常に関連付けられます。スーパー管理者を削除しても、その新しいチームへのリンクが失われることはありません。

    ユーザーとクラスターをチームに割り当てる必要があります。これは、ClusterControl内の必須の実装です。デフォルトでは、スーパー管理者アカウントは、デフォルトですでに作成されている管理チームに指定されています。データベースクラスターもデフォルトで管理チームに割り当てられます。

    ロールにユーザーを割り当てることも、ClusterControlロールに従って複数のユーザーに割り当てることもできます。

    ClusterControlの役割

    ClusterControlのロールは実際にはデフォルトで設定されています。これらのデフォルトの役割は次のとおりです。

    • スーパー管理者-これは非表示の役割ですが、スーパー管理者(superadmin)の役割です。この役割では、すべての機能を利用できます。デフォルトでは、インストールが成功した後に作成したユーザーがスーパー管理者の役割を表します。さらに、新しいチームを作成すると、デフォルトでスーパー管理者が常に新しいチームに割り当てられます。

    • 管理者-デフォルトでは、ほとんどすべての機能が表示可能です。表示可能であるということは、管理者ロールのユーザーが管理タスクを実行できることを意味します。この役割で使用できない機能は、カスタマーアドバイザーとSSLキー管理です。

    • ユーザー-統合、すべてのクラスターへのアクセス、および一部の機能はこの役割では使用できず、によって拒否されますデフォルト。これは、データベースや管理タスクを実行することを目的としていない通常のユーザーを割り当てる場合に役立ちます。ユーザーロールのユーザーが他のクラスターを表示するには、手動で行う必要のある手順がいくつかあります。

    ClusterControlの役割は任意であるため、管理者は任意の役割を作成して、チームの下のユーザーに割り当てることができます。

    ClusterControlの役割を開始する方法

    独自のアクセスレベルのセットを使用してカスタムロールを作成できます。 [チーム]タブで特定のユーザーに役割を割り当てます。これには、右隅のサイドバーにあるユーザー管理を見つけることでアクセスできます。以下のスクリーンショットを参照してください:

    ClusterControlを使用したロールベースのアクセス制御の実施

    RBACの適用はユーザードメイン固有であり、ユーザーの役割と特権に応じてClusterControl機能へのユーザーのアクセスを制限します。これを念頭に置いて、特定のユーザーの作成を開始する必要があります。

    ClusterControlでのユーザーの作成

    ユーザーを作成するには、[ユーザー管理]→[チーム]タブから開始します。それでは、最初にチームを作成しましょう。

    作成されると、チームが作成されるとデフォルトでリンクされるスーパー管理者アカウントがあります。

    では、新しいユーザーを追加しましょう。新しいユーザーの追加はチームの下で行う必要があるため、DevOpsの下で作成できます。

    お気づきかもしれませんが、作成した新しいユーザーは、デフォルトでClusterControl内に追加されたユーザーの役割になりました。その後、チームもDevOpsの下にあります。

    基本的に、以下に示すように、現在DevOpsチームの下に2人のユーザーがいます:

    ロールはユーザードメイン固有であるため、アクセス制限はその特定のユーザーにのみ適用され、所属するチームには適用されないことに注意してください。

    管理者とユーザーの役割(ClusterControlのデフォルトの役割)

    ClusterControlにはデフォルトで2つの役割が追加されているため、デフォルトで設定されている制限があります。これらが何であるかを知るには、[ユーザー管理]→[アクセス制御]に移動します。以下は、ロールに属するユーザーが実行できる利用可能な機能または特権を示すスクリーンショットです。

    管理者の役割

    ユーザーロール

    管理者ロールにはさらに多くの特権がありますが、ユーザーロールには制限されているいくつかの特権があります。これらのデフォルトの役割は、必要な構成に従って変更できます。役割を追加すると、許可する役割を開始して設定することもできます。たとえば、新しいロールを作成します。ロールを作成するには、ロールに沿って「+」プラスボタンを押すだけです。ビューアーと呼ばれる、私たちが作成した新しい役割を見ることができます。

    すべてのチェックマークがオフになっています。機能または特権を有効にするには[許可]列をチェックし、アクセスを拒否する場合は[拒否]列をチェックします。 [管理]列では、その役割のユーザーが管理タスクを実行できます。一方、[変更]列では、[アラーム]、[ジョブ]、および[設定]の特権または機能でのみ使用できる変更を有効にできます。

    RBACのテスト

    この例では、以下に示すように、次のクラスターがコントローラーに存在します。

    これは、この環境のスーパー管理者アカウントで表示できます。

    作成したユーザーにRBACが設定されたので、設定したメールアドレスとパスワードを使用してログインしてみましょう。

    これが作成されたものです

    使用可能で表示可能なクラスターはなく、キー管理設定や電子メール通知など、以下に示すように一部の特権が拒否されます。

    RBACの調整

    ロールの権限は変更可能であるため、[ユーザー管理]→[アクセス制御]を使用して簡単に管理できます。

    次に、作成したユーザーがクラスターを表示できるようにします。ユーザーがAccessAllClustersを拒否しているため、これを有効にする必要があります。以下を参照してください

    これで、図に基づいて前述したように、クラスターはチームによって制御されます。たとえば、次のクラスタ割り当てがあります。

    クラスターを適切なチームに割り当てる必要があるため、特定のクラスターを選択して[チームの変更]ボタンをクリックすると、適切なチームに再割り当てするためのプロンプトが表示されます。

    それでは、DevOpsに割り当てましょう。

    これで、新しく作成したユーザーとして再度ログインすると、クラスターが表示されます。

    概要

    ClusterControlの役割ベースのアクセス制御(RBAC)は、ClusterControlで作成したすべてのユーザーにきめ細かい制限付きアクセス制御を提供する機能であり、ユーザーの役割。


    1. HBaseACLのレンジャーポリシーへの変換

    2. MongoDB-データのエクスポート

    3. Mongodb、コレクションが空かどうかを確認します、node.js

    4. Redis、ZINCRBYを使用してzsetのすべてのスコアを増やす方法は?