티스토리 뷰

cka

kubernetes [CKA] - role/role binding 설정

타올이 2023. 6. 8. 09:40
반응형

# role/role binding 설정 방법은 2개 

 - user, serviceAcccount

 

문제 2 애플리케이션 운영중 특정 namespace의 pod들을 모니터할 수 있는 서비스가 요청됨, 

api-access 네임스페이스의 모든 pod를 view할 수 있도록 다음 작업을 진행함

 - api-access라는 새로운 namespace에 pod-veiwer라는 이름의 service account 를 만듬

 - podreader-role이라는 이름의 role과 podreader-rolebinding이라는 이름의 rolebinding을 만듬

 - 앞서 생성한 serviceAccount를 api resource에 대해 watch, list, get을 허용하도록 매핑

 

문제 풀이

1. namespace 생성

# 생성 전 api-access가 있는지 확인
kubectl get namespace api-access

# 생성
kubectl create namespace api-access

# service accout 생성
kubectl create serviceaccount pod-viewer --namespace api-access

# 확인
kubectl get serviceaccounts --namespace=api-access

# 결과
NAME        SECRETS      AGE
default     1            51s
pod-viewer  1            20s

2. role 생성

https://kubernetes.io/docs/reference/access-authn-authz/rbac/#role-and-clusterrole

 

Using RBAC Authorization

Role-based access control (RBAC) is a method of regulating access to computer or network resources based on the roles of individual users within your organization. RBAC authorization uses the rbac.authorization.k8s.io API group to drive authorization decis

kubernetes.io

2-1. yaml 을 이용해서 만드는 방법

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""] # "" indicates the core API group
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
# role 생성
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: api-access
  name: podreader-role
rules:
- apiGroups: [""] 
  resources: ["pods"]
  verbs: ["get", "watch", "list"]

2-2 커멘드를 이용해서 만든방법 -- 이게 더 쉬움

# kubectl create role pod-reader --verb=get --verb=list --verb=watch --resource=pods
kubectl create role podreader-api --verb=get --verb=list --verb=watch --resource=pods --namespace api-access

# 결과 확인
kubectl get role --namespace=api-access

# 자세히 확인
kubectl describe role --namespace=api-access podreader-role

3. rolebinding 생성

# kubectl create rolebinding myapp-view-binding --clusterrole=view --serviceaccount=acme:myapp --namespace=acme
kubectl create rolebinding podreader-rolebinding --role=podreader-role --serviceaccount=api-access:pod-viewer --namespace=api-access

# 학인
kubectl get rolebindings --namespace=api-access

# 자세히 확인
kubectl descibe rolebinding podreader-rolebinding --namespace=api-access
반응형

'cka' 카테고리의 다른 글

kubernetes [CKA] - CSR  (0) 2023.06.10
kubernetes [CKA] - clusterRole 생성  (0) 2023.06.09
kubernetes [CKA] - rbac 인증  (0) 2023.06.07
kubernetes [CKA] - kubernetes update  (0) 2023.06.06
kubernetes [CKA] - ETCD Backup & Restore  (0) 2023.06.05
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
링크
글 보관함