0Pricing
Cyber Security Academy · 강의

공급망과 비밀 정보 보호

이미지와 비밀 정보를 강화합니다.

공급망과 비밀 정보 보호은(는) CoddyKit의 무료 Cyber Security Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cyber Security Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

소프트웨어 공급망

컨테이너 이미지는 기본 이미지, 운영 체제 패키지 및 애플리케이션 종속 요소로 빌드된 다음 레지스트리를 거쳐 클러스터로 푸시됩니다. 각 단계가 침해의 기회가 될 수 있습니다. 공급망 공격은 코드가 운영 환경에 도달하기도 전에 악성 코드를 삽입합니다.

  • 침해된 기본 이미지 또는 종속 요소
  • 레지스트리에서 변조된 이미지
  • 악성 지속적 통합 및 지속적 배포 파이프라인 단계

이미지 취약점

이미지에는 알려진 취약 패키지가 포함되어 배포되는 경우가 많습니다. 스캔을 통해 배포 전에 이러한 패키지를 찾아낼 수 있습니다.

  • 오래된 기본 이미지에는 취약점이 누적됩니다.
  • 불필요하게 큰 이미지는 공격 표면을 넓힙니다.
  • 이미지 계층에 삽입된 보안 정보가 자격 증명을 유출합니다.
# Scan an image for vulnerabilities
trivy image myorg/app:1.4.2

# Scan filesystem and secrets too
trivy image --scanners vuln,secret myorg/app:1.4.2

최소화되고 신뢰할 수 있는 기본 이미지

작고 신뢰할 수 있는 구성에서 시작하여 공격 표면을 줄입니다.

  • distroless 또는 최소 기본 이미지를 사용합니다(셸과 패키지 관리자가 없음).
  • 변경되지 않는 태그가 아니라 다이제스트로 기본 이미지를 고정합니다.
  • 공식 기본 이미지 또는 내부 검증을 거친 기본 이미지를 우선합니다.

이미지가 작을수록 취약점이 줄어들고, 침해 후 공격자가 악용할 도구도 줄어듭니다.

# Pin by digest for immutability
# FROM gcr.io/distroless/static@sha256:<digest>

이미지 서명 및 출처

서명은 이미지가 사용자의 파이프라인에서 생성되었고 변조되지 않았음을 증명합니다. 출처(SLSA)는 이미지가 어떻게 빌드되었는지 기록합니다.

  • 코사인은 이미지에 서명하고 서명을 확인합니다.
  • 모든 구성 요소를 추적할 수 있도록 SBOM을 생성합니다.
  • 빌드 출처 증명을 첨부합니다.
# Sign and verify with cosign
cosign sign myorg/app:1.4.2
cosign verify --key cosign.pub myorg/app:1.4.2

승인 시점 검증

서명되고 스캔된 이미지만 실행되도록 강제합니다. 승인 컨트롤러는 배포 시 서명되지 않았거나 취약한 이미지를 거부합니다.

# Kyverno policy: verify image signatures before admission
kubectl apply -f verify-image-signature.yaml

# Restrict pulls to a trusted registry only
kubectl apply -f allowed-registries.yaml

파이프라인 보안 강화

지속적 통합 및 지속적 배포 시스템 자체가 높은 가치를 지닙니다. 이 시스템에는 자격 증명이 저장되어 있고 운영 환경으로 푸시할 수 있기 때문입니다.

  • 최소 권한과 짧은 수명을 적용하여 파이프라인 자격 증명의 범위를 제한합니다.
  • 타사 지속적 통합 작업과 플러그인을 고정하고 검증합니다.
  • 빌드 실행기를 격리하고, 신뢰 수준이 다른 환경에서 재사용하지 않습니다.
  • 인증과 불변성을 적용하여 레지스트리를 보호합니다.

Kubernetes 보안 정보의 실제

