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.
Considerações
MongoDBUserRecurso: cada usuário do OIDC gerenciado dessa forma requer um recurso personalizadoMongoDBUsercorrespondente. O Kubernetes Operator usa esse recurso para configurar o usuário no MongoDB.$externalBanco 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 definirspec.dbcomo "$external" no recursoMongoDBUser.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
userClaimna configuração do provedor OIDC e padrão parasub.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.
Pré-requisitos
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.
Adicionar um usuário do banco de dados
Crie um arquivo YAML do MongoDBUser.
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 oidcconfigurationNamee a declaração de token exclusiva do usuário no formato<configurationName>/<userClaimValue>.spec.db: deve ser$external.spec.mongodbResourceRef.name: o nome do recursoMongoDBao 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"
Excluir um trigger de reconhecimento de data center
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