Kubernetes - Accessing API - OverView

현시기얌·2022년 1월 17일
0

Kubernetes

목록 보기
16/23

Access to the Kubernetes API

Authentication

Master Node에 쿠버네티스 API 서버가 있는데 이 API 서버를 통해서만 쿠버네티스의 자원을 조회하거나 만들 수 있다.

kubectl로 쿠버네티스의 자원을 조회할 수 있는 것도 API서버에 접근을해서 정보를 가져오는 것이다.

외부에서 API 서버로 접근하려면 인증서를 가지고 있는 사람만 https로 보안 접근을 할 수 있다.

그런데 만약 내부관리자가 kubectl 명령어로 Proxy를 열여줬다면 인증서없이 http로 API서버에 접근할 수 있다.
그리고 kubectl은 Master 내부에만 설치 할 수 있는 것이 아니고 외부 PC에서도 설치를 해서 사용할 수 있는데 Config 기능을 활용하면

만약 쿠버네티스 Cluster가 여러 대 있을 때 간편한 명령어를 통해서 내가 접근할 수 있는 Cluster의 연결 상태를 유지할 수 있다.
이 연결이 된 상태에서는 kubectl get 명령어로 해당 Cluster에 있는 Pod 정보들을 가져올 수 있다.

이런 접근 방법들은 유저 입장에서 API서버에 접근하는 방법이고 User Account라고 한다.

Pod 입장에서는 API 서버에 마음껏 접근한다면 Pod를 만들기만 한다면 누구나 API서버에 접근 할 수 있기 때문에 보안상 문제가 발생한다.

그래서 쿠버네티스에서는 Service Account라고해서 Pod들이 API 서버로 접근하는 방법을 제공해준다.

쿠버네티스에는 유저들이 API서버에 접근하기 위한 User Account와 Pod들이 API서버에 접근하기 위한 Service Account가 있고 Service Account도 사용방법만 알면 외부에서도 접근 할 수 있다.

Authorization

Namespace로 Pod가 분리되어있는 상태에서 B Namespace에 있는 Pod가 API 서버에 접근할 수 있다고 해서 A Namespace에 있는 Pod를 조회해도 괜찮을까?

이것은 권한 여부에 따라서 가능하게 할 수도 가능하지 못하게 할 수도 있다.
그리고 이런 부분이 Authorizaton 부분이다.

profile
현시깁니다

0개의 댓글