// 모든 사람 read-only, terraform IAM role 만 write
{"Effect":"Deny","Action":["ec2:*","rds:*","s3:CreateBucket"],"Resource":"*","Condition":{"StringNotEquals":{"aws:PrincipalArn":"arn:aws:iam::123:role/terraform"}}}
Drift 발견 → 흡수 vs 회복
흡수: 의도했으면 TF code 에 반영, terraform apply 가 안 바꿈.
회복: 의도 X, terraform apply 가 다시 원래대로.
🤔 의사결정 기준
도구
사용
Open-source
driftctl + cron
Terraform Cloud
Health Assessment
AWS only + 자동 fix
AWS Config + remediation
Multi-cloud
driftctl
변경 감사
CloudTrail / GCP Audit
사용자 수 적음
SCP 로 prevent
❌ 안티패턴
Plan / drift 검사 안 함: 다음 apply 가 무릎 꿇림.
변경 알림 없음: 콘솔 변경 모름.
모든 변경 무조건 회복: HPA / autoscaling 영구 충돌. ignore_changes.
TF state 와 실제 차이 무시: refresh.
콘솔 access 누구나: IAM 분리.
Production destroy 가능: prevent_destroy.
Drift 만 검사 — 외부 생성 리소스 모름: driftctl 가 unmanaged 도 발견.