오늘도 한 뼘 더

[k8s] error: You must be logged in to the server (Unauthorized) - cluster 생성자가 아닌 사용자에게 권한 부여 본문

DevOps & Infra/K8S(Kubernetes)

[k8s] error: You must be logged in to the server (Unauthorized) - cluster 생성자가 아닌 사용자에게 권한 부여

나른한댕댕이🐶 2023. 2. 15. 14:05
728x90
반응형

  # 배경  

AWS EKS Cluster를 생성한 사용자 외의 다른 사용자가 cluster 및 리소스들을 접근할 수 있도록 권한을 부여하고 싶다. 

 

  # 문제  

 aws configure

다른 사용자를 설정하고 kubectl 명령어를 입력하면 다음과 같은 에러가 발생한다. 

 $ kubectl get pods
 > error: You must be logged in to the server (Unauthorized)

설정한 사용자에게 eks에 대한 권한이 없기에 발생하는 문제이다.

 

  # 해결방법  

EKS Cluster 구성에 있는 configmap의 aws-auth에 해당 사용자를 매핑시켜주어야 한다.

 $ kubectl edit configmap -n kube-system aws-auth

위 명령어를 통해서 configmap의 aws-auth 수정 파일을 열어준다. 

다음과 같이 작성하여 사용자에게 권한을 부여한다. 

apiVersion: v1
kind: ConfigMap
metadata:
  name: aws-auth
  namespace: kube-system
data:
  mapRoles: |
    - rolearn: <ARN of instance role (not instance profile)>
      username: system:node:{{EC2PrivateDNSName}}
      groups:
        - system:bootstrappers
        - system:nodes
  mapUsers: |
    - userarn: <arn:aws:iam::111122223333:user/admin>
      username: <admin>
      groups:
        - <system:masters>

 

다시 kubectl 명령어를 사용하면 잘 나오는 것을 볼 수 있다.

$ kubectl get pods
 NAME              READY   STATUS    RESTARTS      AGE
 deployment-admin  1/1     Running   2 (22h ago)   19d
728x90
반응형
Comments