Skip to content

Jak dodać nowego usera ze wszystkimi uprawnieniami do klastra?

1. Tworzymy ClusterRoleBinding z mapowaniem ClusterRole cluster-admin i grupy example:masters

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: example-cluster-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - apiGroup: rbac.authorization.k8s.io
    kind: Group
    name: example:masters
kubectl apply -f <nazwa_clusterrolebindingu>.yaml

2. Generujemy klucz prywatny RSA 2048 oraz CSR z nowo utworzoną grupą w polu O:

openssl genrsa -out <nazwa_usera>.key 2048

openssl req -new -key <nazwa_usera>.key -out <nazwa_usera>.csr -subj "/CN=<nazwa_usera>/O=example:masters"

3. Pobieramy CSR zakodowany w Base64:

cat <nazwa_usera>.csr | base64 -w 0

4. Generujemy manifest CertificateSigningRequest:

apiVersion: certificates.k8s.io/v1
kind: CertificateSigningRequest
metadata:
  name: myuser # example
spec:
  # This is an encoded CSR. Change this to the base64-encoded contents of myuser.csr
  request: <SKOPIOWANY_CSR_W_BASE64>
  signerName: kubernetes.io/kube-apiserver-client
  usages:
  - client auth

5. Akceptujemy żądanie

kubectl certificate approve <nazwa_NAME>

6. Dodajemy konfigurację Usera do .kube/config

Wykorzystamy do tego poradnik: [[Dodawanie konfiguracji użytkownika do .kube configa]]

7. Sprawdzenie uprawnień użytkownika:

kubectl auth can-i create pods --as=<nazwa_usera> --as-group=example:masters

Sprawdzenie nastąpiło z flagą --as-group, Kubernetes musi widzieć o tym, że sprawdzamy konto z przypisaną grupą.