ApsaraDB for MongoDB インスタンスを作成すると、システムは admin データベースにルートアカウントを自動的に作成します。このルートアカウントに付与される権限は、インスタンスの MongoDB バージョンによって異なります。
| インスタンスのバージョン | ルートアカウントに割り当てられるロール |
|---|---|
| MongoDB 4.2 以前 | 組み込みの root ロール |
| MongoDB 4.4 以降 | alibabaCloudAdmin ロール (Alibaba Cloud カスタムロール) |
ルートアカウントで実行できる操作を確認するには、次のコマンドを実行します。
db.getSiblingDB("admin").runCommand({usersInfo: "root"});
usersInfo コマンドの詳細については、「usersInfo」をご参照ください。
特定のロールの権限を調べるには、rolesInfo コマンドを使用します。組み込みの root ロールについては、「root」をご参照ください。
データセキュリティのため、日常的なデータベース操作にルートアカウントを使用することは避けてください。代わりに、ワークロードに必要な権限のみを持つ専用のデータベースアカウントを作成してください。詳細については、「ApsaraDB for MongoDB インスタンスのアカウントを作成する」をご参照ください。
alibabaCloudAdmin ロールの権限
alibabaCloudAdmin ロールは、ApsaraDB for MongoDB のカスタムロールです。標準の root ロールとは異なるため、これらの違いを理解しておくと、予期しない権限エラーの回避に役立ちます。
含まれる組み込みロール
alibabaCloudAdmin ロールには、以下の MongoDB 組み込みロールが含まれています。
| 組み込みロール | 機能 |
|---|---|
readWriteAnyDatabase |
任意のデータベースにあるコレクションの読み書き |
userAdminAnyDatabase |
任意のデータベースのアカウント管理 |
dbAdminAnyDatabase |
任意のデータベースの統計クエリとインデックス管理 |
clusterMonitor |
監視ツールへの読み取り専用アクセス |
backup |
バックアップ操作 |
enableSharding |
データベースのシャーディング有効化 |
restore |
バックアップからの復元 |
admin データベースの制限
alibabaCloudAdmin ロールでは、admin データベースに対して 読み取り専用 アクセスのみ可能です。admin データベースへの書き込みや、admin データベースに対する書き込み権限を持つアカウントの作成はできません。
一部のシナリオでは、admin データベースにデータを書き込むと、深刻なパフォーマンスジッターが発生する可能性があります。そのため、admin データベースをスコープとする readWrite、dbAdmin、または dbOwner 権限を持つユーザーやロールを作成することはできません。
標準的な MongoDB の動作との違い
ApsaraDB for MongoDB の xxxAnyDatabase 権限 (例: readWriteAnyDatabase) は、config、local、admin データベースを 対象としません。標準的な MongoDB では、これらのロールはすべてのデータベースを含みます。これらのシステムデータベースに影響する操作の権限を付与する際は、この違いにご注意ください。
シャードクラスターの運用保守コマンド
シャードクラスターインスタンスの場合、alibabaCloudAdmin を持つルートアカウントは、以下の運用保守コマンドを直接実行できます。
flushRouterConfig、cleanupOrphaned、runCommandOnShard、splitVector、clearJumboFlag、moveChunk、splitChunk