ユーザーとロールの管理
Databases for MongoDBのデプロイメントでは認証が有効になっており、MongoDB's ロールベースのアクセス制御を使います。
Cloud Databases CLI プラグイン、または Cloud Databases API を使用して、 _「サービス資格情報」_の UI にユーザーを追加します。
管理者ユーザー
Databases for MongoDB デプロイメントをプロビジョンすると、 admin
ユーザーが自動的に作成されます。
接続に使用する前に管理者パスワードを設定してください。
admin
ユーザーには、以下の権限があります。
-
userAdminAnyDatabase
は、local
およびconfig
を除くすべてのデータベースでuserAdmin
と同じ特権を提供します。userAdminAnyDatabase
は、管理ユーザーに管理権限を提供します。 この役割では、クラスター全体に対してlistDatabases
アクションを実行できます。userAdminAnyDatabase
を使用して、デプロイメントの他のユーザー ( MongoDB 組み込みロールを含む) に ロールを作成して付与 します。 例えば、デプロイメントをモニターするには、admin
を使用して mongo シェルにログインし、任意のユーザー (それ自体を含む) にclusterMonitor
ロールを付与します。 次のようなコマンドを使用します。db.grantRolesToUser( "admin", [ { role: "clusterMonitor", db: "admin" } ] )
-
readWriteAnyDatabase
は、local
およびconfig
を除くすべてのデータベースに対して、readWrite
と同じ特権を提供します。 -
dbAdminAnyDatabase
は、local
およびconfig
を除くすべてのデータベースに対して、dbAdmin
と同じ特権を提供します。
UIで管理者パスワードを設定する
IBM Cloud Resource listからインスタンスを選択し、UIから管理者パスワードを設定します。 次に、 「設定」 を選択します。 次に、 *「データベース管理者パスワードの変更」*を選択します。
CLIでadminパスワードを設定する
IBM Cloud CLI Cloud Databases プラグインから cdb user-password
コマンドを使用して、管理パスワードを設定します。
たとえば、配置の管理者パスワードを設定するには、次のコマンドを使用します:
ibmcloud cdb user-password <INSTANCE_NAME_OR_CRN> admin <NEWPASSWORD>
APIで管理者パスワードを設定する
サービスの[概要]パネルの[配置の詳細]セクションに表示される Foundation エンドポイントは、API を使用してこの配置にアクセスするためのベース URL を提供します。 これを 「指定されたユーザーのパスワードの設定」 エンドポイントとともに使用して、管理者パスワードを設定します。
curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \
UIによるユーザーとロールの管理
- ご使用のサービスのサービス・ダッシュボードに移動します。
- _「サービス資格情報」をクリックして、「サービス資格情報」_セクションを開きます。
- __「新規資格情報」__をクリックします。
- 新規資格情報にわかりやすい名前を選びます。
- (オプション) 新規資格情報でパブリック・エンドポイントまたはプライベート・エンドポイントのどちらを使用するかを指定します。 _「インラインの構成パラメーターの追加」_フィールドで
{ "service-endpoints": "public" }
/{ "service-endpoints": "private" }
のいずれかを使用して、指定のエンドポイントを使用する接続ストリングを生成します。 そのエンドポイントを使用することが強制されるわけではありません。 接続文字列に含まれるホスト名が制御されるだけです。 パブリック・エンドポイントはデフォルトで生成されます。 - _Add_をクリックして、新しい資格情報をプロビジョニングします。 ユーザー名とパスワード、および関連付けられる MongoDB ユーザーが自動的に生成されます。
新しい資格情報が表に表示されます。接続文字列は JSON として_「資格情報の表示」_のクリックしてコピーできるフィールドに表示されます。
CLI または API からユーザーを作成しても、そのユーザーの接続ストリングは_「サービス資格情報」_に自動的に取り込まれません。 ここにユーザーを追加するには、既存のユーザー情報を使用して新規資格情報を作成します。 _「インラインの構成パラメーターの追加」_の下の JSON フィールドにユーザー名とパスワードを入力します。 例えば、{"existing_credentials":{"username":"Robert","password":"supersecure"}}
などです。
基本的には、ユーザー名とパスワードを送信すると、_Service Credentials_が認証情報を入力した接続文字列を生成します。
既存のユーザーの資格情報を生成するときに、そのユーザーが存在するか検査されたり、そのユーザーが作成されたりすることはありません。
_サービス資格情報_を使用して作成する ユーザーには、 readWriteAnyDatabase
役割と dbAdminAnyDatabase
役割が付与されます。
サービス資格情報 から作成されたユーザーが別の役割を持つ必要がある場合は、admin ユーザーを使用してその役割を変更できます。
CLIによるユーザーとロールの管理
CLI で作成されたユーザーには、 readWriteAnyDatabase
と dbAdminAnyDatabase
の役割が付与されます。
ユーザーに別のロールを持たせる必要がある場合は、admin
ユーザーを使ってロールを変更することができます。
CLIから直接作成されたユーザは_サービス資格情報_に表示されませんが、追加できます。
- Cloud Databases CLI プラグイン を使用してサービスを管理する場合は、
cdb user-create
を使用して新規ユーザーを作成します。 たとえば、デプロイメント用に新しいユーザを作成するには、次のコマンドを使用します:
ibmcloud cdb user-create <INSTANCE_NAME_OR_CRN> <NEWUSERNAME> <NEWPASSWORD>
-
タスクが終了したら、
ibmcloud cdb deployment-connections
コマンドで新しいユーザーの接続文字列を取得します。 -
MongoDB は、ユーザーのデータを
admin
データベースで一元管理します。 mongo シェルでshow users
コマンドを使って、すべてのユーザーとそのロール、データベースのパーミッションを リストアップします。
ibmcloud cdb deployment-connections --start -u admin mongodb-production
Database Password>>
MongoDB shell version v4.0.3
connecting to: mongodb://....
....
replset:PRIMARY> use admin
switched to db admin
replset:PRIMARY> show users
APIによるユーザーとロールの管理
API で作成されたユーザーには、 readWriteAnyDatabase
と dbAdminAnyDatabase
の役割が付与されます。
ユーザーに異なるロールを持たせる必要がある場合は、adminユーザーを使ってロールを変更してください。
APIから直接作成されたユーザは_サービス資格情報_には表示されませんが、追加することはできます。
サービスの_「概要」_セクションに表示される_基本エンドポイント_は、API を介してこのデプロイメントにアクセスするための基本 URL を提供します。 ユーザーを作成して管理するには、その基本 URL に /users
エンドポイントを付けて使用します。
コマンドは次のようになります。
curl -X POST https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/{user_type}
-H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{"user": {"username": "user", "password": "v3ry-1-secUre-pAssword-2"}}' \
ユーザーの接続文字列を取得するには、基本 URL に /users/{userid}/connections
エンドポイントを付けて使用します。
MongoDB-createdユーザーとロール
組み込みのユーザーとロールがあなたの環境に合わない場合は、ユーザーとロールの作成を直接MongoDBに入れてください。 デプロイメントの admin ユーザーには、デプロイメントで使用する役割または特権のセットを作成する権限があります。
MongoDB で直接作成されたユーザーおよび役割は、サービス資格情報 には表示されず、IBM Cloud アカウントまたは IAM に統合されません。
ibm
ユーザー
mongoシェルを使ってデプロイのユーザーをリストアップすると、ibm
という名前のユーザーがいることに気づくかもしれません。 ibm
ユーザーは、デプロイメントの安定性を確保するためのレプリケーション、クラスター操作、およびその他の機能を管理する内部的な root アカウントです。 ibm
ユーザーへの変更や削除はお勧めできません。
MongoDB Enterprise Edition を使用する ops_manager
ユーザー
Ops Manager は、Databases for MongoDB Enterprise Edition デプロイメントでのみ使用可能です。 ops_manager
ユーザー・タイプでは、権限が限定されています。 詳しくは、 Ops Manager の資料 を参照してください。