Docs Menu

自己管理型配置におけるロールベースのアクセス制御

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 はユーザー定義ロールを作成および変更するメソッドを提供します。

MongoDB Enterprise は、認証されたユーザーがメンバーである LDAP グループを LDAP サーバーに照会することをサポートしています。MongoDB は、返された各グループの DN(Distinguished Name、識別名)を admin データベースのロールにマッピングします。MongoDB は、マップされたロールとそれに関連付けられた権限に基づいてユーザーを承認します。詳細については、「LDAP 認証」を参照してください。