티스토리 뷰

문득 S3 미리 정의된 URL로 다운로드하거나 액세스하는 것을 퍼블릭하게 노출시키지 않는 방법이 뭐가 있을까?고민하다가 IP기반으로 액세스를 허용하고 제한할 수 있을까 하고 간단하게 테스트해본 내용입니다.

 


테스트를 위해 버킷과 객체를 준비해줍니다.

1. 버킷 생성

 

2. 객체를 선택하고 미리 서명된 URL 과 공유를 선택합니다.

 

 

S3 버킷 정책에 내 IP 만 접근할 수 있도록 버킷정책을 꾸려보자

 

테스트는 내 현재 IP와 VPN 사용해서 다른 IP를 획득하여 액세스가 가능한지 여부에 대해 확인해볼 예정이다.

 

3.  S3 버킷 정책 설정 - IP 

내 IP 주소

  • S3 버킷 정책
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowIPs",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::testforjiwoo/*",    # <<< your S3 Bucket
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "210.95.62.154"   # <<< your IP
                    ]
                }
            }
        }
    ]
}

 

해당 버킷 정책을 저장하고 미리 정의된 URL로 접근해보자

 

 

4. TEST

버킷정책에 설정한 IP 로 URL 접근 시 모습

잘 접근되는 모습

 

 

 

써드파티의 툴 VPN을 사용해서 IP를 변환시켜 접근시도해본다.

변환된 내 IP
변환된 IP로 URL 접근 시 모습

접근 실패되는 모습

 

그 외 다른 방법으로 안전하게 S3 액세스하는 방법들이 있다.

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-use-case-3

 

참고

https://repost.aws/ko/knowledge-center/block-s3-traffic-vpc-ip

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함