自己管理型配置におけるロールベースのアクセス制御
MongoDB は、RBAC(Role-Based Access Control、ロールベースのアクセス制御)を使用して、MongoDB システムへのアクセス権を管理します。 ユーザーには、データベースリソースと操作へのユーザーのアクセス権を決定する 1 つ以上のロールが付与されます。 割り当てられたロール以外では、ユーザーはシステムにアクセスできません。
アクセス制御の有効化
MongoDB のアクセス制御は、デフォルトでは有効になりません。 認証を有効にするには、 --auth
またはsecurity.authorization
設定を使用します。 内部認証を有効にすると、クライアントの認可も有効になります。
アクセス制御を有効にすると、ユーザーは自分自身を認証する必要があります。
ロール
ロールは、リソースに対して指定されたアクションを実行する権限を付与します。各権限は、ロール内で明示的に指定されるか、別のロールから継承されるか、またはその両方です。
アクセス権
ロールは権限を制限しません。ユーザーに 2 つのロールがある場合は、アクセス権の幅が広いロールが優先されます。
たとえば、すでに readWriteAnyDatabase
ロールを持つユーザーにデータベースの read
ロールを付与した場合、read
の付与によってデータベースへの書込み (write) アクセス権が取り消されることはありません。
ユーザーからロールを取り消すには、revokeRolesFromUser
コマンドを使用します。
認証の制限
ロールによりユーザーに認証制限を課すことができ、指定された送信元および宛先の IP アドレス範囲からの接続をユーザーに要求できます。
詳細については、「認証制限」を参照してください。
権限
権限は、指定されたリソースと、そのリソースに対して許可されるアクションで構成されます。
リソースとは、データベース、コレクション、コレクションのセット、またはクラスターです。 リソースがクラスターの場合、関連するアクションは特定のデータベースやコレクションではなく、システムの状態に影響を与えます。 リソース ドキュメントの詳細については、「自己管理型配置に関するリソース ドキュメント 」を参照してください。
アクションは、リソースに対して許可される操作を指定します。 使用可能なアクションについては、「自己管理型配置の権限アクション 」を参照してください。
継承された権限
ロールの定義には 1 つ以上の既存のロールを含めることができます。その場合、ロールは含められたロールのすべての権限を継承します。
ロールはデータベース内の他のロールから権限を継承することができます。admin
データベースで作成されたロールは、任意のデータベースのロールから権限を継承できます。
ロールの権限を表示する
showPrivileges
フィールドと showBuiltinRoles
フィールドの両方を true
に設定して rolesInfo
コマンドを発行すると、ロールの権限を表示できます。
ユーザーとロール
ユーザーの作成時にユーザーにロールを割り当てることができます。既存のユーザーを更新して、ロールを付与または取り消すこともできます。すべてのユーザー マネジメント方法については「ユーザー マネジメント」を参照してください。
ロールを割り当てられたユーザーには、そのロールのすべての権限が与えられます。ユーザーは複数のロールを持つことができます。さまざまなデータベースのユーザー ロールを割り当てることで、あるデータベースで作成されたユーザーに、他のデータベースを操作する権限を与えることができます。
注意
データベースに最初に作成されたユーザーは、他のユーザーを管理する特権を持つユーザー管理者です。 「自己管理型配置でアクセス制御を有効にする 」を参照してください。
組み込みロールとユーザー定義ロール
MongoDB は、データベース システムで一般的に必要な権限セットを提供する組み込みロールを提供します。
これらの組み込みロールで必要な権限セットが提供されない場合、MongoDB はユーザー定義ロールを作成および変更するメソッドを提供します。
LDAP 承認
注意
MongoDB 8.0以降、 LDAP認証と認可は非推奨です。 LDAP は使用可能であり、 MongoDB 8のサポート期間中に変更されずに動作し続けます。 LDAP は将来のメジャー リリースで削除される予定です。
詳細については、「LDAP の非推奨」を参照してください。
MongoDB Enterprise は、認証されたユーザーがメンバーである LDAP グループを LDAP サーバーに照会することをサポートしています。MongoDB は、返された各グループの DN(Distinguished Name、識別名)を admin
データベースのロールにマッピングします。MongoDB は、マップされたロールとそれに関連付けられた権限に基づいてユーザーを承認します。詳細については、「LDAP 認証」を参照してください。