← 문제 라이브러리
Security 중급 17분

S3 AccessDenied: 권한을 줬는데도 리포트 파일을 받지 못함

데이터 분석팀이 매일 아침 노트북에서 S3의 매출 리포트 파일을 내려받는데, 오늘부터 AccessDenied로 실패합니다.

검수된 문제무료
시나리오

데이터 분석팀이 매일 아침 노트북에서 S3의 매출 리포트 파일을 내려받는데, 오늘부터 AccessDenied로 실패합니다. 분석가 역할(DataAnalyst)의 IAM 정책에는 이 버킷의 s3:GetObject가 분명히 허용돼 있습니다. 어제 보안팀이 민감 데이터 버킷의 접근을 강화하는 작업을 했다고 공지했습니다. 분석팀장은 IAM 권한이 모자란 것 같다며 s3:*를 달라고 요청하려 합니다. 같은 역할로 사내 분석 서버에서 돌리는 작업은 오늘도 잘 돌았습니다.

단서
분석가 노트북에서
$ aws s3 cp s3://acme-reports/2026/09/sales.csv .
fatal error: An error occurred (AccessDenied) when calling the GetObject operation: User: arn:aws:sts::123456789012:assumed-role/DataAnalyst/kim is not authorized to perform: s3:GetObject on resource: "arn:aws:s3:::acme-reports/2026/09/sales.csv" with an explicit deny in a resource-based policy
버킷 정책 (어제 추가된 부분)
{
  "Sid": "DenyOutsideVpce",
  "Effect": "Deny",
  "Principal": "*",
  "Action": "s3:*",
  "Resource": ["arn:aws:s3:::acme-reports", "arn:aws:s3:::acme-reports/*"],
  "Condition": { "StringNotEquals": { "aws:SourceVpce": "vpce-0a1b2c3d4e" } }
}

과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.

먼저 볼 것
  • AccessDenied 메시지가 말하는 거부 위치(IAM인지 리소스 정책인지)
  • 명시적 거부(Deny)와 허용(Allow)의 우선순위
점검 체크리스트
  1. 오류 메시지의 'explicit deny in a resource-based policy' 여부
  2. 버킷 정책의 Deny 문과 조건
  3. 허용된 접근 경로(VPC 엔드포인트·사내 분석 환경)가 무엇인지