1. 에러 로그
"intern-shared-secrets-3ea9052-" is forbidden :
error looking up service account gitlab/intern-shared-secrets :
serviceaccount "intern-shared-secrets" not found
- gitlab이라는 네임스페이스에서 intern-shared-secrets 라는 ServiceAccount 를 찾을 수 없다는 로그
- 파드를 생성할 때 각 파드에게 ServiceAccount를 부여하는데 해당 SA가 없어서 생기는 오류다
2. 해결방법
- 해당 파드가 요구하는 SA를 생성하여 SCC(권한)를 부여해주면 된다
1) Service Account 생성 명렁어
kubectl create serviceaccount intern-shared-secrets -n gitlab
2) SCC 관련 에러 로그
provider "restricted": Forbidden: not usable by user or serviceaccount,
provider "nonroot-v2": Forbidden: not usable by user or serviceaccount,
provider "nonroot": Forbidden: not usable by user or serviceaccount,
provider "hostmount-anyuid": Forbidden: not usable by user or serviceaccount,
provider "machine-api-termination-handler": Forbidden: not usable by user or serviceaccount,
provider "hostnetwork-v2": Forbidden: not usable by user or serviceaccount,
provider "hostnetwork": Forbidden: not usable by user or serviceaccount,
provider "hostaccess": Forbidden: not usable by user or serviceaccount,
provider "node-exporter": Forbidden: not usable by user or serviceaccount,
provider "privileged": Forbidden: not usable by user or serviceaccount]
3) SCC 부여 명령어
oc adm policy add-scc-to-user <SCC_NAME> -z <SERVICE_ACCOUNT_NAME> -n <NAMESPACE>
->
oc adm policy add-scc-to-user restricted -z intern-shared-secrets -n gitlab
3. Service Account란?
- k8s에서 파드가 k8s API 서버와 상호작용할 수 있도록 제공하는 권한 부여 설정
- 각 파드가 필요한 최소한의 권한만 가지도록 보안을 강화하는 목적이 있다
만약 SA에 모든 권한이 부여되어 있다면?
1) Security Context Constraints?
- SCC는 파드와 컨테이너의 실행 환경을 제어하고 제한한다
2) 모든 권한 부여 (Product 환경 비권장)
"intern-shared-secrets-3ea9052-" is forbidden :
error looking up service account gitlab/intern-shared-secrets :
serviceaccount "intern-shared-secrets" not found
모든 권한을 부여하기 때문에 Error Log는 발생하지 않지만 보안 이슈로 비권장한다
'DevOps(kubernetes)' 카테고리의 다른 글
[ArgoCD] Gitlab repo 연동하는 법 (0) | 2024.08.13 |
---|---|
[ArgoCD] k8s cluster와 연동하는법 [배스천 서버 Nodeport] (0) | 2024.08.13 |
[k8s] Helm Chart로 Gitlab 배포하기(On-premise) (1) | 2024.08.08 |
[Linux] k8s에 도움되는 리눅스 명령어 (0) | 2024.08.08 |
[k8s] k8s 디버깅을 위한 kubectl 명령어 (0) | 2024.08.08 |