Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.

Configura la autenticación interna de varios clústeres (X.509)

Esta guía le instruye sobre cómo configurar:

  • X.509 autenticación interna entre nodos MongoDB en cada clúster en tus implementaciones de MongoDB de clústeres multi-Kubernetes.

  • Autenticación X.509 de los clientes a tus instancias de MongoDB.

Antes de asegurar tu implementación de MongoDB en múltiples clústeres de Kubernetes mediante el cifrado TLS, completa las siguientes tareas:

Habilitar la autenticación X.509 a nivel de Proyecto configura a todos los agentes para que utilicen autenticación de cliente X.509 cuando se comuniquen con implementaciones de MongoDB.

La autenticación de cliente X.509 requiere uno de los siguientes:

  • Cloud Manager

  • La versión del Ops Manager es compatible con tu versión del Operador de Kubernetes.

1

Ejecuta el comando kubectl para crear un nuevo secreto que almacene el certificado X.509 del agente:

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \create secret tls <prefix>-<metadata.name>-agent-certs \ --cert=<agent-tls-cert> \ --key=<agent-tls-key>
2

Ejecute el comando kubectl para crear un nuevo secreto que almacene el certificado X.509 del nodo interno del clúster. Los nodos clústeres se definen en tu recurso MongoDBMultiCluster.

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \create secret tls <prefix>-<metadata.name>-clusterfile \ --cert=<resource-clusterfile-tls-cert> \ --key=<resource-clusterfile-tls-key>
3

Actualice su recurso personalizado MongoDBMultiCluster con configuraciones de seguridad del Operador de Kubernetes Especificación de recursos MongoDBMultiCluster. Agrega la configuración internalCluster, debajo de spec.authentication, y configúrala en "X509". La configuración resultante puede parecerse al siguiente ejemplo:

apiVersion: mongodb.com/v1 kind: MongoDBMultiCluster metadata: name: multi-replica-set spec: version: 8.0.0 type: ReplicaSet persistent: false duplicateServiceObjects: true credentials: my-credentials opsManager: configMapRef: name: my-project security: tls: a: custom-ca certsSecretPrefix: <prefix> authentication: enabled: true modes: ["X509"] agents: mode: "X509" internalCluster: "X509" clusterSpecList: - clusterName: ${MDB_CLUSTER_1_FULL_NAME} members: 3 - clusterName: ${MDB_CLUSTER_2_FULL_NAME} members: 2 - clusterName: ${MDB_CLUSTER_3_FULL_NAME} members: 3 The |k8s-op-short| copies the ConfigMap with the |certauth| created inthe central cluster to each member cluster, generates a concatenated|pem| secret, and distributes it to the member clusters.
4
  1. Para clústeres nodos, ejecuta los siguientes comandos para verificar que los Pods de MongoDB estén en estado en ejecución:

    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. En el clúster central, ejecute el siguiente comando para verificar que el recurso MongoDBMultiCluster esté en estado de ejecución:

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

Si ya ha creado certificados, renuévalos periódicamente utilizando el siguiente procedimiento.

1

Ejecuta este comando kubectl para renovar un secreto existente que almacena los certificados para el recurso MongoDBMultiCluster:

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \--namespace=<metadata.namespace> \create secret tls <prefix>-<metadata.name>-cert \--cert=<resource-tls-cert> \--key=<resource-tls-key> \--dry-run=client \-o yaml |kubectl apply -f -
2

Ejecuta el comando kubectl para renovar un secreto existente que almacene los certificados de agente de recursos MongoDBMultiCluster:

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \create secret tls <prefix>-<metadata.name>-agent-certs \ --cert=<agent-tls-cert> \ --key=<agent-tls-key> \ --dry-run=client \ -o yaml | kubectl apply -f -
3

Ejecuta el comando kubectl para renovar un secreto existente que almacena certificados X.509 para nodos internos del recurso MongoDBMultiCluster:

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \create secret tls <prefix>-<metadata.name>-clusterfile \ --cert=<resource-clusterfile-tls-cert> \ --key=<resource-clusterfile-tls-key> \ --dry-run=client \ -o yaml | kubectl apply -f -