- 총 사용자:
dev-leader,dev-staff,ops-leader,ops-staff - 각 사용자 → 아래 그룹 중 하나에 소속:
dev-groupops-group
- 각 팀원에 붙는 정책:
- 팀장:
s3:GetObject,s3:PutObject - 팀원:
s3:GetObject
- 팀장:
각 그룹은 자기 팀 버킷만 접근 가능 (타팀 버킷 접근 불가)
dev-bucket-whdbtjd,ops-bucket-whdbtjd두 개 생성- 퍼블릭 접근 차단
- 버킷 정책은 IAM에 위임 (버킷 정책은 굳이 작성하지 않아도 됨)
- CIDR:
10.0.0.0/16 - 퍼블릭 서브넷 2개:
10.0.1.0/24,10.0.2.0/24 - 프라이빗 서브넷 2개:
10.0.11.0/24,10.0.12.0/24 - 각 서브넷은 변수로 선언하여 관리
- 인터넷 게이트웨이 (IGW)
- NAT Gateway 2개 (EIP 포함)
- 퍼블릭 Routing Table 1개, 프라이빗 Routing Table 2개
- Routing Table → 각 서브넷에 Association 수행
- 백엔드는 S3로 구성: 예시
terraform-backend-bucket - 락 관리는 DynamoDB 테이블로 구성: 예시
terraform-lock
프로젝트 루트
├── init.tf
├── vpc.tf
├── iam.tf
├── s3.tf
├── backend.tf
├── variables.tf
├── outputs.tf
└── terraform.tfvars