제6장. 인증 , 권한 부여및 접근 제어
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
API 서버 는 쿠버네티스 클러스터의 관문입니다. 모든 인간 사용자, 클라이언트(예: kubectl), 클러스터 구성 요소 또는 서비스 계정은 HTTPS를 통해 RESTful API 호출 을 수행하여 API 서버에 접근합니다. 이는 Pod 생성이나 Service 삭제와 같은 작업을 수행하는 중심점입니다.
이 장에서는 API 서버와 관련된 보안 특화 측면에 집중합니다. API 서버의 내부 작동 방식 및 쿠버네티스 API 사용에 대한 자세한 내용은 Managing 쿠버네티스 (Brendan Burns, Craig Tracey 저, O’Reilly, 2018)를 참조하십시오.
API 요청 처리
그림 6-1은 API 서버에 호출이 이루어질 때 요청이 거치는 단계를 보여줍니다. 참고로, 자세한 내용은 쿠버네티스 문서에서 확인할 수 있습니다.
요청 처리의 첫 번째 단계는 인증입니다. 인증 은 클라이언트 인증서나 베어러 토큰을 검사하여 호출자의 신원을 검증합니다. 베어러 토큰 이 서비스 계정과 연관된 경우, 여기서 검증됩니다.
그림 6-1. API 서버 요청 처리
두 번째 단계에서는 첫 번째 단계에서 제공된 신원이 요청된 Verb 및 HTTP 경로에 접근할 수 있는지 판단합니다. 따라서 두 번째 단계는 요청의 권한 부여 ()를 처리하며, 이는 표준 쿠버네티스 RBAC 모델()로 구현됩니다. 여기서 서비스 계정이 요청된 경우 Pod 목록을 조회하거나 새 Service 객체를 생성할 수 있도록 허용되는지 확인합니다.
요청 처리의 세 번째 단계는 승인 제어(Admission Control)를 다룹니다. 승인 제어 는 요청이 올바르게 구성되었는지, 또는 처리 전에 수정해야 할 가능성이 있는지 확인합니다. 예를 들어, 승인 제어 정책은 Pod 생성 요청에 특정 라벨 정의가 포함되었는지 확인할 수 있습니다. 요청에 라벨이 정의되지 않은 경우 요청은 거부됩니다.
kubectl을 통한 인증
개발자는 kubectl 명령줄 도구를 실행하여 쿠버네티스 API와 상호작용합니다. kubectl로 명령을 실행할 때마다 API 서버에 대한 기본 HTTPS 호출은 인증이 필요합니다.
Kubeconfig
kubectl 사용을 위한 자격 증명은 $HOME/.kube/config 파일( kubeconfig 파일이라고도 함 )에 저장됩니다. kubeconfig 파일 은 상호 작용하려는 클러스터의 API 서버 엔드포인트와 클라이언트 인증서 형태의 자격 증명을 포함하여 클러스터에 등록된 사용자 목록을 정의합니다. ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access