본문 바로가기

⌛ AWS 인프라 구성하기 (MiniProject)/✅ 장애내용 및 해결방안

error: You must be logged in to the server (Unauthorized) 오류 발생시 해결 방안

# EKS 자동 빌드를 위해 Codebuild를 통해 배포하다가 error: You must be logged in to the server (Unauthorized) 해당 오류가 계속 발생 하여 해결 방안에 대해 정리한다.

1. 첫번째로, IAM 권한을 확인해야 한다. 아래와 같은 리스트 형태로 IAM 권한을 지정한다.

- 초록색 테투리안에 있는 권한이 필수 권한이라고 볼 수 있다.

2. 권한 설정을 완료해도 만약 오류가 지속적으로 발생한다면, aws-auth.yaml 파일을 확인해 봐야한다.

kubectl get configmaps aws-auth -n kube-system -o yaml > aws-auth.yaml

위의 명령어를 확인하여 정상적으로 적용이 되어 있는지 확인해야 한다.

apiVersion: v1                                                                                                                                    
data:                                                                                                                                             
  mapRoles: |                                                                                                                                     
    - groups:                                                                                                                                     
      - system:bootstrappers                                                                                                                      
      - system:nodes                                                                                                                              
      rolearn: arn:aws:iam::123456789011:role/EKS-Role                                                                          
      username: system:node:{{EC2PrivateDNSName}}                                                                                                 
    - groups:                                                                                                                                     
      - system:masters                                                                                                                            
      rolearn: arn:aws:iam::123456789011:role/codebuild-role                                                          
      username: codebuild-dev-service-role                                                                                        kind: ConfigMap                                                                                                                                   
metadata:                                                                                                                                         
  annotations:

3. 위의 설정까지 정상적으로 했는데... 오류가 발생한다면, 보안자격증명을 buildspec.yaml 파일에 설정해 줘야 한다.

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 14
  pre_build:
    commands:
      # Security credentials
      - echo Security Credentials Configuration
      - export AWS_ACCESS_KEY_ID="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
      - export AWS_SECRET_ACCESS_KEY="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
      # ----------------------------------------------------------------------------------------------------------------
      # EKS kubectl Install Start...
      - echo kubectl Install Start...
      - curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.23.6/bin/linux/amd64/kubectl
      - chmod +x ./kubectl
      - mv ./kubectl /usr/local/bin/kubectl
      - mkdir ~/.kube

- error: You must be logged in to the server (Unauthorized) 해당 오류가 발생 했을때 위의 과정을 수행하면 거의 해결이 된다.

https://aws.amazon.com/ko/premiumsupport/knowledge-center/codebuild-eks-unauthorized-errors/

 

Amazon EKS에 연결할 때 CodeBuild 권한 없음 오류 해결

CodeBuild 서비스 역할을 사용하여 AWS CodeBuild에서 Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터에 연결하려고 합니다. kubectl 명령이 ‘error: You must be logged in to the server (Unauthorized)’ 오류를 반환하는

aws.amazon.com

- 끝 -