Deer

[kubernetes]인증과 권한 본문

SW 공부/IaC

[kubernetes]인증과 권한

Deer_0

공식 문서를 참고하기

https://kubernetes.io/docs/reference/access-authn-authz/authentication/ 

 

Authenticating

This page provides an overview of authenticating. Users in Kubernetes All Kubernetes clusters have two categories of users: service accounts managed by Kubernetes, and normal users. It is assumed that a cluster-independent service manages normal users in t

kubernetes.io

 

 

kubectl 명령어로 kube-apiserver를 요청할 때의 인증: ~/.kube/config 파일 정보를 사용.

 

(명령어 예시)

$ sudo cp /etc/kubernetes/admin.conf .kube/config
$ sudo chmod $USER:$GROUP .kube/config

cat .kube/config 로 파일 내용 확인하기

$ cat .kube/config
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1<중략>JSU0ZTbVlzNFZIbcHlsMGVwvU0N0az0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
    server: https://192.168.56.11:6443
  name: cluster.local
contexts:
- context:
    cluster: cluster.local
    user: kubernetes-admin
  name: kubernetes-admin@cluster.local
current-context: kubernetes-admin@cluster.local
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: LS0tLS1CRUdLSTVyRSOEtZRmxhSnlp<중략>WE5FUlZ6TnhlVWowcz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
    client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLVB<중략>ci8KQTFySDBEWUV2WkVzZDJ3aTRLTjZLNjNJRXVGcHVjWE0v3kdDVDNHhwaWVaWVAvU1nhKWEdzZ01GCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==

clusters:

    클러스터 정보

contexts:

    컨텍스트 정보

current-context:

    쿠버네티스 클러스터와 사용자가 여럿인 경우에서 현재 대상, 즉 현재 작업을 어떤 항목에서 할 것인지 표현해주는 항목

client-certificat-data, client-key-data:

    인증 해시값들

 

$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.56.11:6443
  name: cluster.local
contexts:
- context:
    cluster: cluster.local
    user: kubernetes-admin
  name: kubernetes-admin@cluster.local
current-context: kubernetes-admin@cluster.local
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

작업환경에 따라 분리된 클러스터 환경을 제공하도록 설정할 수 있다.

정의해둔 사용자가 클러스터를 관리할 수 있도록 파일 수정 (컨텍스트 활성화 필요)

 

 

서비스 계정(기본 계정 default) 확인하기

$ kubectl get serviceaccounts
NAME      SECRETS   AGE
default   1         3d19h
$ kubectl get serviceaccounts default -o yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  creationTimestamp: "2021-12-19T06:53:38Z"
  name: default
  namespace: default
  resourceVersion: "401"
  selfLink: /api/v1/namespaces/default/serviceaccounts/default
  uid: 0e836507-abe0-48c2-af93-766c7d381e60
secrets:
- name: default-token-kd9w9

$ kubectl describe serviceaccounts default
Name:                default
Namespace:           default
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   default-token-kd9w9
Tokens:              default-token-kd9w9
Events:              <none>

 

Comments