Logo GH

음식 환경 강화

생산 환경 강화

1) 목적과 프레임

강화는 사고 가능성과 사고로 인한 피해를 줄이는 체계적인 관행입니다. 초점: API 경계, 고객/결제 데이터, CI/CD, 컨테이너 플랫폼, 액세스, 변경 제어, 관찰 및 준수.

주요 원칙:
  • 설계 및 기본값으로 보안: 필요한 최소 권한, 기본값을 보호합니다.
  • 제로 트러스트: 확인없이 네트워크 나 신원을 신뢰하지 마
  • 심층 방어: 다단계 보호 (네트워크 → 서비스 → 응용 프로그램 → 데이터).
  • 인공물의 불변성: "한 번 빌드하고 많은 것을 실행하십시오".
  • E2E는 추적하고 감사합니다: 누가, 언제, 무엇이 바뀌 었는지, 왜.

2) 위협 모델 및 중요 자산

자산: 계정 및 결제 토큰, PII/여권 데이터, RNG/게임 잔액, 암호화 키, 통합 비밀, 파이프 라인 배치, 컨테이너 이미지.
벡터: 종속성 취약점, 토큰 누출, 클라우드 잘못된 구성/K8, API의 SSRF/RCE, 공급망 (CI/CD/저장소 손상), 내부자 액세스, DDoS/봇 트래픽.
시나리오: 무단 엔티티에 의한 자금 인출, 계수/밸런스 대체, 기본 드레인, 파이프 라인 캡처, 제품의 수동 편집.

3) 네트워크 아키텍처 및 격리

세분화: prod/stage/dev에 대한 별도의 VPC/VNet. 내부 prod - Edge (LB/WAF), API, 데이터베이스, 분석, 관리 서비스 용 서브 넷.
"명시 적으로 허용 된" 정책: 서브넷 사이의 모든 것을 거부하고 필요한 포트/방향 만 엽니 다.
서비스 간 mTLS, 인증서 회전이 자동화됩니다.

NetworkPolicy K8의 예 (거부 + 허용 목록):
yaml apiVersion: networking. k8s. io/v1 kind: NetworkPolicy metadata:
name: default-deny namespace: prod spec:
podSelector: {}
policyTypes: ["Ingress","Egress"]
apiVersion: networking. k8s. io/v1 kind: NetworkPolicy metadata:
name: allow-api-to-db namespace: prod spec:
podSelector:
matchLabels: {app: db}
ingress:
- from:
- podSelector: {matchLabels: {app: api}}
ports: [{protocol: TCP, port: 5432}]

4) 정체성 및 액세스 (PAM/JIT)

모든 인간 접근에 대한 SSO + MFA.
RBAC & ABAC-클라우드, 클러스터, 네임 스페이스 및 응용 프로그램 레벨에서 역할을합니다.
PAM: 점프/요새, JIT 액세스 (제한된 시간), 세션 기록.
브레이크 글래스: 하드웨어 키, 로그 발행이있는 밀봉 된 계정.
"무엇에 액세스 할 수있는 사람" 에 대한 정기적 인 스캔은 30 일마다 한 번씩 검토합니다.

5) 비밀과 열쇠

Vault/KMS/Secrets Manager는 Git의 비밀을 제외합니다.
마스터 키의 KMS/HSM; KEK/DEK, 자동 회전.
TTL 정책: 단기 토큰 (OIDC/JWT), CI의 임시 계정.
암호화: 휴식 시간 (AES-256/GCM), 비행 중 (SL 1. 별도의 키가있는 2 +/mSL), PII/카드 데이터 열.

6) 공급망, CI/CD 경화

prod를위한 러너 격리 (개인 네트워크에서 자체 호스팅).
인공물 서명 (Sigstore/cosign), depla의 서명 검증.
각 커밋 및 릴리스 전에 SBOM (CycloneDX/SPDX), SCA/VA.
"최신 태그 없음" 정책, 불변의 태그 만 있습니다.
4 눈 원칙: 필수 코드 검토 및 승인 변경.
코드로서의 인프라: Terraform/Helm) 코드 정책 (OPA/Conftest).

OPA 규정의 예 (공개 S3/스토리지 금지):
rego package iac. guardrails

deny[msg] {
input. resource. type == "storage_bucket"
input. resource. acl == "public-read"
msg:= sprintf("Public bucket forbidden: %s", [input. resource. name])
}

7) 컨테이너와 Kubernetes

최소 이미지베이스 (디스트로리스), 뿌리가없고 읽기 전용 FS, 드롭 CAP.
입학 통제: 특권, 호스트 경로, 호스트 네트워크 거부.

포드 보안 표준: 기준/제한된

ImagePolicyWebhook-서명 된 이미지 만 건너 뛰십시오.

런타임 정책 (Falco/eBPF): 비정상적인

쿼터/제한 범위: "잡음 이웃" 으로부터 노드를 보호합니다.

8) API 경계: WAF, 속도 제한, 봇/DDoS

게이트웨이 API: 인증 (OAuth2/JWT/HMAC), 정규화, mSL, 스키마 검증.
WAF: 비즈니스 지표에 대한 기본 규칙 + 카스트.
요율 제한: 글로벌/바이 IP/클라이언트 키; "토큰" 과 버스트.

NGINX 속도 제한의 예:
nginx limit_req_zone $binary_remote_addr zone=api:20m rate=10r/s;

server {
location /api/ {
limit_req zone=api burst=30 nodelay;
proxy_pass http://api_backend;
}
}

