Usuários

Recurso do Usuário

O recurso User (users.management.cattle.io) representa uma conta de usuário no Rancher.

Para obter uma descrição dos campos e da estrutura do recurso User, execute:

kubectl explain users.management.cattle.io

Criando um usuário

Criar um usuário local é um processo de duas etapas: você deve criar o recurso User e, em seguida, fornecer uma senha via um Secret do Kubernetes.

Apenas um usuário com permissões suficientes pode criar um recurso User.

kubectl create -f -<<EOF
apiVersion: management.cattle.io/v3
kind: User
metadata:
  name: testuser
displayName: "Test User"
username: "testuser"
EOF

A senha do usuário deve ser fornecida em um objeto Secret dentro do namespace cattle-local-user-passwords. O webhook do Rancher faz o hash da senha automaticamente e atualiza o Secret.

Importante: O Secret deve ter o mesmo nome que o metadata.name (e nome de usuário) do recurso User.

kubectl create -f -<<EOF
apiVersion: v1
kind: Secret
metadata:
  name: testuser
  namespace: cattle-local-user-passwords
type: Opaque
stringData:
  password: Pass1234567!
EOF

Após a senha em texto simples ser enviada, o Rancher-Webhook faz o hash dela automaticamente, substituindo o conteúdo do Secret, garantindo que a senha em texto simples nunca seja armazenada:

apiVersion: v1
data:
  password: 1c1Y4CdjlehGWFz26F414x2qoj4gch5L5OXsx35MAa8=
  salt: m8Co+CfMDo5XwVl0FqYzGcRIOTgRrwFSqW8yurh5DcE=
kind: Secret
metadata:
  annotations:
    cattle.io/password-hash: pbkdf2sha3512
  name: testuser
  namespace: cattle-local-user-passwords
  ownerReferences:
  - apiVersion: management.cattle.io/v3
    kind: User
    name: testuser
    uid: 663ffb4f-8178-46c8-85a3-337f4d5cbc2e
  uid: bade9f0a-b06f-4a77-9a39-4284dc2349c5
type: Opaque

Atualizando a Senha do Usuário

Para alterar a senha de um usuário, use o recurso PasswordChangeRequest, que gerencia atualizações seguras de senha.

kubectl create  -f -<<EOF
apiVersion: ext.cattle.io/v1
kind: PasswordChangeRequest
spec:
  userID: "testuser"
  currentPassword: "Pass1234567!"
  newPassword: "NewPass1234567!"
EOF

Listando Usuários

Liste todos os recursos User no cluster:

kubectl get users
NAME           AGE
testuser       3m54s
user-4n5ws     12m

Visualizando um Usuário

Visualize um recurso User específico pelo nome:

kubectl get user testuser
NAME           AGE
testuser       3m54s

Apagando um usuário

Excluir um usuário exclui automaticamente a senha correspondente Secret.

kubectl delete user testuser
user.management.cattle.io "testuser" deleted

Obter Informações do Usuário Atual

Um cliente usa o recurso SelfUser para recuperar informações sobre o usuário autenticado atualmente sem saber seu ID. O ID do usuário é retornado no campo .status.userID.

kubectl create -o jsonpath='{.status.userID}'  -f -<<EOF
apiVersion: ext.cattle.io/v1
kind: SelfUser
EOF
testuser

Atualizando a Associação de Grupo de um Usuário

As atualizações nas associações de grupos de usuários são acionadas pelo recurso GroupMembershipRefreshRequest.

A associação a grupos é suportada apenas para provedores de autenticação externos.

Para um único usuário

kubectl create -o jsonpath='{.status}'  -f -<<EOF
apiVersion: ext.cattle.io/v1
kind: GroupMembershipRefreshRequest
spec:
  userId: testuser
EOF
{
    "conditions": [
        {
            "lastTransitionTime": "2025-11-10T12:01:03Z",
            "message": "",
            "reason": "",
            "status": "True",
            "type": "UserRefreshInitiated"
        }
    ],
    "summary": "Completed"
}

Para todos os usuários

kubectl create -o jsonpath='{.status}'  -f -<<EOF
apiVersion: ext.cattle.io/v1
kind: GroupMembershipRefreshRequest
spec:
   userId: "*"
EOF
{
    "conditions": [
        {
            "lastTransitionTime": "2025-11-10T12:01:59Z",
            "message": "",
            "reason": "",
            "status": "True",
            "type": "UserRefreshInitiated"
        }
    ],
    "summary": "Completed"
}