Este guia instrui você sobre como configurar:
- X.509 autenticação interna entre nós do MongoDB em cada cluster em seus sistemas do MongoDB de cluster multi-Kubernetes. 
- Autenticação X.509 de clientes para suas instâncias MongoDB. 
Pré-requisitos
Antes de proteger seu sistema MongoDB de cluster multi-Kubernetes usando criptografiaTLS , conclua as seguintes tarefas:
- Siga as etapas dos pré-requisitos de início rápido de vários clusters. 
- Implemente um multi-Kubernetes-cluster criptografado por TLS. 
- Criar credenciais para o Operador Kubernetes. 
A ativação da autenticação X.509 no nível do projeto configura todos os agentes para usar a autenticação de cliente X.509 ao se comunicar com deployments do MongoDB.
A autenticação do cliente X.509 requer um dos seguintes:
- Cloud Manager 
- Versão MongoDB Ops Manager compatível com sua versão do Kubernetes Operator. 
Configurar autenticação interna X.509 para um recurso MongoDBMultiCluster
Crie o segredo para o certificado X. do seu agente509 do seu MongoDBMultiCluster recurso.
Execute o comando kubectl para criar um novo segredo que armazena o certificado X.509 do 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> 
Crie o segredo para o certificado X.509 interno do cluster de membros.
Execute o comando kubectl para criar um novo segredo que armazene o certificado X.509 do membro interno do cluster. Os clusters de membros são definidos em seu 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> 
Atualize seu MongoDBMultiCluster recurso do para habilitar a509 autenticação doX.
Atualize seu recurso personalizado do MongoDBMultiCluster com configurações de segurança da especificação de recursos do MongoDBMultiCluster do Kubernetes Operator . Adicione a configuração internalCluster , em spec.authentication, e defina-a como "X509". A configuração resultante pode ser semelhante ao exemplo a seguir:
  apiVersion: mongodb.com/v1   kind: MongoDBMultiCluster   metadata:    name: multi-replica-set   spec:    version: 6.0.0-ent    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 in the operator cluster to each member cluster, generates a concatenated |pem| secret, and distributes it to the member clusters. 
Verifique se os MongoDBMultiCluster recursos do estão em execução.
- Para clusters de membros, execute os seguintes comandos para verificar se os MongoDB Pods estão no estado de execução: - 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 
- No cluster do operador, execute o seguinte comando para verificar se o recurso - MongoDBMultiClusterestá no estado de execução:- kubectl --context=$MDB_CENTRAL_CLUSTER_FULL_NAME \ - --namespace mongodb \ - get mdbmc multi-replica-set -o yaml -w 
Renovar certificados X.509 de autenticação interna para um recurso do MongoDBMultiCluster
Se você já tiver criado certificados, renove-os periodicamente usando o procedimento a seguir.
Renove o segredo para um recurso MongoDBMultiCluster.
Execute este comando kubectl para renovar um segredo existente que armazena os certificados para o 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 - 
Renove o segredo dos certificados X.509 do seu agente.
Execute o comando kubectl para atualizar um segredo existente que armazena os certificados do agente de recursos do 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 - 
Renove o segredo para os certificados X.509 dos membros internos do MongoDBMultiCluster recurso.
Execute o comando kubectl para atualizar um segredo existente que armazena certificados X.509 para nós internos do 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 -