728x90
problem
프로필 , 로고 업로드 기능을 위해 서버에서 이미지 처리 기능으로 S3를 사용 했다.
S3 의 버켓에 특정 확장자 업로드를 방지하는 정책을 적용 해보기로 했다.
solution
적용 할 버킷에 접속한다.
권한 탭으로 이동 후 아래에 내려오면 버킷 정책이 있다
{
"Version": "2012-10-17",
"Id": "Policy1717078661759",
"Statement": [
{
"Sid": "Stmt1717078657627",
"Effect": "Deny",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"NotResource": [
"arn:aws:s3:::<버킷명>/*.jpeg",
"arn:aws:s3:::<버킷명>/*.jpg",
"arn:aws:s3:::<버킷명>/*.gif",
"arn:aws:s3:::<버킷명>/*.png",
"arn:aws:s3:::<버킷명>/*.pdf"
]
}
]
}
여기서 주의 깊게 봐야 할 점은
- "Effect": "Deny"
- "NotResource": [
"arn:aws:s3:::<버킷명>/*.jpeg",
"arn:aws:s3:::<버킷명>/*.jpg",
"arn:aws:s3:::<버킷명>/*.gif",
"arn:aws:s3:::<버킷명>/*.png",
"arn:aws:s3:::<버킷명>/*.pdf"
] - "Action": [
"s3:GetObject",
"s3:PutObject"
]
"Effect": "Allow" 로 해둘 시 적용이 적용이 안된다.
NotResource 처리를 하여 확장자외에 모든 파일을 제한 한다는 표시이다.
"Action" 은 Put Get 작업의 권한을 "Principal" 에 적용된 사용자에게 모두 적용 시킬 수 있다.
설정 완료 후 - > 업로드 페이지 가서 테스트 해보면 txt 파일은 액세스를 거부 하는것을 볼 수 있다.
참고
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/reference_policies_elements_notresource.html
728x90
'개-발 > Infra' 카테고리의 다른 글
[Kafka] Kafka Transaction (0) | 2024.07.11 |
---|---|
[AWS] aws ElastiCache cache 서버Redis 구성하기 (0) | 2024.06.27 |
[EasticSearch ] BulkApi 사용법 ( action_request_validation_exception ) (0) | 2024.05.28 |
[ElasticSearch] SpringBoot 3.x elasticsearch 8.x 연동 ( with.Kotlin ) (0) | 2024.05.06 |
[ElsticSearch] 엘라스틱서치 개념과 Query (0) | 2024.04.09 |