S3(3)
-
AWS S3 기본 개념: 버킷 정책, 버전 관리, 수명 주기 설계
"개발팀이 S3 버킷에 로그를 쌓고 있는데, 3개월 만에 저장 비용이 월 $200을 넘었습니다. 오래된 파일은 자동으로 정리하고 싶은데, 실수로 삭제한 파일은 복원할 수 있어야 합니다." — 이 상황에서 필요한 것이 S3의 수명 주기 규칙과 버전 관리입니다.핵심 요약S3 버킷 정책(Bucket Policy)은 버킷 단위의 접근 제어 규칙으로, 크로스 계정 접근이나 특정 조건부 허용에 사용됩니다.버전 관리(Versioning)를 활성화하면 객체를 덮어쓰거나 삭제해도 이전 버전이 보존되어 복원이 가능합니다.수명 주기(Lifecycle) 규칙으로 객체를 저렴한 스토리지 클래스로 자동 전환하거나 만료 삭제할 수 있습니다.세 가지 기능을 조합하면 "데이터 보호 + 비용 최적화 + 접근 제어"를 동시에 설계할 수 ..
2026.06.05 -
S3 AccessDenied 원인과 해결 방법: Bucket Policy, IAM, KMS, VPC Endpoint까지
Lambda에서 S3 객체를 읽으려는데 AccessDenied가 반환됩니다. IAM Role에 s3:GetObject를 붙였는데 왜 안 될까요? S3 AccessDenied는 권한 평가 계층이 여러 겹이라 원인을 특정하기 어렵습니다. 이 글에서는 원인별 진단 흐름과 해결 방법을 정리합니다.핵심 요약원인증상확인 방법IAM Policy에 Action/Resource 누락모든 S3 요청에서 403IAM Policy Simulator 또는 aws iam simulate-principal-policyBucket Policy에 명시적 Deny특정 조건에서만 403Bucket Policy의 Deny Statement 확인Block Public Access 활성화Public ACL/Policy 설정 시 403S3 콘솔..
2026.06.01 -
Terraform S3 Backend와 State Lock 구성하기: 팀 협업을 위한 원격 상태 관리
팀원 3명이 같은 인프라를 Terraform으로 관리할 때, Local State로는 충돌을 피할 수 없습니다. S3 Backend와 DynamoDB Lock을 구성하면 이 문제를 구조적으로 해결할 수 있습니다.핵심 요약S3 Backend는 Terraform State를 팀 전체가 공유할 수 있는 원격 저장소에 보관합니다.DynamoDB를 사용한 State Locking은 동시 작업으로 인한 State 충돌을 방지합니다.Backend 리소스(S3 버킷, DynamoDB 테이블)는 Terraform이 아닌 별도 방법으로 먼저 생성하는 것이 일반적입니다.State 파일에는 민감 정보가 포함될 수 있으므로 암호화와 접근 제어가 필수입니다.환경별(dev/staging/prod) State를 분리하면 blast ..
2026.05.31