Gerar certificados de cliente X.509
Nesta página
- Pré-requisitos
- Procedimento
- Gere um certificado de cliente X.509.
- Configure o
kubectl
como padrão para seu namespace. - Copie e salve o seguinte exemplo ConfigMap.
- Crie o usuário X.509 MongoDB.
- Verifique seu usuário recém-criado
- Encontre o local de montagem daCA .
- Use seu usuário X.509 para se conectar ao MongoDB deployment
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.
Pré-requisitos
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.
Procedimento
Primeiro, crie o certificado do cliente. Em seguida, crie um usuário MongoDB e conecte-se ao sistema habilitado para X.509.
Gere um certificado de cliente X.509.
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 .
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>
Copie e salve o seguinte exemplo ConfigMap.
Salve o seguinte ConfigMap como x509-mongodb-user.yaml
:
1 --- 2 apiVersion: mongodb.com/v1 3 kind: MongoDBUser 4 metadata: 5 name: new-x509-user 6 spec: 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.
Encontre o local de montagem do CA.
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
Use seu usuário X.509 para se conectar ao MongoDB deployment
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'