holssi 님의 블로그
[CKA] 기출문제 ClusterRole, ClusterRoleBinding (3) 본문
작업 클러스터는 k8s이고, CSR(Certificate Signing Request)를 통해 app-manager 인증서를 발급받은 user app-manager에게 cluster내 모든 네임스페이스의 deployment, pod, service 리소스를 create, list, get, update, delete 할 수 있는 권한 할당하기
- user name: app-manager
- certificate name: app-manager
- clusterRole name: app-access
- clusterRoleBinding name: app-access-binding
0. 컨텍스트 전환
kubectl config use-context k8s
ssh k8s-master
1. app-manager 이름의 인증서 생성
app-manager라는 사용자를 식별할 개인키와 인증서 요청서(CSR)를 만듬
openssl genrsa -out app-manager.key 2048
openssl req -new -key app-manager.key -out app-manager.csr -subj "/CN=app-manager"
request의 내용에 발급받은 키의 내용을 입력해야해서, 아래 명령어로 확인 후 EOF에 붙어 넣는다
cat app-manager.csr | base64 | tr -d "\n"
cat <<EOF | kubectl apply -f -
apiVersion: certificates.k8s.io/v1
kind: CertificateSigningRequest
metadata:
name: app-manager
spec:
request:
signerName:
usages:
- client auth
EOF
usages는 이 인증서를 어디에 어떤 용도로 쓸 것인가를 정의하는 것이다
생성된 csr이 승인되도록 한다
kubectl certificate approve app-manager
.crt 파일로 csr을 추출한다
kubectl get csr app-manager -o jsonpath='{.status.certificate}' | base64 -d > app-manager.crt
2. app-manager라는 이름의 user 생성
자격 증명을 생성하고 config 정보를 본다
kubectl config set-credentials app-manager --client-key=app-manager.key --client-certficate=app-manager.crt --embed-certs=true
context를 등록하고 config 정보를 본다
kubectl config set-context app-manager --cluster=kubernetes --user=app-manager
kubect config use-context app-manager
3. app-access라는 이름의 clusterrole 생성
kubectl create clusterrole app-acceess --verb=create,list,get,update,delete --resource=deployment,pod,service
4. app-access-binding이라는 이름의 clusterrolebinding 생성
kubectl create clusterrolebinding app-access-binding --clusterrole=app-access --user=app-manager
'CKA' 카테고리의 다른 글
| [CKA] 기출문제 pod 로그 추출 (0) | 2026.01.14 |
|---|---|
| [CKA] 기출문제 ETCD (3) (0) | 2026.01.14 |
| [CKA] ClusterRole, ClusterRoleBinding 문제 (2) (0) | 2026.01.14 |
| [CKA] ClusterRole, ClusterRoleBinding 문제 (1) (0) | 2026.01.14 |
| [CKA] cka 자격증 도전기 (0) | 2025.12.22 |