Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
/ / /

Implementaciones seguras con X.509

Puedes configurar el operador de Kubernetes para utilizar certificados X.509 para autenticar tus aplicación cliente en una implementación de MongoDB multi-Kubernetes clúster.

Para proteger tu implementación de MongoDB en clústeres múltiples de Kubernetes con certificados X.509, debes ejecutar todas las acciones en el clúster del operador. El operador de Kubernetes propaga la configuración X.509 a cada clúster nodo y actualiza la configuración del operador de Kubernetes en cada clúster nodo.

Antes de asegurar la implementación de MongoDB en un clúster de multi-Kubernetes usando CifradoTLS, complete 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 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 configuraciones de seguridad del Operador de Kubernetes Especificación de recursos MongoDBMultiCluster. La configuración resultante puede tener una apariencia similar 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:
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 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 del operador, ejecuta el siguiente comando para verificar que el recurso MongoDBMultiCluster se encuentre en estado activo:

    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

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

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

Utiliza LDAP