Docs Menu
Docs Home
/ /
/ / /

Implementaciones seguras con X.509

Puede configurar el operador de Kubernetes para usar certificados X.509 para autenticar sus aplicaciones cliente en una implementación de MongoDB de un clúster de Kubernetes múltiple.

Para proteger su implementación de MongoDB en varios clústeres de Kubernetes con certificados X.509, ejecute todas las acciones en el Clúster de operadores. El operador de Kubernetes propaga la configuración de X.509 a cada clúster miembro y actualiza la configuración del operador de Kubernetes en cada clúster miembro.

Antes de proteger su implementación de MongoDB en un clúster multi-Kubernetes mediante CifradoTLS, complete las siguientes tareas:

Al habilitar la autenticación X.509 en el nivel del proyecto, se configuran todos los agentes para usar la autenticación de cliente X.509 cuando se comunican con implementaciones de MongoDB.

La autenticación del 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

Ejecute 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

Actualice su recurso personalizado MongoDBMultiCluster con la configuración de seguridad de la especificación del recurso MongoDBMultiCluster del operador de Kubernetes. La configuración resultante podría ser similar a la del 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:
ca: custom-ca
certsSecretPrefix: <prefix>
authentication:
enabled: true
modes: ["X509"]
agents:
mode: "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 in
the operator cluster to each member cluster, generates a concatenated
|pem| secret, and distributes it to the member clusters.
3
  1. Para los clústeres de miembros, ejecute los siguientes comandos para verificar que los pods de MongoDB estén en estado de 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 del operador, 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 se han creado certificados X.509, renovarlos periódicamente utilizando el siguiente procedimiento.

1

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

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

Ejecute el comando kubectl para renovar un secreto existente que almacena los certificados del 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 -

Volver

Usar LDAP