カスタムデータベースロールの設定
組み込みロールに必要な権限セットが含まれていない場合は、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 Atlasで、プロジェクトの {0 ページにGoします。GoDatabase Access
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの 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 でカスタムロールを表示する方法は次の通りです。
AtlasGoDatabase AccessAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase Accessをクリックします。
[データベース アクセス ]ページが表示されます。
カスタムロールを変更する
Atlas CLI を使用してプロジェクトのカスタム データベース ロールをアップデートするには、次のコマンドを実行します。
atlas customDbRoles update <roleName> [options]
コマンドの構文とパラメータについて詳しくは、Atlas CLI ドキュメントで atlas customDbRoles update をご覧ください。
Atlas Administration API でカスタムロールを変更するには、「Update One」を参照してください。
Atlas UI でカスタムロールを変更するには、次の手順を行います。
AtlasGoDatabase AccessAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase Accessをクリックします。
[データベース アクセス ]ページが表示されます。
カスタムロールを削除する
Atlas CLI を使用してプロジェクトからカスタム データベース ロールを削除するには、次のコマンドを実行します。
atlas customDbRoles delete <roleName> [options]
コマンド構文とパラメータについて詳しくは、Atlas CLI ドキュメントで atlas customDbRoles create をご覧ください。
Atlas Administration API でカスタムロールを削除するには、「Remove One」を参照してください。
Atlas UI でカスタムロールを削除するには、次の手順を行います。
AtlasGoDatabase AccessAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のDatabase Accessをクリックします。
[データベース アクセス ]ページが表示されます。
次のシナリオではカスタムロールを削除できません。
ロールを削除すると、親ロールまたはアクションのない 1 つ以上の子ロールが残ります。
ロールを削除すると、ロールを持たない 1 人以上の データベース ユーザー が残ります。
カスタムロールを割り当てる
データベース ユーザーを追加するとき、または データベース ユーザーを変更するときに、Atlas UI でカスタムロールを割り当てることができます。Atlas 管理 API を通じてカスタムロールを割り当てるには、「データベース ユーザーの作成」または「データベース ユーザーの更新」を参照してください。