AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

LDAP 認証を使用したデータベースユーザーの管理

Kubernetes Operator は、 TLSおよび LDAP クラスター認証を有効にして実行されている配置のデータベースユーザーの管理をサポートしています。

LDAP経由で認証されたユーザーの構成は、LDAP クエリ テンプレート と MongoDB が確立するマッピングに依存します。

詳細については、MongoDB Server ドキュメントの次のセクションを参照してください。

Kubernetes Operator は、作成する配置で SCRAM、LDAP、OpenID Connect、および X.509認証メカニズムをサポートします。Kubernetes Operator によって作成された配置では、MongoDB Ops Manager を使用して次の操作を実行することはできません。

  • 配置用のその他の認証メカニズムを構成します。

  • SCRAM、LDAP、または X.509 認証を使用せずにユーザーを管理します。

データベースユーザーを管理する前に、 LDAP が有効になっている レプリカセット または シャーディングされたクラスター を配置する必要があります。有効になっている。 オプションで、 TLSを有効にできます。 詳細については、「データベース リソースの保護 」を参照してください。

1

まだ作成していない場合は、次のコマンドを実行して、作成した名前空間ですべてのkubectlコマンドを実行します。

注意

MongoDB Ops Manager リソースを複数の Kubernetes クラスター MongoDB 配置に配置している場合、次の手順に従います。

  • context を演算子クラスターの名前に設定します(kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME" など)。

  • MongoDB のマルチ配置に使用したのと同じスコープ(例: kubectl config --namespace "mongodb"に--namespaceを設定します。

kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
2
---
apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
name: ldap-user-1
spec:
username: "uid=mdb0,dc=example,dc=org"
db: "$external"
mongodbResourceRef:
name: ldap-replica-set
roles:
- db: "admin"
name: "clusterAdmin"
- db: "admin"
name: "readWriteAnyDatabase"
- db: "admin"
name: "dbAdminAnyDatabase"
...
3
4

次の表を使用すると、 MongoDB ユーザー リソース仕様の関連行を変更する方法をガイドします。 LDAP ユーザー設定の完全なリストについては、 Kubernetes Operator MongoDB リソース仕様 のセキュリティ設定を参照してください。

キー
タイプ
説明
例

metadata.name

string

MongoDB データベース ユーザーのリソースの名前。

リソース名は 44 文字以下にする必要があります。

ldap-user-1

spec.db

string

ユーザーが追加される MongoDB database の名前。 この値は$externalである必要があります。

$external

spec.mongodbResourceRef.name

string

このユーザーが関連付けられているMongoDB リソースの名前。

my-resource

spec.opsManager.configMapRef.name

string

ユーザーが追加される MongoDB database を含むプロジェクトの名前。 spec.cloudManager.configMapRef.name設定はこの設定のエイリアスであり、代わりに使用できます。

my-project

spec.roles.db

string

ロールが操作できるデータベース。

admin

spec.roles.name

string

データベースユーザーに付与するロールの名前。ロール名は、Cloud Manager または Ops Manager に存在する任意の組み込み MongoDB ロールまたはカスタムロールにすることができます。

readWriteAnyDatabase

spec.username

string

spec.security.authentication.ldap.userToDNMapping に従って LDAP 識別名 (DN) にマッピングされている認証されたユーザー名。識別名は、お使いの LDAP 配置内に既に存在している必要があります。このユーザー名は、RFC 2253 LDAPv3 識別名標準に準拠する必要があります。transformed

詳細については、MongoDB マニュアルの「 LDAP クエリ テンプレート」を参照してください。

uid=mdb0,dc=example,dc=org

5

次の例で定義されている形式を使用して、このユーザーに追加のロールを付与できます。

---
apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
name: ldap-user-1
spec:
username: "uid=mdb0,dc=example,dc=org"
db: "$external"
mongodbResourceRef:
name: ldap-replica-set
roles:
- db: "admin"
name: "clusterAdmin"
- db: "admin"
name: "readWriteAnyDatabase"
- db: "admin"
name: "dbAdminAnyDatabase"
...
6

次の Kubernetes コマンドを呼び出して、データベースユーザーを作成します。

kubectl apply -f <database-user-conf>.yaml

stringLDAP次の例は、Kubernetes MongoDBOperator の配置で による認証を有効にするときに使用できる接続 の形式を示しています。これらの例では、 mongodb名前空間とreplica-set-ldapという名前のレプリカセットの配置を使用します。 シャーディングされたクラスターでも、例は同様です。

  • connectionString.standard: このデータベース ユーザーとしてデータベースに接続できる標準接続string 。

    mongodb://replica-set-ldap-0-0-svc.mongodb.svc.cluster.local/?connectTimeoutMS=20000&replicaSet=replica-set-ldap&serverSelectionTimeoutMS=20000&ssl=true&authSource=$external
  • connectionString.standardSrv: このデータベースユーザーとしてデータベースに接続できるDNS シード リスト接続string 。

    mongodb+srv://replica-set-ldap-svc.mongodb.svc.cluster.local/?connectTimeoutMS=20000&replicaSet=replica-set-ldap&serverSelectionTimeoutMS=20000&ssl=true&authSource=$external

以前に表示された形式を使用して、次の例のように MongoDB Shell( mongosh )で MongoDB database に接続できます。

mongosh <connection-string> \
--host <my-replica-set>/web1.example.com \
--port 30907 \
--authenticationMechanism PLAIN \
--username cn=rob,cn=Users,dc=ldaps-01,dc=myteam,dc=com

これらの認証情報を使用して、 Kubernetes内からMongoDBリソースに接続できます。

7

新しく作成されたユーザーは、 Cloud ManagerまたはMongoDB Ops Managerで表示できます。

  1. プロジェクトのDeploymentビューから、 Securityタブをクリックします。

  2. [ MongoDB Users ] ネストされたタブをクリックします。

データベースユーザーを削除するには、ユーザーmetadata.name ConfigMap から を渡します 次のコマンドに渡す追加オプション。

kubectl delete mdbu <metadata.name>