Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/
Controladores MongoDB para operador Kubernetes
/ /

Gerenciar usuários do banco de dados usando a autenticação OIDC

O Operador Kubernetes oferece suporte ao gerenciamento de usuários do banco de dados para sistemas em execução com TLS e a autenticação de cluster OIDC ativada. Isso permite que você crie objetos de usuário de banco de dados individuais que se autenticam em seu provedor de OIDC configurado.

Este método é utilizado principalmente quando seu provedor OIDC está configurado com um authorizationType de UserID.

Para a autorização GroupMembership, as funções são gerenciadas diretamente na especificação do recurso MongoDB, não por meio de recursos MongoDBUser individuais.

  • MongoDBUser Recurso: cada usuário do OIDC gerenciado dessa forma requer um recurso personalizado MongoDBUser correspondente. O Kubernetes Operator usa esse recurso para configurar o usuário no MongoDB.

  • $external Banco de dados: todos os usuários que se autenticam por meio de um mecanismo externo como o OIDC devem ser criados no banco de dados virtual $external. Você deve definir spec.db como "$external" no recurso MongoDBUser.

  • Formato do nome de usuário: o spec.username deve seguir o formato <configurationName>/<userClaimValue>, combinando o nome de configuração do provedor OIDC com a declaração exclusiva do JSON web token do usuário. Esta reivindicação é especificada por userClaim na configuração do provedor OIDC e padrão para sub.

  • Autenticação versus autorização: seu provedor de identidade (IdP) do OIDC é responsável por autenticar o usuário (verificar sua identidade). O recurso MongoDBUser é responsável por autorizar o usuário (definindo o que ele tem permissão para fazer) dentro do MongoDB.

Antes de gerenciar usuários do banco de dados, você deve implantar umconjunto de réplicas ou um cluster fragmentado com OpenID Connect habilitado. habilitado. Opcionalmente, você pode habilitar o TLS. Para saber mais, consulte Proteger um Recurso de Banco de Dados.

1

Crie um arquivo (por exemplo, my-oidc-user.yaml) para definir o usuário.

  • metadata.name: um nome exclusivo para o recurso MongoDBUser no Kubernetes.

  • spec.username: A identidade OIDC do usuário, combinando o provedor de oidc configurationName e a declaração de token exclusiva do usuário no formato <configurationName>/<userClaimValue>.

  • spec.db: deve ser $external.

  • spec.mongodbResourceRef.name: o nome do recurso MongoDB ao qual este usuário pertence.

  • spec.roles: Uma array de funções do MongoDB para conceder a esse usuário.

Aqui está um exemplo que cria um usuário com acesso de leitura e gravação ao banco de dados app-data.

apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
# A unique name for this Kubernetes resource.
name: oidc-app-user-1
spec:
# This username MUST match the 'userClaim' from the OIDC token.
username: "idp0/a1b2c3d4e5f6g7h8"
# OIDC users MUST be created in the $external database.
db: "$external"
# Point to the MongoDB deployment where this user should be created.
mongodbResourceRef:
name: my-oidc-replicaset
# Grant MongoDB roles to the user.
roles:
- db: "app-data"
name: "readWrite"
2
kubectl apply -f my-oidc-user.yaml

Para excluir um usuário de banco de dados, basta excluir o recurso MongoDBUser associado a ele. O Operador Kubernetes removerá automaticamente o usuário do banco de dados MongoDB . Passe o metadata.name do recurso MongoDBUser para o seguinte comando:

kubectl delete mongodbuser oidc-app-user-1

Nesta página