Autenticação interna segura com X.509
Nesta página
- Pré-requisitos
- Configurar autenticação interna X.509 para um recurso MongoDBMultiCluster
- Crie o segredo para o certificado X.509 do seu agente do seu recurso
MongoDBMultiCluster
. - Crie o segredo para o certificado X.509 interno do cluster de membros.
- Atualize seu recurso do
MongoDBMultiCluster
para habilitar a autenticação X509. - Verifique se os recursos do
MongoDBMultiCluster
estão em execução. - Renovar certificados X.509 de autenticação interna para um recurso do MongoDBMultiCluster
- Renove o segredo para um
MongoDBMultiCluster
recurso. - Renove o segredo dos certificados X.509 do seu agente.
- Renove o segredo para os certificados X.509 dos membros internos do recurso
MongoDBMultiCluster
.
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 nospré-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 central 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 central, execute o seguinte comando para verificar se o recurso
MongoDBMultiCluster
está 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 MongoDBMultiCluster
recurso.
Execute este kubectl
comando para renovar um segredo existente que armazena os certificados para o 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 -
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 -