DBAtlas · データベース運用アトラス

カスタムロールを定義し、ユーザーを作成し、ロールを付与 / 取り消し、パスワードを変更する

MongoDBセキュリティ

コマンド

use admin
db.createRole({
  role: "opsRead",
  privileges: [
    { resource: { db: "shop", collection: "" }, actions: ["find", "listCollections", "listIndexes", "collStats", "dbStats"] },
    { resource: { cluster: true }, actions: ["serverStatus", "inprog"] }
  ],
  roles: []
})
db.createUser({ user: "shop_app", pwd: passwordPrompt(), roles: [{ role: "readWrite", db: "shop" }, { role: "opsRead", db: "admin" }] })
db.grantRolesToUser("shop_app", [{ role: "clusterMonitor", db: "admin" }])
db.revokeRolesFromUser("shop_app", [{ role: "clusterMonitor", db: "admin" }])
db.changeUserPassword("shop_app", passwordPrompt())
db.getUser("shop_app", { showPrivileges: true })
db.runCommand({ usersInfo: { forAllDBs: true } })

概要

特定のデータベースアクションとクラスタアクションを持つカスタムロールを定義し、そのロールと組み込みロールを持つユーザーを作成し、ロールを付与・取り消し、パスワードを変更し、全データベースのユーザーを一覧表示する。

使用する場面

最小権限でアプリケーションアカウントや監視アカウントを作成する場合、アクセスレビューやパスワードローテーションの際に。

注意

ユーザーが定義されたデータベース (ここでは admin) が authSource として使用され、アプリケーションの接続文字列と一致している必要がある。アプリケーションアカウントに root/dbOwner などの広範なロールを付与しない。ロールの変更は既存のセッションに即座に適用される。パスワードの変更はオープン中の接続を切断せず、新しい接続に適用される。

DBAtlas で開く →