728x90
Kubernetes 권한관리는 기본적으로 RBAC로 Service Account에 따라서 정보노출이 다르다.
Kubernetes 엔진 버전이 올라갈 수록 과거에 쉽게 접근하였던 cluster-admin 권한이 수동적으로 바뀌는것 같다.
따라서 cluster admin 권한의 계정을 만들고 이것으로 kubernetes-dashboard를 들어가자
우선 ServiceAccount, ClusterRoleBinding, Secret 리소스를 만들자
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
secrets:
- name: admin-user-secret
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system
---
apiVersion: v1
kind: Secret
metadata:
name: admin-user-secret
namespace: kube-system
annotations:
kubernetes.io/service-account.name: admin-user
type: kubernetes.io/service-account-token
이렇게 만들면 Service Account에 Cluster admin Role이 매핑되고 Secret이 붙는다.
해당 Secret이 잘붙었는지 확인한다.
$ kubectl get sa admin-user -n kube-system
그리고 해당 Secret의 Token을 복사해둔다.
$ kubectl describe secrets admin-user-secret -n kube-system
복사한 Secret으로 config파일을 만들어서 이 파일로 Kubernetes-Dashboard를 로그인하자
파일 내용 :
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTXXXXXXXXXX
server: https://127.0.0.1:6443
name: admin-user@cluster.local
contexts:
- context:
cluster: cluster.local
user: admin-user
kind: Config
preferences: {}
users:
- name: admin-user
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
token: eyJhbGciOiJSUXXXXXXXXXXXXXXXXXXX
'PaaS > Kubernetes' 카테고리의 다른 글
Kubernetes "Container runtime network not ready" 오류 발생시 (0) | 2023.11.01 |
---|---|
Docker Client가 http(https가 아닌) Registry를 접근할때 (0) | 2023.02.25 |
Kubespray로 Kubernetes 설치하기 (CentOS7) (0) | 2022.12.14 |
(네이버클라우드 세션) 쿠버네티스 보안 세미나 요약 (0) | 2022.08.28 |
Cloud에서 k8s istio 상세설명+네트워크 흐름+Service Discovery (0) | 2022.07.11 |