DLP 3-tierPermission BoundaryPer-user IAM
보안
기업 환경에서도 안전하게 사용할 수 있도록 설계된 7계층 보안 모델.
1. 7계층 보안 모델
| 계층 | 구성 요소 | 주요 보호 기능 |
|---|---|---|
| L1 | CloudFront | TLS 1.2+ · AWS Shield |
| L2 | ALB / NLB | CloudFront Prefix List + X-Custom-Secret 헤더 강제 |
| L3 | Cognito | 이메일/비밀번호 + 그룹 기반 (admin/user/dept-manager) |
| L4 | Security Groups | DLP 3단계: Open / Restricted / Locked |
| L5 | VPC Endpoints | 인터넷을 거치지 않는 내부 전송 |
| L6 | DNS Firewall | AWS 위협 5개 리스트 + 사용자 정의 차단 |
| L7 | IAM + DLP | Permission Boundary + Deny on overspend + 모델별 ACL |
2. DLP 정책 (L4)
| 정책 | 아웃바운드 | 적합 |
|---|---|---|
| Open | 전체 허용 (기본값) | 일반 개발자 |
| Restricted | VPC 내부 + HTTPS(443)만 | 보안 민감 프로젝트 |
| Locked | VPC 내부만 (인터넷 차단) | 규제 환경, 금융 |
추가로 code-server에서 --disable-file-downloads --disable-file-uploads 플래그로 파일 유출 방지 (Restricted/Locked).
3. IAM 격리 (L7)
| 모드 | Role | 발급 경로 |
|---|---|---|
| EC2 DevEnv | cc-on-bedrock-task-{subdomain} | Instance Profile (Dashboard가 RunInstances 직전 생성) |
| Local Governance | cc-on-bedrock-local-user-{sub_short} | STS AssumeRole (STS Issuer Lambda) |
두 role 모두:
- Bedrock: wildcard Claude family ARN (신규 모델 즉시 사용)
- S3 / DynamoDB: 본인 데이터 경로만
- CloudWatch: 로그 쓰기만
- Permission Boundary:
cc-on-bedrock-task-boundary강제 → 권한 확장 방지
IAM 사전 프로비저닝
Cognito 사용자 가입 시 EventBridge 가 UserRoleProvisioner Lambda 를 트리거해 per-user role + Cognito custom attrs 사전 생성. 첫 로그인 시 IAM eventual consistency race 제거.
Cognito 삭제 → 자동 cleanup
사용자 삭제 시 EventBridge 가 자동으로 IAM role + DDB entries + EC2 instance + Secrets 정리. Dashboard 는 IdP-safe degraded mode 로 유실 사용자 그래프를 보여줍니다.
4. 감사 및 추적
CloudTrail 로 모든 Bedrock 호출 및 인프라 변경 이력 저장. 대시보드의 /security 페이지에서 실시간 차단 내역 + 보안 체크리스트 확인.