Kubernetes 보안 정보는 기본적으로 암호화되지 않고 base64로 인코딩됩니다. 보안 정보를 읽을 수 있거나 etcd를 읽을 수 있는 사람은 누구나 평문을 볼 수 있습니다.

# A 'Secret' is trivially decoded
kubectl get secret db -o jsonpath='{.data.password}' | base64 -d

저장 데이터 보안 정보 암호화

도난당한 백업이나 etcd 접근으로 모든 정보가 유출되지 않도록 etcd의 내용을 보호합니다.

  • EncryptionConfiguration을 사용하여 저장 데이터 암호화를 활성화합니다.
  • 봉투 암호화를 위해 클라우드 KMS 제공자를 연결합니다.
  • 직접적인 etcd 접근을 제한하고 감사 기록을 남깁니다.

외부 보안 정보 관리자

가장 강력한 방식은 클러스터 저장소에서 보안 정보를 완전히 제외하는 것입니다.

  • HashiCorp Vault 또는 클라우드 보안 정보 관리자가 기준 원본을 보관합니다.
  • 외부 보안 정보 오퍼레이터 또는 CSI 드라이버가 실행 중에 보안 정보를 주입합니다.
  • 파드가 정적 키가 아니라 수명이 짧은 클라우드 토큰을 사용하여 보안 정보를 가져오도록 워크로드 식별자를 사용합니다.

보안 정보 관리 수칙

운영 관행을 통해 보안 정보 노출을 줄일 수 있습니다.

  • 보안 정보를 이미지에 포함하거나 Git에 커밋하지 않습니다.
  • 저장소와 이미지에서 유출된 자격 증명을 스캔합니다.
  • 보안 정보를 정기적으로, 그리고 노출이 의심될 때마다 교체합니다.
  • RBAC get/list secrets 권한을 최소 범위로 제한합니다.
# Detect committed secrets in source
gitleaks detect --source .

공급망 테스트

평가할 때 서명되지 않았거나 취약한 이미지가 실제로 차단되는지, 보안 정보가 저장 시 암호화되는지, 평문 자격 증명이 이미지나 Git에 남아 있지 않은지 확인합니다. 증명에 필요한 범위를 넘어 실제 보안 정보를 반출하지 않고 발견 사항을 입증합니다.

각 격차를 이를 해결하는 구체적인 제어 수단(서명 정책, KMS 암호화, 외부 관리자)과 함께 보고합니다.

빠른 확인

공급망과 보안 정보에 관한 지식을 확인합니다.

복습

이미지 공급망과 보안 정보 처리를 강화했습니다.

  • 이미지를 스캔하고, 최소 기본 이미지를 고정하여 사용하며, 코사인으로 서명합니다.
  • 승인 시점에 서명되고 스캔된 이미지와 신뢰할 수 있는 레지스트리만 사용하도록 강제합니다.
  • Kubernetes 보안 정보는 base64로만 인코딩되므로 저장 시 KMS 암호화를 활성화합니다.
  • 외부 보안 정보 관리자와 워크로드 식별자를 우선 사용하고, 보안 정보 관리 수칙을 실천합니다.

이로써 Kubernetes 보안 과정과 이 학습 단원을 모두 마쳤습니다.

자주 묻는 질문

“공급망과 비밀 정보 보호” 강의는 무료인가요?

네 — “공급망과 비밀 정보 보호” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cyber Security Academy 강의 전체를 잠금 해제할 수 있습니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“공급망과 비밀 정보 보호”에서 뭘 배우나요?

이미지와 비밀 정보를 강화합니다. 브라우저에서 직접 실행하는 실습 코드로 Cyber Security Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cyber Security Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cyber Security Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“공급망과 비밀 정보 보호” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cyber Security Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cyber Security Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Kubernetes 위협 모델
  2. RBAC와 서비스 계정
  3. Pod 보안과 네트워크 정책
  4. 공급망과 비밀 정보 보호
← Cyber Security Academy(으)로 돌아가기