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

Gerar certificados de cliente X.509

Nesta página

O MongoDB Enterprise Kubernetes Operator pode distribuir instâncias do MongoDB com autenticação X.509 habilitada. Se a autenticação X.509 tiver sido habilitada para a implantação, você deverá gerar e usar um certificado X.509 para se conectar à implantação. Este novo certificado de cliente deve ser assinado pela mesma CA que assina os certificados do servidor para que a implementação do MongoDB o aceite.

Use o procedimento descrito neste documento para usar um certificado X.509 para se conectar à sua implantação do MongoDB habilitada para X.509.

Se você estiver usando o HashiCorp Vault como sua ferramenta de armazenamento secreto, você pode Criar um Vault Secret .

Observação

Para automatizar a renovação de certificados para sistemas do Ops Manager, considere configurar a integração do certificador-manager.

Observação

Uma descrição completa dos certificados TLS (Transport Layer Security), Infraestrutura de Chave Pública (PKI) e Autoridades de Certificação está além do escopo deste documento. Esta página pressupõe conhecimento prévio da autenticação TLS e X.509.

  • Para concluir este tutorial, você deve ter o MongoDB Enterprise Kubernetes Operator instalado. Para obter instruções sobre como instalar o Kubernetes Operator, consulte Instalar o MongoDB Enterprise Kubernetes Operator.

  • Este tutorial pressupõe que você tenha um sistema MongoDB que exija autenticação X.509. Para obter instruções sobre como implantar recursos do MongoDB, consulte Distribuir um recurso de MongoDB database.

Primeiro, crie o certificado do cliente. Em seguida, crie um usuário MongoDB e conecte-se ao sistema habilitado para X.509.

1

Para uso em produção, seu deployment do MongoDB deve usar certificados válidos gerados e assinados por uma CA. Você ou sua organização podem gerar e manter uma CA independente usando ferramentas nativas doKubernetes, como o cert-manager.

Obter e gerenciar certificados está além do escopo desta documentação.

Importante

Você deve concatenar o certificado TLS do seu cliente e a chave do certificado em um arquivo .pem . Você deve apresentar este arquivo .pem quando se conectar à sua implantação do MongoDB habilitada para X.509.

Para saber mais sobre as propriedades que seus certificados de cliente devem ter, consulte Requisitos de certificado de cliente no Manual do MongoDB .

2

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

Salve o seguinte ConfigMap como x509-mongodb-user.yaml:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDBUser
4metadata:
5 name: new-x509-user
6spec:
7 username: "CN=my-x509-authenticated-user,OU=organizationalunit,O=organization"
8 db: "$external"
9 mongodbResourceRef:
10 name: '<name of the MongoDB resource>'
11 roles:
12 - db: "admin"
13 name: "readWriteAnyDatabase"

Este arquivo ConfigMap .yaml descreve um objeto personalizado MongoDBUser . Você pode usar esses objetos personalizados para criar usuários do MongoDB. Para saber mais, consulte Especificação do recurso do usuário do MongoDB.

Neste exemplo, o ConfigMap descreve o usuário como um usuário X.509 que o cliente pode usar para se conectar ao MongoDB com o certificado X.509 correspondente.

4

Execute o seguinte comando para aplicar o ConfigMap e criar o usuário X.509 MongoDB:

kubectl apply -f x509-mongodb-user.yaml

Você deverá ver uma saída semelhante à seguinte:

mongodbuser.mongodb.com/new-x509-user created
5

Execute o seguinte comando para verificar o estado do new-x509-user:

kubectl get mdbu/new-x509-user -o yaml

Você deverá ver uma saída semelhante à seguinte:

NAME CREATED AT
new-x509-user 8m
6

Execute o seguinte comando para descobrir onde em cada pod o Operador do Kubernetes montou o segredo da CA :

kubectl get statefulset <metadata.name> -o yaml

Na saída, encontre a montagem secret-ca :

volumeMounts:
- mountPath: /opt/scripts
name: database-scripts
readOnly: true
- mountPath: /var/lib/mongodb-automation/secrets/ca
name: secret-ca
readOnly: true
- mountPath: /var/lib/mongodb-automation/secrets/certs
name: secret-certs
readOnly: true

Na etapa a seguir, ao se conectar ao reconhecimento de data center, acrescente secret-ca ao comando de banco de mountPath dados, que forma o caminho completo:

/var/lib/mongodb-automation/secrets/ca/secret-ca
7

Depois de criar seu usuário X.509, tente se conectar ao sistema usando o MongoDB Shell (mongosh):

mongosh --host {host} --port {port} --tls \
--tlsCAFile </path/to/secret-ca> \
--tlsCertificateKeyFile <your-cert>.pem \
--authenticationMechanism MONGODB-X509 \
--authenticationDatabase '$external'
mongosh --host {host} --port {port} --ssl \
--sslCAFile </path/to/secret-ca> \
--sslPEMKeyFile <your-cert>.pem \
--authenticationMechanism MONGODB-X509 \
--authenticationDatabase '$external'

Voltar

Criar um projeto