EKS ERROR couldn't get current server API group list: the server has asked for the client to provide credentials

2024. 3. 11. 22:40·트러블슈팅

 

 

AWS EKS Cluster를 생성 후 node를 확인하기 위해 node를 확인하는 명령어(kubectl get nodes)를 입력했는데 아래 에러가 발생했다.

 

대충 에러 로그가 의미하는 바는 현재 권한이 없는 게 문제인 것 같은데, eks 사용하기 위해 별도의 IAM을 만들어 eks 관련 역할을 부여해 주었는데도 위와 같은 에러가 발생해 꽤나 삽질을 하느라 시간을 소비했다.

 

에러를 해결하기 위해 시도했던 과정들을 나열을 해보자.

 

1. 로컬의 kubectl 설정 업데이트

aws eks update-kubeconfig --region <region> --name <cluster_name>

 

 

위 명령어로 현재 로컬의 kubectl 설정(kubeconfig 파일)을 업데이트하여 EKS cluster에 접근이 가능하도록 했다.

Updated context arn:aws:eks:ap-northeast-2:123456789:cluster/playground-eks in /Users/seungjun/.kube/config

 

업데이트가 잘 되었다는 로그를 확인했지만 여전히 에러는 발생하고 있었다.

 

2. 현재 사용 중인 context 확인

현재 로컬에서 eks cluster가 여러 개 관리하고 있기 때문에 현재 내가 접속하려는 cluster를 사용 중인지 아래 명령어를 통해 현재 context를 확인했다.

kubectl config current-context

 

arn:aws:eks:ap-northeast-2:123456789:cluster/playground-eks

현재 사용 중인 cluster의 context도 내가 사용하려는 playground-eks로 정상적으로 사용 중이었다.

 

3. AWS 인증 정보 확인

AWS EKS를 사용하고 있기 때문에 AWS CLI를 통해 cluster에 접근하게 되는데, 아래 명령어를 통해 현재 AWS CLI 세션의 인증 정보를 확인했다.

aws sts get-caller-identity

 

 

위 명령어를 입력하고 정보를 확인하고 나서부터 해결의 실마리가 조금씩 보이기 시작했다.

{
    "UserId": "abcd",
    "Account": "123456789",
    "Arn": "arn:aws:iam::123456789:user/playground-dev"
}

 

확인한 정보로는 현재 AWS 계정 ID, IAM, ARN 정보를 얻을 수 있는데 위에서 확인한 IAM(playground-dev)에 EKS 관련 역할이 없었기에, 역할을 부여해 주고 다시 cluster에 접근을 시도했지만 여전히 권한이 필요하다는 에러가 발생했다.

 

이후 AWS EKS Cluster의 페이지를 확인해 보니 IAM 액세스 항목이라는 블록이 존재했다.

이 블록에는 현재 root IAM만 추가된 상태였다. 이게 문제였었다.

해당 cluster에 access 할 수 있는 IAM은 root iam이었고 현재 로컬에 인증된 AWS IAM은 이전에 eks를 사용하기 위해 생성했던 IAM이였다.

 

 

그래서 현재 IAM을 access 할 수 있도록 access 항목에 AmazonEKSAdmin 관련 정책과 함께 추가해 주었더니 정상정으로 cluster의 node를 확인할 수 있었다.

 

'트러블슈팅' 카테고리의 다른 글

Confluent Schema Reference 관련 문제  (0) 2024.07.24
[E-commerce] 동시성 문제 해결하기 (비관적 락, 네임드 락, 분산 락)  (0) 2024.05.01
[E-commerce] 주문 결제를 이벤트 기반 아키텍처로 구축하기  (0) 2024.04.16
[E-commerce] Facade Pattern을 사용하여 시스템 응집도와 재사용성을 어떻게 개선할 수 있을까?  (0) 2024.04.11
서비스 확장성과 유지보수성을 높이는 레거시 코드 리팩터링 과정  (0) 2023.11.17
'트러블슈팅' 카테고리의 다른 글
  • [E-commerce] 동시성 문제 해결하기 (비관적 락, 네임드 락, 분산 락)
  • [E-commerce] 주문 결제를 이벤트 기반 아키텍처로 구축하기
  • [E-commerce] Facade Pattern을 사용하여 시스템 응집도와 재사용성을 어떻게 개선할 수 있을까?
  • 서비스 확장성과 유지보수성을 높이는 레거시 코드 리팩터링 과정
seungjjun
seungjjun
  • seungjjun
    개발이야기
    seungjjun
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 성장이야기
        • TIL
        • 주간회고
      • Java
        • Spring
        • Spring Security
      • 트러블슈팅
      • Kafka
      • OS
      • Network
      • 메가테라
      • Database
      • Algorithm
      • Git
      • HTML
      • CSS
      • 독서
      • 컴퓨터 이해하기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    항해99
    redis
    메가테라
    이커머스 프로젝트
    graphQL
    항해플러스
    메가테라 주간회고
    Til
    주간회고
    개발일지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
seungjjun
EKS ERROR couldn't get current server API group list: the server has asked for the client to provide credentials
상단으로

티스토리툴바