Managed trigger de banco de dados usando a autenticação X.509
Nesta página
O Operador Kubernetes oferece suporte ao gerenciamento de trigger de banco de dados para reconhecimento de data center executados com a autenticação de cluster interno TLS e X.509 habilitada.
mecanismo de autenticação suportados
O Kubernetes Operator oferece suporte a mecanismos de autenticação SCRAM, LDAP e X.509 nos sistemas que ele cria. Em uma implantação criada pelo Kubernetes Operator, você não pode usar o MongoDB Ops Manager para:
Configure outros mecanismos de autenticação para sistemas.
Managed usuários não usando autenticação SCRAM, LDAP ou X.509.
Depois de ativar509 a autenticação X., é possível adicionar509 usuários X. usando a interface do Ops Manager ou a CustomResourceDefinition.
Pré-requisitos
Antes de gerenciar usuários do banco de dados de dados, você deve implantar umconjunto de réplicas do ou cluster fragmentado com TLS e X.509 habilitado.
Se você precisar gerar certificados X.509 para seus usuários do MongoDB, consulte Gerar certificados de cliente X.509.
Adicionar um usuário do banco de dados
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 o seguinte exemplo CustomResourceDefinition.
apiVersion: mongodb.com/v1 kind: MongoDBUser metadata: name: <resource-name> spec: username: <rfc2253-subject> db: "$external" mongodbResourceRef: name: '<MongoDB-Resource-name>' roles: - db: <database-name> name: <role-name> ...
Abra seu editor de texto preferido e cole o exemplo CustomResourceDefinition em um novo arquivo de texto.
Altere as linhas para os seguintes parâmetros, conforme necessário.
Use a tabela a seguir para orientá-lo durante a alteração das linhas relevantes na Especificação de recursos do usuário do MongoDB:
Chave | Tipo | Descrição | Exemplo | |||
---|---|---|---|---|---|---|
metadata.name | string | O nome do recurso do trigger de reconhecimento de data center. Os nomes de recursos devem ter 44 caracteres ou menos. | mms-user-1 | |||
spec.username | string | O assunto do certificado do cliente x509 assinado pelo Kubernetes CA (Kuber CA). IMPORTANTE: o nome de usuário deve estar em conformidade com a RFC 2253 LDAPv3 Padrão de nome distinto. Para obter o assunto do certificado X.509, execute o seguinte comando:
| CN=mms-user,U=My Organizational Unit,O=My Org,L=New York,ST=New York,C=US | |||
spec.opsManager.configMapRef.name | string | O nome do projeto que contém o MongoDB database onde o usuário será adicionado. A configuração spec.cloudManager.configMapRef.name é um alias para essa configuração e pode ser usada em seu lugar. | my-project | |||
spec.roles.db | string | O banco de dados no qual a função pode agir. | admin | |||
spec.mongodbResourceRef.name | string | O nome do recurso MongoDB ao qual este usuário está associado. | my-resource | |||
spec.roles.name | string | O nome do papel a conceder ao utilizador de banco de dados. O nome da função pode ser qualquer função MongoDB integrada ou função personalizada que exista no Cloud Manager ou no MongoDB Ops Manager. | readWriteAnyDatabase |
Adicione quaisquer roles adicionais para o usuário ao CustomResourceDefinition.
Você pode conceder roles adicionais a esse usuário usando o formato definido no exemplo a seguir:
apiVersion: mongodb.com/v1 kind: MongoDBUser metadata: name: mms-user-1 spec: username: CN=mms-user,U=My Organizational Unit,O=My Org,L=New York,ST=New York,C=US project: my-project db: "$external" roles: - db: admin name: backup - db: admin name: restore ...
Crie o usuário.
Invoque o seguinte comando do Kubernetes para criar seu trigger de reconhecimento de data center:
kubectl apply -f <database-user-conf>.yaml
Quando você cria um novo MongoDB database usuário do , o operadorKubernetes cria automaticamente um novo Kubernetes segredo. O segredo do Kubernetes contém as seguintes informações sobre o novo usuário do banco de dados:
username
: Nome de usuário para o utilizador de banco de dadospassword
: Senha para o usuário do banco de dadosconnectionString.standard
: stringde conexão padrão que pode conectar você ao banco de dados como este usuário do banco de dados.connectionString.standardSrv
: stringconexão da lista de sementes de DNS que pode conectar você ao banco de dados como este usuário do banco de dados.
Observação
Como alternativa, você pode especificar um campo spec.connectionStringSecretName
opcional na Especificação de Recurso de Usuário do MongoDB para especificar o nome do segredo da string de conexão que o Kubernetes Operator cria.
Você pode usar essas credenciais para se conectar a um recurso de banco de dados MongoDB a partir de Kubernetes internos.
Excluir um trigger de reconhecimento de data center
Para excluir um usuário do banco de dados, passe o metadata.name
do usuário ConfigMap ao seguinte comando:
kubectl delete mdbu <metadata.name>