カスタムデータベースロールの設定
組み込みロールに必要な権限セットが含まれていない場合は、Atlas でカスタムロールを作成できます。Atlas は、各データベース ユーザーのカスタムロールを次の内容とともに適用します。
データベース ユーザーを追加するとき、または データベース ユーザーを変更するときに割り当てる、任意の 組み込みロール。
データベース ユーザーを追加するとき、または データベース ユーザーを変更するときに割り当てる 特定の権限。
各データベース ユーザーに複数のカスタムロールを割り当てることができます。
注意
無料クラスター、共有クラスター、サーバーレスインスタンスの制限
カスタムロールへの変更を M0
個の無料クラスタ、M2/M5
個の共有クラスタ、およびサーバーレス インスタンスに配置するには、最大 30 秒かかる場合があります。
権限アクション(カスタムロール で使用可能)と カスタムロール API は、組み込みロール で使用可能な権限アクションのサブセットを表します。
カスタムロール権限のリストを確認するには、API リファレンスを参照してください。
Considerations
重要
Atlas クラスターでデータベース ロールを追加、変更、または削除するには、Atlas CLI、Atlas Administration API、Atlas UI、またはサポートされている 統合 を使用する必要があります。そうでない場合、Atlas はすべてのロールの修正をロールバックします。
1 人の データベース ユーザー に最大 20 個のカスタムロールを割り当てることができ、プロジェクトごとに最大 100 個のカスタムロールを作成できます。データベース ユーザーごとまたはプロジェクトごとに追加のカスタムロールが必要な場合は、Atlas サポート にお問い合わせください。
Atlas は、プロジェクトの アクティビティ フィード 内のカスタム MongoDB ロールの作成、削除、更新を監査します。
ユーザーに複数のロールを割り当て、それらのロールがオブジェクトに対して競合する権限を付与する場合、Atlas はロール内で最も高い権限を尊重します。
例
2 つのカスタムロールを作成し、両方をユーザー A に割り当てます。
最初のカスタムロールは、データベースに対する
read
特権のみを付与します。また、データベースに bypassDocumentValidation も付与します。2 番目のロールは、データベースに対する
dbAdmin
特権を付与します。バイパス権限の暗黙的な拒否である bypassDocumentValidation は付与されません。
dbAdmin
のほうがデータベース アクセス権限が高いため、ユーザー A はデータベースに対するすべてのdbAdmin
特権を持ちます。bypassDocumentValidation はより上位のバイパス権限であるため、ユーザー A にも bypassDocumentValidation が付与されます。
必要なアクセス権
カスタム データベース ロールを構成するには、Atlas に対する Organization Owner
または Project Owner
アクセス権が必要です。
カスタムロールを追加する
Atlas CLI を使用してプロジェクトのカスタム データベース ロールを作成するには、以下のコマンドを実行します。
atlas customDbRoles create <roleName> [options]
コマンド構文とパラメータについて詳しくは、Atlas CLI ドキュメントで atlas customDbRoles create をご覧ください。
Atlas Administration API でカスタムロールを作成するには、「Create One」を参照してください。
Atlas UI でカスタムロールを作成するには、次の手順を行います。
Atlasで、プロジェクトのGo Database Access{0 ページに します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase Accessをクリックします。
[データベース アクセス ]ページが表示されます。
ロール情報を入力します。
フィールド | 説明 |
---|---|
Custom Role Name | カスタムロール名。 重要指定されたロール名には、文字、数字、アンダースコア、ダッシュのみを含めることができます。また、次のいずれかの条件を満たすロール名は指定できません。
|
Action or Role | ロールによって付与される権限。利用可能な権限アクションとロールを一覧表示するには、ドロップダウンをクリックします。 Atlas はアクションとロールを次のカテゴリに分類します。
1 つのカテゴリからアクションまたはロールを選択します。アクションまたはロールを選択すると、Atlas により、次の例外を除いたカテゴリが無効になります。Global Actions and Roles からアクションまたはロールを選択した場合でも、Custom Roles からもアクションやロールを選択できます。 別カテゴリのアクションとロールを付与するには、[Add an action or role] をクリックして新しい行を追加します。 Atlas は、プロジェクト内のどのクラスター バージョンでも使用できないアクションを無効にします。カスタムロールはプロジェクト レベルで定義され、プロジェクトのクラスターで使用される各 MongoDB バージョンと互換性がある必要があります。 |
Database | 選択したアクションとロールが付与されるデータベース(該当する場合)。 このフィールドは、Collection Actions および Database Actions and Roles カテゴリのすべてのロールとアクションに必須です。 |
Collection | 指定のデータベース内で、アクションとロールが付与されるコレクション(該当する場合)。 このフィールドは、Collection Actions のすべてのロールとアクションに必須です。 |
複数のデータベースとコレクションに同じ権限セットを付与するには、[Add a database or collection] をクリックします。
カスタムロールを表示する
Atlas CLI を使用してプロジェクトのすべてのカスタム データベース ロールを一覧表示するには、次のコマンドを実行します。
atlas customDbRoles list [options]
Atlas CLI を使用して指定したプロジェクト内の単一のカスタム データベース ロールの詳細を返すには、次のコマンドを実行します。
atlas customDbRoles describe <roleName> [options]
前のコマンドの構文とパラメータの詳細については、Atlas CLI ドキュメントの atlas customDbRoles list および atlas customDbRoles describe. を参照してください。
Atlas Administration API でカスタムロールを表示するには、「Get All」を参照してください。
Atlas UI でカスタムロールを表示する方法は次の通りです。
Atlas で、プロジェクトの [Database Access] ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase Accessをクリックします。
[データベース アクセス ]ページが表示されます。
カスタムロールを変更する
Atlas CLI を使用してプロジェクトのカスタム データベース ロールをアップデートするには、次のコマンドを実行します。
atlas customDbRoles update <roleName> [options]
コマンドの構文とパラメータについて詳しくは、Atlas CLI ドキュメントで atlas customDbRoles update をご覧ください。
Atlas Administration API でカスタムロールを変更するには、「Update One」を参照してください。
Atlas UI でカスタムロールを変更するには、次の手順を行います。
Atlas で、プロジェクトの [Database Access] ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase Accessをクリックします。
[データベース アクセス ]ページが表示されます。
カスタムロールを削除する
Atlas CLI を使用してプロジェクトからカスタム データベース ロールを削除するには、次のコマンドを実行します。
atlas customDbRoles delete <roleName> [options]
コマンド構文とパラメータについて詳しくは、Atlas CLI ドキュメントで atlas customDbRoles create をご覧ください。
Atlas Administration API でカスタムロールを削除するには、「Remove One」を参照してください。
Atlas UI でカスタムロールを削除するには、次の手順を行います。
Atlas で、プロジェクトの [Database Access] ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase Accessをクリックします。
[データベース アクセス ]ページが表示されます。
次のシナリオではカスタムロールを削除できません。
ロールを削除すると、親ロールまたはアクションのない 1 つ以上の子ロールが残ります。
ロールを削除すると、ロールを持たない 1 人以上の データベース ユーザー が残ります。
カスタムロールを割り当てる
データベース ユーザーを追加するとき、または データベース ユーザーを変更するときに、Atlas UI でカスタムロールを割り当てることができます。Atlas 管理 API を通じてカスタムロールを割り当てるには、「データベース ユーザーの作成」または「データベース ユーザーの更新」を参照してください。