카테고리 없음

📌 kind: ServiceAccount란?

idea9329 2025. 4. 9. 14:35
반응형

 

apiVersion: v1
kind: ServiceAccount
metadata:
  name: my-service-account
  namespace: default

이건 ServiceAccount 객체를 생성하겠다는 선언이야.
Pod가 이 계정을 통해 Kubernetes API 또는 다른 리소스에 접근할 수 있게 돼.


🔑 왜 필요할까?

기본적으로 Kubernetes는:

  • 사람 kubectl + 인증서/토큰으로 인증
  • Pod(앱) ServiceAccount를 통해 인증

즉, 앱이 클러스터 내 리소스에 접근할 때 사용하는 계정이 바로 이거야.


🧩 어디에 쓰일까?

1. Pod가 API Server에 접근할 때

apiVersion: v1
kind: Pod
metadata:
  name: my-app
spec:
  serviceAccountName: my-service-account

위처럼 설정하면, Pod 내부에서 API를 호출할 때 이 계정의 권한을 사용하게 돼.


2. IAM 연동 (EKS에서 많이 씀)

EKS에서는 IAM Role과 ServiceAccount를 연결해서
Pod가 AWS 리소스(S3, DynamoDB 등)에 직접 접근할 수 있어.

eks.amazonaws.com/role-arn: arn:aws:iam::111122223333:role/MyAppRole

👉 이 어노테이션을 붙이면, 해당 SA는 그 IAM 역할을 사용할 수 있어!


✅ 요약

항목설명

종류 kind: ServiceAccount
역할 Pod가 API 서버나 AWS 리소스 접근 시 사용하는 ID
기본 default SA가 자동으로 있음
EKS 활용 IAM Role 연결해서 AWS 리소스 접근 가능



반응형