identity에서 allow·deny audit까지 접근 경계를 검증합니다
RBAC(Role-Based Access Control, 역할 기반 접근 제어): subject에 역할을 연결해 허용할 resource와 동작 범위를 정하는 방식입니다.
authentication은 누구인지, authorization은 무엇을 할 수 있는지 판정합니다. 사람, workload service account, automation과 break-glass identity를 분리해야 credential의 scope·수명·owner를 추적할 수 있습니다.
RBAC 권한은 verb·resource·namespace·resourceName 조합으로 만들어지고 RoleBinding이 subject에 연결합니다. wildcard와 cluster-admin은 새 API가 추가될 때 권한이 예상보다 넓어질 수 있습니다.
최소 권한은 요청 목록을 줄이는 작업이 아니라 실제 업무 task를 allow하고 금지 행동을 deny하는 양방향 시험입니다. auth can-i와 audit log로 확인합니다.
교육 사례에서 log 조회를 위해 cluster-admin을 부여하면 secret 읽기 등 필요 없는 권한도 열립니다. 필요한 동작을 pods/log의 get 권한과 namespace로 좁혀야 합니다. 허용 시험만 통과하면 충분하지 않고 secrets list가 거부되는지도 확인합니다. impersonation 조회를 수행하는 운영자 자신에게도 별도 권한이 필요하므로 시험 실패와 대상 역할의 거부를 구분합니다.
- 왜 이런가
- RBAC 권한은 verb·resource·namespace·resourceName 조합으로 만들어지고 RoleBinding이 subject에 연결합니다. wildcard와 cluster-admin은 새 API가 추가될 때 권한이 예상보다 넓어질 수 있습니다.
- 언제 문제가 되는가
- 공용 credential·wildcard·owner 없음 조건이면 진행 근거가 부족합니다.
- 초보자가 자주 하는 오해
- service account token과 kubeconfig를 ticket·source repository·shell history에 넣지 않습니다. short-lived credential과 secret store를 사용합니다.
- 직접 확인하는 방법
- identity type·owner·purpose·expiry와 issuer를 inventory합니다. 실제 task를 verb/resource/namespace로 분해합니다.