이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

Kubernetes/Kubernetes 보안

Kubernetes 인증 ( Basic Authentication )

이쿠우우 2020. 8. 23. 15:07
반응형

Kubernetes Basic Authentication 

 


Kubernetes 인증 관련 글 이동 

1. Kubernetes 인증 ( Authentication ) 이론
2. Kubernetes 인증 ( Basic Authentication )
3. Kubernetes 인증 ( TLS )
4. Kubernetes 인증 ( Bearer Token )
5. Kubernetes 인증 ( Webhook )
6. Kubernetes 인증 ( Webhook 외부 인증 연동 )
7. Kubernetes 인증 ( Webhook 외부 인증 LDAP )
8. Kubernetes 인증 ( Proxy )




 

 

 

참고) 실습환경

 

[Master Node server]

OS = CentOS 7

리눅스 커널 버전 : Linux 3.10.0-1062.el7.x86_64

docker version : 1.13.1

docker api verison : 1.26

 

[Worker Node server]

OS = CentOS 7

리눅스 커널 버전 : Linux 3.10.0-1062.el7.x86_64

docker version : 1.13.1

docker api verison : 1.26

 

[Kubernetes version]

1.18

 

 

 


 

 

1. 계정 정보를 가지고 있는 파일 생성

(Kubernetes Master Node에서 작업)

 

계정 저장 파일 생성

예) iksoon-auth

참고) 예제 위치는 참고용일 뿐 고정 위치가 아님

2개의 계정을 만듬

계정 형식 : password,user,uid,"group1,group2,group3"

 

1.

  • ID : iksoon
  • PW : qwer1234

 

2.

  • ID : test
  • PW : qwer1234

 

 

 

2. kube-apiserver 설정 변경 작업

(Kubernetes Master Node에서 작업)

 

kube-apiserver.yaml 에 설정 추가

해당 파일 경로 (default의 경우) : /etc/kubernetes/manifests

 

[ kube-apiserver.yaml 에 설정 추가 ]

--basic-auth-file=/etc/kubernetes/pki/iksoon-auth

 

[ 설정 적용 ]

명령어 : kubectl apply -f kube-apiserver.yaml

 

[ 생성 확인 ]

명령어 : kubectl get all -n kube-system

 

주의)

2개의 kube-apiserver 가 생성되어버림

기존의 kube-apiserver-kube.master.node 와 충돌

문제 해결을 위해  kube-apiserver를 삭제

 

[ 삭제 후 정상 동작 확인 ]

 

[ 설정 추가 확인 ]

명령어 : kubectl describe pod/kube-apiserver-kube.master.node -n kube-system

 

 

3. 접근 확인

(Kubernetes Master Node에서 작업)

 

계정으로 정상 접근되는지 확인

 

결과 : 정상        

iksoon, test 계정으로는 접근되고 그 외는 접근이 안됨

 

 

4. 접근 확인

(Kubernetes Client Node에서 작업)

 

client에서 kubeconfig 파일로 정상 접근 확인

kubeconfig 설정 파일에 username: , password: 설정 추가

결과 : 정상

이외에도

kubectl get pod --username iksoon --password qwer1234

와 같은 방식도 가능함

 

참고) 

iksoon-auth와 같은 계정 정보를 저장하고 있는 파일 정보가 갱신될 시

kube-apiserver.yaml을 다시 적용해줘야 함

 

 

 

 

 


제 글을 복사할 시 출처를 명시해주세요.
글에 오타, 오류가 있다면 댓글로 알려주세요! 바로 수정하겠습니다!


 

 

 

참고

kubeconfig 파일 참고

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#config

https://codefarm.me/2019/02/01/access-kubernetes-api-with-client-certificates/

 

Basic 인증 참고

https://coffeewhale.com/kubernetes/authentication/x509/2020/05/02/auth01/

 

kubernetes api service 인증 관련

https://kubernetes.io/ko/docs/setup/best-practices/certificates/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형