Docs Menu
Docs Home
/
MongoDB Enterprise Kubernetes 演算子
/ /

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

項目一覧

  • Considerations
  • 前提条件
  • データベースユーザーの追加
  • データベースユーザーの削除

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

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

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

  • LDAP 承認

  • LDAP クエリ テンプレート

  • security.ldap.userToDNMapping

Kubernetes Operator は、作成する配置で SCRAM、LDAP、および 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

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

readWriteAnyDatabase

spec.username

string

spec.security.authentication.ldap.userToDNMappingによって LDAP 識別名(DN)にマッピングされる認証済みユーザー名。 DN は LDAP 配置にすでに存在している必要があります。 このユーザー名は RFC2253 3に準拠する必要があります。 LDAPv 識別名 標準。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 Database Resource に接続できます。

7

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

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

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

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

kubectl delete mdbu <metadata.name>