Autenticação segura do cliente com X.509
Nesta página
- Pré-requisitos gerais
- Configurar autenticação de cliente X.509 para um conjunto de réplicas
- Pré-requisitos
- Habilitar autenticação do cliente X.509
- Renovar certificados X.509 para um conjunto de réplicas
- Configurar autenticação de cliente X.509 para um cluster fragmentado
- Pré-requisitos
- Habilitar autenticação do cliente X.509
- Renovar certificados X.509 para um cluster fragmentado
O MongoDB Enterprise Kubernetes Operator pode usar certificados X.509 para autenticar seus aplicativos clientes em seus MongoDB deployments.
Este guia instrui você sobre como configurar a autenticação X.509 de clientes para suas instâncias MongoDB.
Observação
Você não pode proteger uma instância standalone do MongoDB em um cluster Kubernetes.
Pré-requisitos gerais
Antes de proteger sua implantação do MongoDB usando a criptografiaTLS do , faça o seguinte:
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
Ops Manager 4.1.7 ou posterior
Ops Manager 4.0.11 ou mais tarde
Configurar autenticação de cliente X.509 para um conjunto de réplicas
Pré-requisitos
Antes de proteger seu conjunto de réplicas usando o X.509, implemente um conjunto de réplicas criptografado por TLS.
Habilitar autenticação do cliente X.509
Copie o recurso definir de exemplo.
Altere as configurações desse arquivo YAML para corresponder à configuração desejada do definir .
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: <my-replica-set> 6 spec: 7 members: 3 8 version: "4.2.2-ent" 9 opsManager: 10 configMapRef: 11 # Must match metadata.name in ConfigMap file 12 name: <configMap.metadata.name> 13 credentials: <mycredentials> 14 type: ReplicaSet 15 persistent: true
16 security: 17 tls: 18 ca: <custom-ca> 19 certsSecretPrefix: <prefix> 20 authentication: 21 enabled: true 22 modes: ["X509"] 23 ...
Cole a seção de exemplo copiada no recurso de conjunto de réplicas existente.
Abra o editor de texto de sua preferência e cole a especificação do objeto no final do arquivo de recurso na spec
seção.
Configure as configurações gerais do X.509 para seu recurso de conjunto de réplicas.
Para habilitar o TLS e o X.509 em seu sistema, defina as seguintes configurações no seu objeto Kubernetes:
Salve o arquivo de configuração do conjunto de réplicas.
Aplique suas alterações à implantação do conjunto de réplicas.
Invoque o seguinte comando do Kubernetes para atualizar seu conjunto de réplicas:
kubectl apply -f <replica-set-conf>.yaml
Monitore o status da sua implementação.
Para verificar o status do seu recurso MongoDB
, utilize o seguinte comando:
kubectl get mdb <resource-name> -o yaml -w
Com o sinalizador -w
(inspeção) definido, quando a configuração muda, o resultado é atualizado imediatamente até que a fase de status atinja o estado Running
. Para saber mais sobre os status de distribuição de recursos, consulte Solucionar problemas do operador Kubernetes.
Renovar certificados X.509 para um conjunto de réplicas
Se você já tiver criado certificados, recomendamos que você os renove periodicamente usando o procedimento a seguir.
Observação
Para automatizar a renovação de certificados para sistemas do Ops Manager, considere configurar a integração do certificador-manager.
Configure kubectl
como padrão para seu namespace.
Caso ainda não tenha feito isso, execute o seguinte comando para executar todos os comandos kubectl
no namespace que você criou.
Observação
Se você estiver implantando um recurso MongoDB Ops Manager em um sistema do MongoDB de vários clusters Kubernetes:
Defina
context
como o nome do cluster central, como:kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME"
.Defina
--namespace
para o mesmo escopo usado para sua implantação do MongoDB de vários clusters Kubernetes, como:kubectl config --namespace "mongodb"
.
kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
Renove o segredo para seus certificados TLS.
Execute este kubectl
comando para renovar um segredo existente que armazena os certificados do conjunto de réplicas:
kubectl create secret tls <prefix>-<metadata.name>-cert \ --cert=<replica-set-tls-cert> \ --key=<replica-set-tls-key> \ --dry-run=client \ -o yaml | kubectl apply -f -
Renove o secreto para os509 certificados X. dos seus agentes.
Execute este kubectl
comando para renovar um segredo existente que armazena os509 certificados X. dos agentes:
kubectl create secret tls <prefix>-<metadata.name>-agent-certs \ --cert=<agent-tls-cert> \ --key=<agent-tls-key> \ --dry-run=client \ -o yaml | kubectl apply -f -
Configurar autenticação de cliente X.509 para um cluster fragmentado
Pré-requisitos
Antes de proteger seu cluster fragmentado usando o X.509, implemente um cluster fragmentado criptografado por TLS.
Habilitar autenticação do cliente X.509
Copie o recurso cluster fragmentado da amostra.
Altere as configurações desse arquivo YAML para corresponder à configuração de cluster fragmentado desejado.
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: <my-sharded-cluster> 6 spec: 7 shardCount: 2 8 mongodsPerShardCount: 3 9 mongosCount: 2 10 configServerCount: 3 11 version: "4.2.2-ent" 12 opsManager: 13 configMapRef: 14 name: <configMap.metadata.name> 15 # Must match metadata.name in ConfigMap file 16 credentials: <mycredentials> 17 type: ShardedCluster 18 persistent: true
19 security: 20 tls: 21 ca: <custom-ca> 22 certsSecretPrefix: <prefix> 23 authentication: 24 enabled: true 25 modes: ["X509"] 26 ...
Cole a seção de exemplo copiada no recurso do cluster fragmentado existente.
Abra seu editor de texto preferido e cole o objeto especificação no final do seu arquivo de recurso na spec
seção .
Configure as configurações gerais do X.509 para seu cluster fragmentado .
Para habilitar o TLS e o X.509 em seu sistema, defina as seguintes configurações no seu objeto Kubernetes:
Salve seu arquivo de configuração do cluster fragmentado .
Atualize e reinicie sua implantação de cluster fragmentado .
Em qualquer diretório, invoque o seguinte comando do Kubernetes para atualizar e reiniciar seu cluster fragmentado:
kubectl apply -f <sharded-cluster-conf>.yaml
Monitore o status da sua implementação.
Para verificar o status do seu recurso MongoDB
, utilize o seguinte comando:
kubectl get mdb <resource-name> -o yaml -w
Com o sinalizador -w
(inspeção) definido, quando a configuração muda, o resultado é atualizado imediatamente até que a fase de status atinja o estado Running
. Para saber mais sobre os status de distribuição de recursos, consulte Solucionar problemas do operador Kubernetes.
Renovar certificados X.509 para um cluster fragmentado
Se você já tiver criado certificados, recomendamos que você os renove periodicamente usando o procedimento a seguir.
Observação
Para automatizar a renovação de certificados para sistemas do Ops Manager, considere configurar a integração do certificador-manager.
Configure kubectl
como padrão para seu namespace.
Caso ainda não tenha feito isso, execute o seguinte comando para executar todos os comandos kubectl
no namespace que você criou.
Observação
Se você estiver implantando um recurso MongoDB Ops Manager em um sistema do MongoDB de vários clusters Kubernetes:
Defina
context
como o nome do cluster central, como:kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME"
.Defina
--namespace
para o mesmo escopo usado para sua implantação do MongoDB de vários clusters Kubernetes, como:kubectl config --namespace "mongodb"
.
kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
Renove o segredo para os certificados TLS dos seus shards.
Execute este comando kubectl
para renovar um segredo existente que armazena os certificados dos fragmentos de cluster fragmentados:
kubectl -n mongodb create secret tls <prefix>-<metadata.name>-0-cert \ --cert=<shard-0-tls-cert> \ --key=<shard-0-tls-key> \ --dry-run=client \ -o yaml | kubectl apply -f - kubectl -n mongodb create secret tls <prefix>-<metadata.name>-1-cert \ --cert=<shard-1-tls-cert> \ --key=<shard-1-tls-key> \ --dry-run=client \ -o yaml | kubectl apply -f -
Renove o segredo para os certificados TLS do seu servidor de configuração.
Execute este comando do kubectl
para renovar um segredo existente que armazena os certificados do servidor de configuração do agrupamento fragmentado:
kubectl -n mongodb create secret tls <prefix>-<metadata.name>-config-cert \ --cert=<config-tls-cert> \ --key=<config-tls-key> \ --dry-run=client \ -o yaml | kubectl apply -f -
Renove o segredo para os certificados TLS do seu servidor mongos.
Execute este kubectl
comando para renovar um segredo existente que armazena os certificados do cluster fragmentado :mongos
kubectl -n mongodb create secret tls <prefix>-<metadata.name>-mongos-cert \ --cert=<mongos-tls-cert> \ --key=<mongos-tls-key> \ --dry-run=client \ -o yaml | kubectl apply -f -
Renove o secreto para os509 certificados X. dos seus agentes.
Execute este kubectl
comando para renovar um segredo existente que armazena os509 certificados X. dos agentes:
kubectl create secret tls <prefix>-<metadata.name>-agent-certs \ --cert=<agent-tls-cert> \ --key=<agent-tls-key> \ --dry-run=client \ -o yaml | kubectl apply -f -