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 では、これらのロールはすべてのデータベースを含みます。これらのシステムデータベースに触れる操作の権限を付与する際は、この点にご注意ください。
シャードクラスターの O&M コマンド
シャードクラスターインスタンスの場合、alibabaCloudAdmin を持つルートアカウントは、以下の O&M コマンドを直接実行できます:
flushRouterConfig、cleanupOrphaned、runCommandOnShard、splitVector、clearJumboFlag、moveChunk、splitChunk