본문으로 바로가기

[Kubernetes] ServiceAccount 란?

category Kubernetes 용어 2023. 2. 26. 22:48
반응형

ServiceAccount


클러스터 내에서 애플리케이션 또는 파드(Pod)가 쿠버네티스 API 서버와 상호작용할 때 사용되는 인증 정보이다.

 

파드나 애플리케이션이 쿠버네티스에 어떤 작업을 요청할 때, 즉 API 서버에 접근할 때 인증 정보가 필요한데 이때 ServiceAccount가 그 인증 정보를 제공해준다. (인증 정보를 제공하는 역할)

예를 들어, ServiceAccount는 파드가 다른 파드 또는 서비스와 통신할 때 사용할 수 있는 권한을 설정할 수 있으며 이를 통해 보안성을 높일 수 있다.

 

각 ServiceAccount는 고유한 이름과 namespace를 가지며, 클러스터 관리자는 ServiceAccount를 생성하고 관리할 수 있다.
ServiceAccount는 클러스터 레벨과 네임 스페이스 레벨에서 모두 생성될 수 있으며, 하나의 파드는 여러 개의 ServiceAccount를 가질 수 있다.

 

ServiceAccount는 파드와 별개로 쿠버네티스에서 관리되는 리소스이며 파드와는 다른 형태로 생성된다.


ServiceAccount는 쿠버네티스의 API 오브젝트 중 하나이며, 클러스터 내에서 중앙 집중적으로 관리된다. 

따라서 파드와는 별개의 오브젝트로 생성되며, 파드가 ServiceAccount를 사용하기 위해서는 이미 클러스터 내에 해당 ServiceAccount가 존재해야 한다.

 

 

 

꼭 ServiceAccount 를 사용해야 하나?

 

파드와 쿠버네티스 API 서버 간의 인증 정보를 제공하는 방법으로 ServiceAccount가 사용될 수 있지만, 꼭 필요한 것은 아니다.

파드에서 직접 인증 정보를 사용하여 API 서버와 통신할 수도 있다.


하지만 이 경우에는 파드에 직접 인증 정보를 넣어주어야 하므로 보안상 취약점이 발생할 수 있다.
또한, 파드에서 인증 정보를 관리하려면 파드가 삭제되거나 다시 생성될 때마다 인증 정보를 새로 설정해야 하므로 번거로울 수 있다.

반면에, ServiceAccount를 사용하면 파드는 인증 정보를 직접 가지고 있지 않으므로 보안상 안전하다.


또한, ServiceAccount는 클러스터 내에서 중앙 집중적으로 관리되므로 파드가 생성되거나 삭제되더라도 인증 정보를 새로 설정할 필요가 없다.


따라서, 파드에서 API 서버와 안정하게 상호작용하기 위해서는 ServiceAccount를 사용하는 것이 좋다. 

반응형