본문 바로가기

퍼블릭 클라우드

[AWS] AWS S3 버킷 IP 주소로 액세스 제한하는 방법

728x90

AWS S3 버킷 IP 주소로 액세스 제한하는 방법

권한 설정

버킷 정책

IP 주소와 버킷 이름(bucketname)을 자신의 것으로 교체하여 다음 정책을 입력합니다.

{
    "Version": "2012-10-17",
    "Id": "S3PolicyId1",
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:*"
            ],
            "Resource": "arn:aws:s3:::bucketname/*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "1.1.1.1/32"
                },
                "IpAddress": {
                    "aws:SourceIp": [
                        "192.168.1.1",
                        "192.168.1.2/32",
                        "192.168.2.0/24"
                    ]
                }
            }
        }
    ]
}

파일 업로그 테스트

[성공]

$ curl -X PUT -T test.txt -H 'Host: bucketname.s3.amazonaws.com' \
-H 'Content-Type: application/octet-stream' \
https://bucketname.s3.ap-northeast-2.amazonaws.com/test.txt

[실패-Access Denied]

$ curl -X PUT -T test.txt -H 'Host: bucketname.s3.amazonaws.com' \
-H 'Content-Type: application/octet-stream' \
https://bucketname.s3.ap-northeast-2.amazonaws.com/test.txt
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>498CJNSET2MMD3SQ</RequestId><HostId>8svxsbydrQ88ZtCUBM2Ra45DRLm9OObSrjsJtTcCsAUq3/fg78Ia5TGDd73rZZuUvQiNbNXoIXE=</HostId></Error>

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

728x90