쿠버네티스 대시보드 접근 보안 설정

KubernetesBeginner
지금 연습하기

소개

이번 챌린지에서는 쿠버네티스 대시보드용 읽기 전용 서비스 계정을 생성하여 클러스터의 보안을 강화하고, 역할 기반 액세스 제어 (RBAC) 에 대한 이해도를 증명하게 됩니다. 새로운 서비스 계정과 읽기 전용 권한을 가진 클러스터 역할을 생성한 뒤, 이 둘을 서로 연결하는 작업을 수행합니다. 마지막으로 대시보드 로그인에 사용할 서비스 계정 토큰을 생성합니다.

쿠버네티스 대시보드 접근 보안 설정

주니어 데브옵스 엔지니어로서 쿠버네티스 대시보드용 읽기 전용 서비스 계정을 구성하여 클러스터 보안을 개선하고 RBAC 설정 능력을 보여주세요.

과제

  • 제공된 YAML 파일을 사용하여 kubernetes-dashboard 네임스페이스에 read-only-user라는 이름의 새로운 서비스 계정을 생성합니다.
  • 기본 네임스페이스에 대해 읽기 전용 권한을 가진 ClusterRole을 생성합니다. 이때 pods, services, nodes, namespaces, deployments 리소스에 대해 get, list, watch 작업이 가능해야 합니다.
  • 생성한 ClusterRoleread-only-user 서비스 계정에 바인딩합니다.
  • 대시보드 로그인 시 사용할 서비스 계정 토큰을 생성합니다.

요구 사항

  • ~/project 디렉토리에서 작업하세요.
  • 서비스 계정은 kubernetes-dashboard 네임스페이스를 사용해야 합니다.
  • YAML 파일 이름은 read-only-dashboard-access.yaml로 지정하세요.
  • 서비스 계정은 오직 읽기 권한만 가져야 합니다.
  • 접근 범위를 default 네임스페이스로 제한하세요.

제공할 YAML 파일 내용:

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: read-only-user
  namespace: kubernetes-dashboard

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: read-only-dashboard-role
rules:
  - apiGroups: [""]
    resources: ["pods", "services", "nodes", "namespaces", "deployments"]
    verbs: ["get", "list", "watch"]

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: read-only-dashboard-access
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: read-only-dashboard-role
subjects:
  - kind: ServiceAccount
    name: read-only-user
    namespace: kubernetes-dashboard

예시

서비스 계정 토큰 출력 예시:

eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...

로그인 후 대시보드 화면 예시:

  • 조회 가능: 네임스페이스 리소스, 디플로이먼트, 포드
  • 조회 불가 (비활성화): 생성, 수정, 삭제 작업

힌트

  • Minikube 를 시작하고 쿠버네티스 대시보드 공식 저장소의 recommended.yaml 파일을 적용하여 대시보드를 배포하세요.
  • kubectl createkubectl apply 명령어를 사용하세요.
  • ClusterRole 및 ClusterRoleBinding 설정 상태를 확인하세요.
  • 토큰을 생성하려면 kubectl -n kubernetes-dashboard create token read-only-user 명령어를 사용하세요.

요약

이번 챌린지에서는 쿠버네티스 대시보드용 읽기 전용 서비스 계정을 생성하여 클러스터 보안을 강화했습니다. 새로운 서비스 계정과 읽기 전용 권한을 가진 ClusterRole 을 생성하고, 이를 바인딩하는 과정을 실습했습니다. 마지막으로 생성된 토큰을 통해 대시보드에 안전하게 로그인하는 방법을 익혔습니다.

✨ 솔루션 확인 및 연습