인프라/AWS

AWS S3 URL 다운로드 제한을 IP로 할 수 있을까?

copcat 2023. 3. 26. 22:35

문득 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

반응형