🔹 개요
Amazon EKS에서 Kubernetes Dashboard 7 버전을 사용할 경우, RBAC(Role-Based Access Control)를 통해 사용자를 추가하고 권한을 부여해야 합니다.
이 문서는 Kubernetes 대시보드에서 새로운 사용자를 추가하는 방법을 설명합니다.
✅ EKS Kubernetes Dashboard 7에서 사용자 추가 방법
📌 1. 서비스 계정(ServiceAccount) 생성
먼저, 대시보드에 접근할 사용자(ServiceAccount)를 생성합니다.
kubectl create serviceaccount dashboard-user -n kubernetes-dashboard
✅ 설명:
- dashboard-user라는 새로운 서비스 계정(ServiceAccount)을 생성합니다.
- 네임스페이스는 kubernetes-dashboard를 사용합니다.
📌 2. 권한(Role) 및 역할 바인딩(RoleBinding) 생성
RBAC을 사용하여 대시보드에서 사용할 수 있는 권한을 부여해야 합니다.
아래 YAML 파일을 생성하고 적용하세요.
💾 dashboard-user-role.yaml 파일 생성
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: dashboard-user
subjects:
- kind: ServiceAccount
name: dashboard-user
namespace: kubernetes-dashboard
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
✅ 설명:
- dashboard-user 계정에 클러스터 관리자(cluster-admin) 권한을 부여합니다.
- ClusterRoleBinding을 사용하여 모든 리소스를 관리할 수 있도록 설정합니다.
📌 권한 적용:
kubectl apply -f dashboard-user-role.yaml
❗ 보안 주의:
cluster-admin 권한은 모든 Kubernetes 리소스를 제어할 수 있습니다.
보안이 중요한 환경에서는 필요한 최소한의 권한만 부여하는 것이 좋습니다.
필요에 따라 view 또는 edit 권한만 부여하는 방식으로 변경할 수 있습니다.
📌 3. 사용자 로그인 토큰 발급
Kubernetes Dashboard에 로그인하려면 서비스 계정의 인증 토큰을 가져와야 합니다.
kubectl -n kubernetes-dashboard create token dashboard-user
✅ 설명:
- dashboard-user의 토큰을 생성하고 출력합니다.
- 출력된 토큰을 복사하여 로그인 시 사용합니다.
📌 4. 대시보드 접근 (포트포워딩 설정)
Kubernetes Dashboard는 기본적으로 외부에서 직접 접근할 수 없습니다.
포트 포워딩을 설정하여 로컬 환경에서 접근할 수 있도록 합니다.
kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8000:443
✅ 설명:
- localhost:8000에서 대시보드에 접근 가능
- 웹 브라우저에서 https://localhost:8000으로 접속 후 로그인 가능
📌 5. Kubernetes Dashboard 로그인
- 웹 브라우저에서 https://localhost:8000로 접속
- "토큰 로그인(Token Sign-In)"을 선택
- 앞서 생성한 토큰을 입력
- 로그인 버튼 클릭 후 대시보드 사용
🚀 결론
✔ EKS에서 Kubernetes Dashboard 7에 새로운 사용자 추가 가능
✔ RBAC을 활용하여 ServiceAccount 및 ClusterRoleBinding 설정
✔ 사용자 인증을 위해 Kubernetes 서비스 계정 토큰을 생성 후 로그인
✔ 보안을 고려하여 cluster-admin 대신 view 또는 edit 권한을 부여하는 방법도 가능
📌 이제 Kubernetes Dashboard에서 새로운 사용자를 추가하고 관리할 수 있습니다! 🎯