안녕하세요. 오랜만에 들어와서 또 질문만 드리게 되네요.
제목에서처럼 지금껏 S3 를 사용해서 웹사이트를 호스팅하고 있는데, 모종의 사유로 특정 버킷에 대한 외부 액세스를 제한해야 될 일이 생겼습니다. 특정 버킷의 외부 액세스를 조직 내부 ip에서만 허용하기 위해 s3 버킷 정책을 건드려 봤는데, 그렇게 하니 s3 엔드포인트 주소로는 원하는 대로 ip 접속 제한도 잘 작동되지만 그 버킷을 route 53에 연결하니 기존 도메인으로는 전혀 접속이 안되는 문제가 있습니다. cloudfront와 연결해서 waf를 쓰는 방법도 고려해보고는 있지만 지금 제한하려는 버킷 자료들이 그렇게 접속량이 많지 않은 구 자료들이라 또 추가로 비용이 드는 방화벽을 쓰는 게 부담입니다. 그래서... 버킷 정책 수정만으로 도메인을 사용해 특정 ip에서만 접속할 수 있는 기능을 구현할 수 있는 방법을 알고 있으시다면 답변 주시면 감사하겠습니다.
현재 s3 버킷에 등록한 정책 첨부하겠습니다.
{
"Version": "2012-10-17",
"Id": "IpDeny",
"Statement": [
{
"Sid": "Test",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::가림/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "가림"
}
}
}
]
}
IAM Policy¿¡¼ °¡´ÉÇÒ °Ì´Ï´Ù.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/block-s3-traffic-vpc-ip/