カスタムロールの管理
ロールはユーザーに MongoDB リソースへのアクセスを許可します。 デフォルトでは、MongoDB はいくつかの組み込みロール を提供していますが、これらのロールで目的の権限セットを記述できない場合は、カスタムロールを作成できます。
ロールを作成するときは、それを適用するデータベースを指定します。 MongoDB Ops Manager は MongoDB Ops Manager プロジェクト内のすべての MongoDB インスタンスにカスタムロールを保存しますが、データベース名とロール名の組み合わせによってロールを一意に識別します。 という名前のデータベースが MongoDB Ops Manager プロジェクト内の複数の配置に存在する場合、ロールはそれらの各データベースに適用されます。 admin
データベースにロールを作成すると、そのロールは配置内のすべてのadmin
データベースに適用されます。
ロールは、特定のリソースに対する特定のアクションへのアクセスを許可する特権で構成されています。 ほとんどのデータベースでは、リソースはデータベースまたはコレクションですが、 admin
データベースでは、リソースはすべてのデータベース、データベース全体の特定の名前のすべてのコレクション、またはすべての配置にすることができます。
ロールはデータベース内の他のロールから特権を継承することができます。 admin
データベースのロールは、他のデータベースのロールから特権を継承することができます。
MongoDBロールはMongoDB Ops Manager ロールとは別です。
Considerations
管理対象のユーザーとロール
プロジェクトで管理することを選択したユーザーまたはロールは、{0 の値が MongoDB Ops Managerに設定され、プロジェクト内のすべての配置に同期されます。SyncedYes
MongoDB Ops Managerプロジェクトで管理することを選択しないユーザーまたはロールは、Synced 値が No
に設定され、それぞれのMongoDB配置にのみ存在します。
注意
インポート後にSyncedをOFF
に切り替えると、作成したユーザーまたはロールがすべて削除されます。
一貫したユーザーとロール
プロジェクトで一貫したユーザーとロールのセットを強制すると、 MongoDB Ops Managerはこれらのユーザーとロールをそのプロジェクト内のすべての配置で同期します。 Enforce Consistent Setを切り替えて、ユーザーとロールの 1 セットを管理するかどうかを選択します。
Enforce Consistent Set とは YES
管理対象のプロジェクトでは、 MongoDB Ops Managerはすべてのユーザーとロールにすべての配置へのアクセスを許可します。 MongoDB Ops Manager プロジェクトが管理するすべての配置には、MongoDB ユーザーとロールのセットが同じです。
MongoDB Ops Manager は、 SyncedをYes
に設定するユーザーとロールへのアクセスを制限します。 MongoDB Ops Manager は、MongoDB Ops Manager プロジェクトが管理していないすべてのユーザーとロールをプロジェクト内の配置から削除します。
Enforce Consistent Set とは NO
MongoDB Ops Managerは、管理対象のプロジェクトで、各配置で独自のMongoDBユーザーとロールのセットを使用できるようにします。 MongoDB Ops Manager では、これらの MongoDB ユーザーとロールを管理する必要はありません。 これらのユーザーとロールを管理するには、MongoDB 配置に直接接続する必要があります。
MongoDB Ops Manager では、 SyncedをYes
に設定する管理対象の MongoDB ユーザーとロールに、すべての管理対象配置へのアクセス権が付与されます。
MongoDB Ops Manager では、管理されていない MongoDB ユーザーとロール( SyncedをNo
に設定)のアクセスを、それらのユーザーの と ロールの特定の配置で制限します。
注意
Enforce Consistent Set デフォルトは NO
です。
MongoDB 配置のインポートがユーザーとロールの管理に影響する方法については、「インポート時のオートメーションと更新されたセキュリティ設定 」を参照してください。
前提条件
ロールを適用するには、MongoDB アクセス制御を有効にする必要があります。 アクセス制御を有効にする前または後にロールを作成できGoが、アクセス制御を有効にするまでこれらは有効になりません。
カスタム MongoDB ロールの作成
Identifierフィールドに、ロールを定義するデータベースを入力し、ロールの名前を入力します。
ロールは、そのロールが定義されているデータベースに適用され、コレクション レベルへのアクセス権を付与できます。 ロール名とそのデータベースの組み合わせによって、そのロールは一意に識別されます。 使用する認証方法と認可方法を満たすために、 Identifierフィールドを入力します。
LDAP 認証も認可も使用しない場合は、 database Identifierフィールドにデータベース名を入力し、 name Identifierフィールドにロールに必要な名前を入力します。
LDAP 認証を使用するが LDAP 認可を使用しない場合は、 database Identifierフィールドに
$external
と入力し、 name Identifierフィールドにロールの名前を入力します。LDAP 認可で任意の認証方法を使用する場合は、 database Identifierフィールドに
admin
と入力し、 name Identifierフィールドに LDAP グループ DN を入力します。例
LDAP サーバーに、識別名が
CN=DBA,CN=Users,DC=example,DC=com
の LDAP グループを作成しました。 この LDAP グループにリンクされた MongoDB Ops Manager で DBAadmin
ロールを作成する場合は、databaseIdentifier フィールドにCN=DBA,CN=Users,DC=example,DC=com
と入力し、nameIdentifier フィールドに と入力します。
新しいロールに付与する特権を選択します。
特権を付与するには、次の 2 つの方法があります。
ロールに別のロールの特権を付与します。
1 つ以上の既存のロールのすべての特権を新しいロールに付与するには、 Inherits Fromフィールドでロールを選択します。 フィールドには、 MongoDB の組み込みロールとすでに作成したカスタムロールの両方が含まれるドロップダウン リストが表示されます。
特権を直接追加します。
ロールに特定の権限を付与するには、[ ADD PRIVILEGES FOR A RESOURCE ] をクリックします。
Resourceフィールドで、ロールを適用するリソースを指定します。 ドロップダウン メニューから データベースを選択します。 データベース全体を指定するには、 フィールドを空白のままにします。 コレクションを指定するには、コレクション名を入力します。 リソースがadmin
データベースにある場合は、 ADMINをクリックして、 admin
データベースの外部でロールを適用できます。
Available Privilegesセクションで、適用するアクションを選択します。 各アクションの説明については、MongoDB マニュアルの「特権アクション」を参照してください。
カスタムロールを編集する
カスタムロールの権限を変更することができます。 その名前またはデータベースは変更できません。
そのロールの特権を追加または排除します。
特権を付与するには、次の 2 つの方法があります。
ロールに別のロールの特権を付与します。
1 つ以上の既存のロールのすべての特権を新しいロールに付与するには、 Inherits Fromフィールドでロールを選択します。 フィールドには、 MongoDB の組み込みロールとすでに作成したカスタムロールの両方が含まれるドロップダウン リストが表示されます。
特権を直接追加します。
ロールに特定の権限を付与するには、[ ADD PRIVILEGES FOR A RESOURCE ] をクリックします。
Resourceフィールドで、ロールを適用するリソースを指定します。 ドロップダウン メニューから データベースを選択します。 データベース全体を指定するには、 フィールドを空白のままにします。 コレクションを指定するには、コレクション名を入力します。 リソースがadmin
データベースにある場合は、 ADMINをクリックして、 admin
データベースの外部でロールを適用できます。
Available Privilegesセクションで、適用するアクションを選択します。 各アクションの説明については、MongoDB マニュアルの「特権アクション」を参照してください。
継承されたロールを削除するには、ロールの横にある [ x ] をクリックします。 特権を削除するには、特権の横にあるゴミ箱アイコンをクリックします。
ロールの特権を表示
ロールの権限を表示するには、 Deploymentをクリックし、次にSecurityタブをクリックし、次にRolesをクリックし、次にロールの横にあるview privilegesをクリックします。
各特権は、リソースを特権アクションのセットと組み合わせます。 すべてのロールにはデータベースが割り当てられます。 各組み込みロールは、 admin
データベースまたはすべてのデータベースのいずれかに割り当てられます。