전체 글 썸네일형 리스트형 [K8S] Image Security Image Security 민감한 인증 정보를 안전하게 관리하면서 필요한 이미지를 적절하게 가져올 수 있는 방법이 있다.Google의 Registry : gcr.io/ 만약 내부에서만 사용되어야 하는 image라면 Internal Registry를 만들어서 사용하면 되며, GCP, AWS 등의 CSP들은 기본적으로 private registry를 제공한다. 이러한 Private Registry에서 이미지를 가져오려면 인증 정보가 필요한데, 인증 정보는 Secret을 통해 관리할 수 있다. ( Secret은 docker-registry 타입을 사용하여 생성된다.) Secret은 프라이빗 컨테이너 이미지 레지스트리에 접근하기 위한 인증 정보를 안전하게 저장하고 사용할 수 있게 해준다. Secret을 사.. 더보기 [K8S] Service Account(SA) Service Account는 클러스터 내에서 애플리케이션이 실행될 때 사용되는 특별한 종류의 계정이다. 일반 사용자 계정과 달리, 서비스 계정은 사람을 위한 것이 아니라 애플리케이션이나 서비스를 위한 것이다. 이 계정은 Kubernetes API 서버와 상호 작용할 때 인증에 사용된다. 기본 제공: Kubernetes는 각 네임스페이스에 기본 서비스 계정을 자동으로 생성한다. 이 기본 서비스 계정은 default라는 이름을 가지며, 네임스페이스 내에서 실행되는 모든 파드는 기본적으로 이 계정을 사용한다.인증: 서비스 계정은 토큰을 사용하여 Kubernetes API에 인증합니다. 이 토큰은 파드 내의 파일 시스템에 자동으로 마운트되며, 애플리케이션은 이를 사용하여 API 요청을 인증할 수 있다.권한: .. 더보기 [K8S] ClusterRole/ClusterRoleBinding ClusterRole이란, 쿠버네티스 리소스에 대한 권한을 정의하는 역할이다.네임스페이스와 관계없이 클러스터 전역에서 작동하거나, 특정 네임스페이스의 리소스에 대해 권한을 정의할 수 있다.리소스, API 그룹, 허용된 작업(verbs) 지정필요한 최소한의 권한만을 부여해야하며, 클러스터 전역 권한이 필요하지 않으면 Role과 RoleBinding을 사용한다.정의apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata: name: pod-readerrules:- apiGroups: [""] resources: ["pods"] verbs: ["get", "watch", "list"]ClusterRoleBinding이란, 정의된 ClusterR.. 더보기 [K8S] api-resources kubectl api-resources는 쿠버네티스 클러스터에서 지원하는 API 리소스 목록을 확인하는 명령어 $ kubectl api-resourcesNAME SHORTNAMES APIGROUP NAMESPACED KINDbindings true Bindingcomponentstatuses cs .. 더보기 [K8S] Authorization 쿠버네티스의 Authorization Mode는 클라이언트의 요청이 허가(Authorization)되는 방식을 결정한다.클라이언트(사용자 또는 서비스)가 Kubernetes API 서버로 요청을 보낼 때, 요청이 허용되거나 거부되는 과정을 제어한다.kube-apiserver의 `--authorization-config` 옵션을 통해서 설정할 수 있으며, 따로 지정하지 안으면 'AlwaysAllow'로 설정되고 하나 이상의 모드를 조합하여 사용할 수 있다. $ controlplane ~ ➜ ps -aux | grep authorizationroot 3212 0.0 0.3 1521124 262820 ? Ssl 08:08 0:31 kube-apiserver --advertise.. 더보기 [K8S] Certificates API Certificates(인증서)인증서는 Kubernetes 클러스터 내 구성 요소(예: kube-apiserver, kubelet, etcd) 간의 TLS 통신을 암호화하고 인증하는 데 사용된다. 각 구성 요소는 인증서를 통해 서로의 신원을 확인하고, 안전하게 통신할 수 있다. 클라이언트 인증서:클라이언트(예: kubectl)가 API 서버에 접근할 때 자신의 신원 증명kubectl은 --client-certificate와 --client-key 옵션을 사용해 인증서를 지정서버 인증서:서버(API 서버, kubelet, etcd)가 클라이언트에게 자신의 신원 증명서버는 TLS 연결을 암호화하고, CA 인증서를 사용해 신뢰 보장CA(Certificate Authority) 인증서:인증서를 발급하고, 클라이.. 더보기 [K8S] TLS 인증된 보안?Password 기반의 authenticationSSH Key 기반의 authentication 등Scheduler, kube-apiserver, kubelet, kube-proxy, etcd 통신 등 클라이언트 간 통신 보안을 위해 TLS 사용구성요소 간 통신 사용자 인증 : 클라이언트(kubectl, dashboard)는 TLS 인증서를 사용해 API에 접근Pod간 통신 보안Ingress Controller 및 외부 클라이언트의 접근시 TLS를 사용해 안전한 HTTPS 연결 제공 TLS 인터넷 통신 보안을 위한 표준 프로토콜로, 데이터를 암호화하여 네트워크 상에서 안전하게 전송되도록 보장한다.TLS는 이전 버전인 SSL(Secure Sockets Layer)을 대체하며, 현재 대부분의 보.. 더보기 [K8S] Encrypting Secret Data at Rest 참고 문서 : Encrypting Secret Data at Rest Encrypting Confidential Data at RestAll of the APIs in Kubernetes that let you write persistent API resource data support at-rest encryption. For example, you can enable at-rest encryption for Secrets. This at-rest encryption is additional to any system-level encryption for the etcd clusterkubernetes.io root@master:~# kubectl create secret generic my-secret.. 더보기 이전 1 2 3 4 ··· 11 다음