Menu Docs
Página inicial do Docs
/
Operador de Kubernetes do MongoDB Enterprise
/ /

Autenticação interna segura com X.509

Nesta página

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.

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 do Ops Manager compatível com a versão do Kubernetes Operator.

1

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>
2

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>
3

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.
4
  1. 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
  2. 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

Se você já tiver criado certificados, renove-os periodicamente usando o procedimento a seguir.

1

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 -
2

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 -
3

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 -

Voltar

Implantações seguras com X.509