woonizzooni

EKS 클러스터 인증 관리 본문

AWS

EKS 클러스터 인증 관리

woonizzooni 2020. 3. 30. 00:42

참고글 (계정 연동 부문) : AWS CLI구성

 

클러스터 인증 관리 (Managing Cluster Authentication)

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/managing-auth.html

 

CLI로 EKS 클러스터에 pod생성 등을 하기 위해 인증 환경을 구성한다.

(위 그림의 kubectl에 해당),

 

 

 

kubectl 설치 : "EKS-vended kubectl binaries for macOS"

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/install-kubectl.html

$ curl -o kubectl https://amazon-eks.s3-us-west-2.amazonaws.com/1.14.6/2019-08-22/bin/darwin/amd64/kubectl

 ..

$ chmod 755 ./kubectl

$ ./kubectl version --short --client
  Client Version: v1.14.7-eks-1861c5

 

 

aws-iam-authenticator 설치

- AWS계정으로 EKS 이용을 위해 인증 툴 설치

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/install-aws-iam-authenticator.html

$ brew install aws-iam-authenticator
  Updating Homebrew...
  ==> Auto-updated Homebrew!
  Updated 5 taps (golangci/tap, homebrew/cask-versions, homebrew/core, homebrew/cask and homebrew/cask-fonts).
  ==> New Formulae
  ...
  Removing: /Users/myname/Library/Logs/Homebrew/lzo... (64B)
  Pruned 3 symbolic links from /usr/local

 

2021/05/24 업데이트 : Windows10사용자의 경우 kubectl & aws-iam-authenticator설치 (windows10) 참고.

 

 

Amazon EKS에 대한 kubeconfig 생성 (Create a kubeconfig for Amazon EKS)

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/create-kubeconfig.html

$ aws eks --region 내region update-kubeconfig --name cc
  An error occurred (AccessDeniedException) when calling the DescribeCluster operation:
    User: xx is not authorized to perform: eks:DescribeCluster on resource:
    arn:aws:eks:region:xx:cluster/cc
  --> aws iam계정권한에 eks:DescribeCluster IAM 권한이 부여되지 않았을 경우 
  
$ aws eks --region 내region update-kubeconfig --name aa
  Added new context arn:aws:eks:region:xx:cluster/aa to /Users/myname/.kube/config

$ aws eks --region ap-northeast-2 update-kubeconfig --name bb
  Added new context arn:aws:eks:region:xx:cluster/bb to /Users/myname/.kube/config
 

 

 

config 편집 : aws-iam-authenticator 연동

~/.kube/config 를 vim편집기 등을 이용해서 열고,

추가된 users.name별로 (위예시로는 aa, bb 2개 추가되어 있을 것임),

  1) command를 aws에서 aws-iam-authenticator로,

  2) args를 (위예시로는 aa, bb 2개 추가되어 있을 것임) 아래와 같이 수정

원본 이렇게
       - --region
       - ****
       - eks
       - get-token
       - --cluster-name
       - aa
      - token
      - -i
      - aa
      - -r
      - arn:aws:iam::xx:role/EKSReadOnlyRole

 

연동 상태 확인 (인증 및 접근)

$ kubectl config get-contexts
  CURRENT  NAME                                CLUSTER AUTHINFO NAMESPACE
           arn:aws:eks:내region:**:cluster/aa   **      **
  *        arn:aws:eks:내region:**:cluster/bb
           docker-desktop
           docker-for-desktop

$ kubectl get po --all-namespaces
  NAMESPACE      NAME       READY   STATUS    RESTARTS   AGE
  kube-system    **         1/1     Running   0          3d6h
  kube-system    ....

 

Comments