AWS S3 버킷 읽기 권한 설정 가이드
카테고리
인프라/DevOps/보안
서브카테고리
보안
대상자
AWS S3 버킷 관리자 및 DevOps 엔지니어
- 중급 수준 이상의 AWS IAM 및 S3 정책 이해 필요
- 공개 액세스 설정 시 보안 리스크 관리 필요
핵심 요약
s3:GetObject
액션 허용
AWS S3 버킷 정책에서 s3:GetObject
액션을 모든 사용자(*
)에게 허용하여 공개 읽기 권한 부여
- 리소스 ARN 패턴
"arn:aws:s3:::Bucket-Name/*"
형식으로 모든 객체에 적용
- 보안 고려사항
Principal: "*"
, Effect: "Allow"
설정은 보안 위험 요소로 주의 필요
섹션별 세부 요약
1. 정책 생성 목적
- 공개 읽기 권한 설정
외부 사용자가 S3 버킷 내 파일을 읽을 수 있도록 허용
- 정책 적용 범위
특정 버킷(Bucket-Name
) 내 모든 객체(/*
)에 적용
2. 정책 구조 예시
- 버전 지정
"Version": "2012-10-17"
AWS IAM 정책 표준 버전 적용
- 정책 문(statement)
```json
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::Bucket-Name/*"]
}
```
- 주요 매개변수
- Effect
: 권한 허용 여부(Allow
)
- Principal
: 적용 대상(*
= 모든 사용자)
- Action
: 허용할 액션(s3:GetObject
)
3. 보안 설정 고려사항
- 공개 액세스 리스크
Principal: "*"
, Effect: "Allow"
설정은 보안 취약점 유발 가능
- 대체 권장 사항
- 특정 IAM 역할(arn:aws:iam::account-id:role/role-name
) 대상 지정
- Effect: "Deny"
+ Principal: "AWS"
조합으로 제한적 권한 부여
- 모니터링 필요성
AWS CloudTrail로 정책 변경 이력 추적 및 S3 액세스 로그 분석
결론
- 보안 강화 가이드라인
- 공개 읽기 권한은 iam:PassRole
정책과 결합하여 제한적 사용
- Bucket-Name
을 실제 버킷 이름으로 교체 후 적용
- AWS WAF 및 S3 Block Public Access 설정으로 보안 강화 권장