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

LDAP によるクライアント認証の保護

項目一覧

  • Considerations
  • 前提条件
  • マルチ Kubernetes クラスター レプリカセットに対する LDAP クライアント認証の構成
  • MongoDBMultiClusterリソースを更新して、 LDAP認証を有効にします。
  • MongoDBMultiClusterリソースが実行中であることを確認します。

MongoDB Enterpriseは以下をサポートします。

  • LDAP(Lightweight Directory Access Protocol)サービスへの認証リクエストをプロキシする。

  • LDAP サーバーへの簡易バインディングと SASL バインディング。 MongoDB Enterprise は、 saslauthdまたはオペレーティング システム ライブラリを介して LDAP サーバーにバインドできます。

詳細については、MongoDB Server ドキュメントの 「 LDAP プロキシ認証 」および 「 LDAP 認証 」セクションを参照してください。

Kubernetes Operator を使用して、マルチ Kubernetes クラスター MongoDB 配置に接続するクライアント アプリケーションを認証するためのLDAPを構成できます。 このガイドでは、クライアント アプリケーションからマルチ Kubernetes クラスター MongoDB 配置へのLDAP認証を構成する方法について説明します。

  • LDAPCustomResourceDefinitions で を構成する方法spec.security.authentication.ldap LDAPMongoDB Agentでは、Kubernetes Operator リソース仕様の および に固有のその他の セキュリティMongoDB 設定 の下のパラメーターを使用します。このセクションの手順では、必要な設定について説明し、 LDAP構成の例を示します。

  • セキュリティを強化するには、 TLS 暗号化されたマルチクラスターの配置を検討してください。 TLS による暗号化は任意です。 デフォルトでは、 LDAPトラフィックはプレーン テキストとして送信されます。 つまり、ユーザー名とパスワードがネットワークの攻撃に公開されます。 Microsoft Active Directory などの多くの最新のディレクトリ サービスでは、暗号化された接続が必要です。 Kubernetes Operator MongoDB 配置で認証リクエストを暗号化するために、 TLS / SSL 経由で LDAP を使用することを検討してください。

TLS暗号化を使用してマルチ Kubernetes クラスター MongoDB 配置を保護する前に、次のタスクを完了してください。

1

Kubernetes Operator MongoDB MultiCluster リソース仕様 のセキュリティ設定を使用し て MongoDB MultiCluster カスタム リソースを更新します 。

配置でLDAPを有効にするには、Kubernetes オブジェクトで次の設定を構成します。

キー
の種類と必要性
説明
boolean,
required
LDAP 認証を有効にするには、 をtrueに設定します。
true
string,
required
LDAP サーバーに接続するときに MongoDB がバインドする LDAP 識別名を指定します。
cn=admin,dc=example,dc=org
string,
required
シークレット の名前を指定する これには、LDAP サーバーに接続するときに MongoDB がバインドする LDAP バインド識別名のパスワードが含まれます。
<secret-name>
string,
optional
ConfigMap を追加する 配置の TLS 証明書に署名するために使用したカスタム CA を保存する の名前。
<configmap-name>
string,
optional
LDAP サーバーの TLS 証明書を検証する CA を保存するフィールド名を追加します。
<configmap-key>
array of strings,
required
1 つ以上の LDAP サーバーのhostname:portの組み合わせのリストを指定します。 各サーバーには、個別の行を使用します。
<example.com:636>
string,
optional
LDAPS( TLS経由の LDAP )を使用するには、 をtlsに設定します。 LDAP サーバーが TLS を受け入れていない場合は、 を空白のままにします。 この設定を使用するには、データベース リソースを配置するときに TLS を有効にする必要があります。
tls
string,
required

認証用に指定されたユーザー名をmongodまたはmongosにマッピングするマッピングを指定しLDAP 。

詳しくは、 security.ldap.userToDNMappingを参照してください。 MongoDB Server ドキュメントの「 およびLDAP クエリ テンプレート」。

<match: "(.+)",substitution: "uid={0},ou=groups,dc=example,dc=org">
string,
required
LDAP による認証を有効にするには、 をLDAPに設定します。
LDAP

結果の構成は、次の例のようになります。

security:
authentication:
enabled: true
# Enabled LDAP Authentication Mode
modes:
- "LDAP"
- "SCRAM"
# LDAP related configuration
ldap:
# Specify the hostname:port combination of one or
# more LDAP servers
servers:
- "ldap1.example.com:636"
- "ldap2.example.com:636"
# Set to "tls" to use LDAP over TLS. Leave blank if
# the LDAP server doesn't accept TLS. You must enable TLS when
# you deploy the multi-cluster resource to use this setting.
transportSecurity: "tls"
# If TLS is enabled, add a reference to a ConfigMap that
# contains a CA certificate that validates the LDAP server's
# TLS certificate.
caConfigMapRef:
name: "<configmap-name>"
key: "<configmap-entry-key>"
# Specify the LDAP Distinguished Name to which
# MongoDB binds when connecting to the LDAP server
bindQueryUser: "cn=admin,dc=example,dc=org"
# Specify the password with which MongoDB binds
# when connecting to an LDAP server. This is a
# reference to a Secret Kubernetes Object containing
# one "password" key.
bindQueryPasswordSecretRef:
name: "<secret-name>"

LDAP 設定の完全なリストについては、 Kubernetes Operator MongoDB MultiCluster リソース仕様の セキュリティ設定 を参照してください。 また、LDAP 対応の Kubernetes Operator ユーザー配置で MongoDB Agent ユーザーのspec.security.authentication.agents.automationUserName設定も参照してください。

2
  1. ノードクラスターの場合は、次のコマンドを実行して、MongoDB ポッドが実行状態であることを確認します。

    kubectl get pods \
    --context=$MDB_CLUSTER_1_FULL_NAME \
    --namespace mongodb
    kubectl get pods \
    --context=$MDB_CLUSTER_2_FULL_NAME \
    --namespace mongodb
    kubectl get pods \
    --context=$MDB_CLUSTER_3_FULL_NAME \
    --namespace mongodb
  2. 中央クラスターで次のコマンドを実行し、 MongoDBMultiClusterリソースが実行状態であることを確認します。

    kubectl --context=$MDB_CENTRAL_CLUSTER_FULL_NAME \
    --namespace mongodb \
    get mdbmc multi-replica-set -o yaml -w