[클러스터 유지와 보안 트러블 슈팅] 스태틱토큰과 서비스어카운트

hi·2023년 9월 2일
0

쿠버네티스

목록 보기
60/60

어카운트의 두 가지 타입

  • 유저: 일반 사용자 (개발자 또는 데브옵스 엔지니어)를 위한 계정
  • 서비스어카운트: 애플리케이션(파드 등)을 위한 계정



Static Token File

  • Apiserver 서비스를 실행할 때 --token-auth-file=SOMEFILE.csv 전달 (kube-apiserver 수정 필요)
  • API 서버를 다시 시작해야 적용됨
  • 토큰, 사용자 이름, 사용자 uid, 선택적으로 그룹 이름 다음에 최소 3열의 csv 파일

SOMEFILE.csv 내용

password1,user1,uid001,"group1"
password2,user2,uid002
password3,user3,uid003
password4,user4,uid004



Static Token File 을 적용했을 때 사용 방법

  • HTTP 요청을 진행할 때 아래와 같은 내용을 헤더에 포함해야 함.
  • Authorization: Bearer 31ada4fd-adec-460c-809a-9e56ceb75269
$ TOKEN=password1
$ APISERVER=https://127.0.0.1:6443
$ curl -X GET $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure

  • Kubectl에 등록하고 사용하는 방법
$ kubectl config set-credentials user1 --token=password1
$ kubectl config set-context user1-context --cluster=kubernetes --namespace=frontend --user=user1
$ kubectl get pod --user user1 



서비스 어카운트 만들기


  • 포드에 별도의 설정을 주지 않으면 기본 service account가 생성되어 있음
C:\Users\ur2ku>kubectl get sa
NAME      SECRETS   AGE
default   0         42d

C:\Users\ur2ku>kubectl get sa default -o yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  creationTimestamp: "2023-07-21T09:08:56Z"
  name: default
  namespace: default
  resourceVersion: "228"
  uid: 4ee4d89c-8a0c-4321-8f74-588c1917a5dd

  • 명령어를 사용하여 serviceaccount sa1을 생성
C:\Users\ur2ku>kubectl create serviceaccount sa1
serviceaccount/sa1 created

C:\Users\ur2ku>kubectl get sa
NAME      SECRETS   AGE
default   0         42d
sa1       0         7s

C:\Users\ur2ku>kubectl get sa sa1 -o yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  creationTimestamp: "2023-09-02T09:02:51Z"
  name: sa1
  namespace: default
  resourceVersion: "30164136"
  uid: f3b9cd4e-7c5f-4319-8560-ca4977c37120

  • Pod에 sepec.serviceAccount: service-account-name과 같은 형식으로 지정

0개의 댓글