MongoDB employs Role-Based Access Control (RBAC) to govern access to a MongoDB system. A user is granted one or more roles that determine the user's access to database resources and operations. Outside of role assignments, the user has no access to the system.
アクセス制御の有効化
MongoDB のアクセス制御は、デフォルトでは有効になりません。 --auth または security.authorization 設定を使用して承認を有効にすることができます。内部認証を有効にすると、クライアントの承認も有効になります。 アクセス制御を有効にすると、ユーザーは自分自身を認証する必要があります。
ロール
ロールは、リソースに対して指定されたアクションを実行する権限を付与します。各権限は、ロール内で明示的に指定されるか、別のロールから継承されるか、またはその両方です。
アクセス権
ロールは権限を制限しません。ユーザーに 2 つのロールがある場合は、アクセス権の幅が広いロールが優先されます。
たとえば、すでに readWriteAnyDatabase ロールを持つユーザーにデータベースの read ロールを付与した場合、read の付与によってデータベースへの書込み (write) アクセス権が取り消されることはありません。
ユーザーからロールを取り消すには、revokeRolesFromUser コマンドを使用します。
認証の制限
ロールによりユーザーに認証制限を課すことができ、指定された送信元および宛先の IP アドレス範囲からの接続をユーザーに要求できます。
詳細については、「認証制限」を参照してください。
権限
権限は、指定されたリソースと、そのリソースに対して許可されるアクションで構成されます。
リソースとは、データベース、コレクション、コレクションのセット、またはクラスターです。 リソースがクラスターの場合、関連するアクションは特定のデータベースやコレクションではなく、システムの状態に影響を与えます。 リソース ドキュメントの詳細については、「自己管理型配置に関するリソース ドキュメント 」を参照してください。
アクションは、リソースに対して許可される操作を指定します。使用可能なアクションについては、「権限アクション」を参照してください。
継承された権限
ロールの定義には 1 つ以上の既存のロールを含めることができます。その場合、ロールは含められたロールのすべての権限を継承します。
ロールはデータベース内の他のロールから権限を継承することができます。admin データベースで作成されたロールは、任意のデータベースのロールから権限を継承できます。
ロールの権限を表示する
showPrivileges フィールドと showBuiltinRoles フィールドの両方を true に設定して rolesInfo コマンドを発行すると、ロールの権限を表示できます。
ユーザーとロール
ユーザーを作成するとき、または既存のユーザーを更新するときにロールを割り当てて、ロールを付与または取り消します。すべてのユーザー マネジメント方法の一覧については、「ユーザー マネジメント」を参照してください。
ロールを割り当てられたユーザーには、そのロールのすべての権限が与えられます。ユーザーは複数のロールを持つことができます。さまざまなデータベースのユーザー ロールを割り当てることで、あるデータベースで作成されたユーザーに、他のデータベースを操作する権限を与えることができます。
注意
データベースに最初に作成されたユーザーは、他のユーザーを管理する権限を持つユーザー管理者である必要があります。「自己管理型配置でのアクセス制御の有効化」を参照してください。
組み込みロールとユーザー定義ロール
MongoDB は、データベース システムで一般的に必要とされる一連の権限を提供する組み込みロールを提供します。
これらの組み込みロールで必要な権限セットが提供されない場合は、ユーザー定義ロールを作成および変更できます。
LDAP 承認
注意
MongoDB 8.0 で開始され、9.0 で継続されます。LDAP 認証と承認は非推奨です。LDAP は将来のリリースで削除される予定です。
その他の認証方法について学ぶには、「LDAP認証の代替手段」を参照してください。
MongoDB Enterprise supports querying an LDAP server for the LDAP groups the authenticated user is a member of. MongoDB maps the Distinguished Names (DN) of each returned group to roles on the admin database. MongoDB authorizes the user based on the mapped roles and their associated privileges. See LDAP Authorization for more information.