Kubernetes환경 Teleport에서 사용자 관리하기

Teleport 사용자 생성

  • member Role 생성

    • member.yaml
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    
    kind: role
    version: v7
    metadata:
      name: member
    spec:
      allow:
        kubernetes_groups: ["system:masters"]
        kubernetes_labels:
          '*': '*'
        kubernetes_resources:
          - kind: '*'
            namespace: '*'
            name: '*'
            verbs: ['*']
    
    1
    
    kubectl exec -i deployment/teleport-auth -n teleport-cluster -- tctl create -f < member.yaml
    
  • myuser 사용자 생성

    • 출력된 링크를 브라우저에서 접속
    1
    
    kubectl exec -it deployment/teleport-auth -n teleport-cluster -- tctl users add myuser --roles=member,access,editor
    
  • 로그인 성공!

    TeleportUserManage01.png

tsh 로그인

  • tsh login

    1
    
    tsh login --proxy=teleport.<도메인>:8443 --user=myuser
    
  • 사용자에 할당된 사용 가능한 k8s cluster 목록

    1
    2
    3
    4
    
    # tsh kube ls
    Kube Cluster Name      Labels Selected 
    ---------------------- ------ -------- 
    teleport.<domain>        *      
    
  • k8s cluster login

    1
    
    tsh kube login teleport.<domain>
    
  • kubectl 성공!

    1
    2
    3
    4
    5
    6
    7
    
    # kubectl get nodes
    NAME      STATUS   ROLES           AGE   VERSION
    master1   Ready    control-plane   51d   v1.31.4
    master2   Ready    control-plane   51d   v1.31.4
    master3   Ready    control-plane   51d   v1.31.4
    node1     Ready    <none>          51d   v1.31.4
    node2     Ready    <none>          51d   v1.31.4