MongoDBUserカスタム リソースを使用すると、ユーザーが MongoDB database にアクセスするために必要な認証とロールを構成できます。
例
次の例は、 MongoDBUserカスタム リソースのリソース仕様を示しています。
apiVersion: mongodb.com/v1kind: MongoDBUsermetadata: name: ldap-user-1spec: 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"
必要なMongoDBUser リソース設定
このセクションでは、すべてのMongoDBUserリソースに使用する必要がある設定について説明します。
apiVersion型: string
MongoDB Kubernetes リソース スキーマのバージョン。
kind型: string
作成する MongoDB Kubernetes リソースの種類。 これを
MongoDBUserに設定します。
metadata.name型: string
人間が判読できる名前なので、この特定の
MongoDBUserリソースを識別できます。リソース名は 44 文字以下にする必要があります。
spec.db型: string
これらのユーザーがアクセスする MongoDB database の名前。 デフォルトは
adminです。spec.dbユーザーの認証データベースを設定します。Kubernetes 演算子は、このデータベースを使用してユーザーを識別します。また、生成された接続文字列のauthSourceパラメータを設定し、生成された接続文字列シークレットに名前を付けます。接続文字列URIパスでデータベースを設定するには、spec.connectionStringDatabase.を使用します。
spec.username型: string
MongoDB database またはコレクションへの認証に必要なユーザーを識別する、人間が判読可能なラベル。
任意のMongoDBUser リソース設定
MongoDBUserカスタム リソースは、次の設定を使用できます。
spec.connectionStringDatabase型: string
このユーザー向けに Kubernetes 演算子 が生成する接続文字列の URI パス内のデータベース名。接続文字列のシークレットを読み取るクライアントは、デフォルトでこのデータベースを使用します。
spec.connectionStringDatabaseURI パスは変更されますが、認証は変更されません。認証は spec.db で制御されます。例えば、spec.dbがadminで、spec.connectionStringDatabaseがmyappのユーザーはadminに対して認証し、デフォルトでmyappを使用します。mongodb://my-user:pass@host:27017/myapp?authSource=adminKubernetes 演算子 は、接続文字列シークレットの
connectionString.standardキーとconnectionString.standardSrvキーの両方にデータベースを適用します。この設定を空白にすると、空の URI パスになります。この場合、クライアントが活性なデータベースを決定します。たとえば、
mongoshはデフォルトで ``test`` を使用します。spec.connectionStringSecretName型: string
Operator が作成する接続 シークレットの名前。stringKubernetes
新しいMongoDBデータベースユーザーを作成すると、 Kubernetes Operator は自動的に新しいKubernetes secret を作成します。Kubernetesシークレットには、新しいデータベースユーザーに関する次の情報が含まれています。
username: データベースユーザーのユーザー名password: データベースユーザーのパスワードconnectionString.standard: このデータベース ユーザーとしてデータベースに接続できる標準接続string 。connectionString.standardSrv: このデータベースユーザーとしてデータベースに接続できるDNS シード リスト接続string 。
spec.mongodbResourceRef.name型: string
このユーザーが関連付けられているMongoDB リソースの名前。 たとえば、
my-resource。spec.mongodbResourceRef.namespace型: string
このユーザーのシークレットを含む名前空間。指定されていない場合、 Kubernetes Operator は
MongoDBUserカスタムリソースと同じ名前空間に接続シークレットを保持します。spec.passwordSecretKeyRef.name型: string
metadata.nameユーザーのパスワードを保存するシークレットの値。 たとえば、my-secret-name。spec.passwordSecretKeyRef.key型: string
このMongoDBデータベースユーザーのパスワードを含むシークレット内のフィールドの名前。
詳細については、Kubernetes のドキュメント を参照してください。
spec.roles.db型: string
ロールが機能できる MongoDB database。 たとえば、
admin。spec.roles.name型: string
データベースユーザーに付与するロールの名前。