봇 관리: 행동 신호, 장치 지문, 도전.
DDoS: 뜨거운 기능을위한 CDNA/에지 스크러빙, 자동 스케일, "다크 런칭".

9) 설정 정책 및 기본값 보호

위험한 기능을 신속하게 비활성화하기 위해 플래그/킬 스위치 기능.
회로 검증, 구성 요소에 대한 카나리아/청록색의 코드 설정.
구성 요소/키를 취소 할 때 KPI로 취소합니다.

10) 데이터 및 개인 정보

분류: PII/금융/운영 로그/원격 측정.
최소화: 익명화/가명 만 필요한 것만 저장하십시오.
백업: 별도의 계정/프로젝트, 암호화, 일반 DR 리허설.
철회 규칙: 동일한 방법, 속도 제한, 위험 점수, 4 눈.
법적 보류/보존: 보관 일정, 관리 처리.

11) 관찰 가능성, 경고 및 응답

트라이어드: 로그 (비밀 포함), 메트릭 (SLO/SLA), 트레일 (W3C).
보안 신호: 입력 성공/실패, 권한 상승, 비밀 변경, 트래픽 편차.
SIEM + SOAR: 상관 및 반자동 플레이 북.
사건 플레이 북: DDoS, 비밀 유출, 러너 타협, 릴리스 롤백, 지불 "동결".
응답 성의 주요 지표로서 MTTD/MTTR.

12) 변경 및 릴리스 관리

고위험 변경을 위해 자문위원회 (경량) 를 변경하십시오.
사전 게이트: 테스트, 보안, perf, 데이터베이스 마이그레이션.
Canary/Blue-Green/Shadow depley, SLO의 자동 롤백.
prod에서 직접 편집을 금지합니다. 파이프 라인을 통해서만 변경됩니다.

13) 취약성 및 패치

패치 정책: 중요-최대; 높음-N 일 동안.
수정 후 수지; CVE 노출 가중치.
혼돈 보안: 강조 표시된 창에서 주기적 테이블 탑 연습 및 빨간색 명령 공격.

14) 준수 및 감사

제어 프레임 워크: PCI DSS (결제), SOC 2, ISO 27001.
아티팩트: 제어 매트릭스, 로그 변경, 스캔 보고서, DR 테스트 결과, 액세스 검토.
지속적인 가용성: "코드로서의 증거" -아티팩트는 파이프 라인 및 시스템에서 자동으로 수집됩니다.

15) 경제와 신뢰성

비용 별 보호: 할당량, 예산, 경고, 미사용 리소스의 자동 종료.
용량: SLO 지향 계획, 로드 테스트, "혼돈의 날".
복구 우선 순위: 서비스 별 RTO/RPO, 종속성 맵.

16) 반 패턴

Git의 v.env의 비밀, 모든 사람을위한 일반적인 "관리자", "prod in prod", 컨테이너의 수동 수정, "최신" 태그, 모든 것을위한 하나의 공통 클러스터, 퍼블릭 버킷, prod-network의 아웃 바운드 인터넷이있는 CI 러너, "핫" 기능의 킬 스위치 없음.

17) 빠른 시작 점검표 (90 일)

0-30 일

MFA/SSO 활성화, 액세스 검토; 모든 네트워크 정책 거부; 비밀 관리자/KMS; K8에서 금지 된 특권; WAF/속도 제한 기본 항목/에스컬레이션 경고 사용

31-60 일

이미지 서명 + ImagePolicy; SBOM + SCA 칼륨 CI; 카나리아/롤백; SIEM 상관 관계; IR 플레이 북; JIT/PAM; DR 테스트로 백업.

61-90 일

IaC를위한 OPA- 가드 레일; eBPF/팔코; 봇 관리; 정기적 인 액세스 검토; 혼돈 보안 운동; 컨피그 및 비용 절감 감사.

18) 성숙도 지표

액세스: MFA 계정의%, 토큰의 평균 연령, 리콜 시간.
파이프 라인:% 서명/SBOM 이미지, SAST/DAST 적용 범위.
플랫폼: 읽기 전용 FS, PSS 제한, NetworkPolicy 적용 범위를 가진 포드 공유.
경계계: 속도 제한/WAF 규칙이있는% API, DDoS에 대한 평균 응답.
IR: MTTD/MTTR, 탁상용 주파수, 성공적인 DR 리허설 비율.
준수: 자동 증거가있는 제어 비율.

19) 부록: 정책 템플릿

AWS SCP (공개 버킷 금지)

json
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "DenyPublicS3",
"Effect": "Deny",
"Action": ["s3:PutBucketAcl","s3:PutBucketPolicy"],
"Resource": "",
"Condition": {"StringEquals": {"s3:x-amz-acl": "public-read"}}
}]
}

Kubernetes PodSecurity (네임 스페이스 라벨)

yaml apiVersion: v1 kind: Namespace metadata:
name: prod labels:
pod-security. kubernetes. io/enforce: restricted pod-security. kubernetes. io/audit: restricted

컨테이너 용 <> OPA (금지 된 특권)

rego package k8s. admission deny[msg] {
input. request. object. spec. containers[_].securityContext. privileged == true msg:= "Privileged containers are not allowed in prod"
}

20) 결론

식품 환경을 강화하는 것은 지속적인 과정입니다. 액세스 및 비밀, 네트워크 격리, 아티팩트 서명 및 파이프 라인 제어, API 주변 보호, 관찰 가능성 및 규율 변경과 같은 위험 완화 조치의 우선 순위를 정하십시오. 나머지는 반복적으로 구축하여 성숙도 지표를 포착하고 경제를 제어합니다.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.