아래의 내용은 FSUG에서 제시하는 보안 및 운영 관련 점검 체크리스트입니다.
1. 접근 제어 모델 (Access Control Model)
- 루트 권한이 필요한가요?
- 개발자에게 호스트 또는 Kubernetes 클러스터에 대한 루트/특권 접근 권한이 부여되나요?
- 추가적인 역할 바인딩이 필요한가요?
- Linux Capabilities, Kubernetes 권한, 보안 컨텍스트 등은 어떻게 구성되어 있나요?
2. 감사 (Auditing)
- 누가 무엇을 했는지 어떻게 추적할 수 있나요?
- 15년 후에도 특정 작업의 주체를 확인할 수 있나요?
- 백업은 어떻게 수행되나요?
- 로그는 어디에 저장되며, 사용자들은 어떻게 로그 데이터를 조회하나요?
- API에서 데이터를 집계하는 방식은 어떻게 구성되어 있나요?
3. IAM 통합 (Identity and Access Management)
- 중앙 디렉터리(예: LDAP)와의 통합이 가능한가요?
- 로컬 사용자 정보는 중앙 컴플라이언스 시스템과 연동되나요?
- 어떤 인증 방식을 사용하고 있나요? (예: OpenID, Kerberos 등)
4. 지속적 배포 및 코드 프로모션 (CI/CD)
- 개발/테스트 및 운영 환경 간에 코드 및 데이터를 안전하고 자동화된 방식으로 이동할 수 있나요?
- 네트워크가 완전히 분리된 환경에서도 적용 가능한가요?
- 디지털/소프트웨어 구성요소 명세서(SBOM)가 존재하나요?
- 의존성의 출처를 확인할 수 있나요?
5. 코드 리뷰 (Code Review)
- 코드 변경 사항은 어떻게 검토되고 승인되나요?
6. 릴리스 프로세스 (Release Process)
- 내부 릴리스 파이프라인을 구성하려면 어떤 절차를 따르나요?
- 핫픽스 적용 시 특별히 권장하는 방식이 있나요?
7. 문서화 (Documentation)
- 개발자용 및 운영자용 문서가 각각 구비되어 있나요?
- 금융권처럼 역할 분리가 명확한 환경에서 사용 가능한 문서인가요?
8. 네트워크 의존성 (Network Dependencies)
- 프록시나 서비스 메시와 같은 보안 구성요소에 의존하나요?
- (Mutual) TLS 지원 여부 및 관련 문서는 잘 정리되어 있나요?
- 퍼블릭 클라우드가 아닌 내부 환경에서도 운영 가능한가요?
- 인터넷 접근 없이도 구현 가능한 방법이 있나요?
9. 가시성 (Observability)
- 표준 운영을 위해 필요한 추가 구성요소가 있나요?
- 예: Prometheus, Grafana 등
10. 데이터 분류 및 보안 정책 (Data Classification & Policy)
- 민감 데이터 또는 PII 데이터를 처리하나요?
- 데이터는 암호화되나요?
- 디스크 상의 데이터 저장 공간을 제한할 수 있는가요? (예: 인메모리 처리)
11. 규제 준수 및 보안 감사 (Compliance, Regulation & Audit)
- CNCF 또는 기타 보안 위협 모델링을 수행한 적이 있나요?
- NIST 800-53, 800-190 등의 통제 프레임워크에 대한 매핑이 완료되었나요?
12. 거버넌스 (Governance)
- 프로젝트의 운영 구조(steering governance)는 어떻게 되나요?
- 보안 취약점 공개 정책은 존재하나요?
- 릴리스 절차는 어떻게 정의되어 있나요?
- 코드 리뷰 절차는 어떻게 구성되어 있나요?
- 프로젝트의 프로세스 또는 산출물에 변경이 있을 경우, 그 결정은 누가 어떻게 내리나요?
fsug-checklist