IPv6을 통해 Amazon S3에 요청
Amazon Simple Storage Service(Amazon S3)는 IPv4 프로토콜 외에도 IPv6(인터넷 프로토콜 버전 6)을 사용하여 S3 버킷에 액세스할 수 있는 기능을 지원합니다. Amazon S3 듀얼 스택 엔드포인트는 IPv6 및 IPv4를 통한 S3 버킷 요청을 지원합니다. IPv6을 통해 Amazon S3에 액세스하는 데 대한 추가 요금은 없습니다. 요금에 대한 자세한 내용은 Amazon S3 요금
IPv6을 통해 요청하기
IPv6을 통해 S3 버킷에 요청하려면 듀얼 스택 엔드포인트를 사용해야 합니다. 다음 단원에서는 듀얼 스택 엔드포인트를 사용하여 IPv6을 통해 요청하는 방법을 설명합니다.
다음은 IPv6을 통해 버킷에 액세스하기 전에 알아야 할 몇 가지 사항입니다.
-
버킷에 액세스하는 클라이언트와 네트워크가 IPv6을 사용하도록 설정되어 있어야 합니다.
-
가상 호스팅 방식과 경로 방식 요청이 모두 IPv6 액세스를 지원합니다. 자세한 내용은 Amazon S3 듀얼 스택 엔드포인트 섹션을 참조하세요.
-
AWS Identity and Access Management(IAM) 사용자 또는 버킷 정책에서 소스 IP 주소 필터링을 사용하는 경우, IPv6 주소 범위를 포함하도록 정책을 업데이트해야 합니다. 자세한 내용은 IAM 정책에서 IPv6 주소 사용 섹션을 참조하세요.
-
IPv6을 사용하는 경우, 서버 액세스 로그 파일이 IPv6 형식으로 IP 주소를 출력합니다. IPv6 형식의
Remote IP
주소를 구문 분석할 수 있도록 Amazon S3 로그 파일을 구문 분석하는 데 사용하는 기존 도구, 스크립트 및 소프트웨어를 업데이트해야 합니다. 자세한 내용은 Amazon S3 서버 액세스 로그 형식 및 서버 액세스 로깅을 사용한 요청 로깅 섹션을 참조하세요.참고
로그 파일에 IPv6 주소가 있는 것과 관련하여 문제가 있는 경우, AWS Support
에 문의하세요.
듀얼 스택 엔드포인트를 사용하여 IPv6을 통해 요청
듀얼 스택 엔드포인트를 사용하여 IPv6을 통해 Amazon S3 API 호출로 요청합니다. Amazon S3 API 작업은 IPv6을 통해 Amazon S3에 액세스하든 IPv4를 통해 액세스하든 동일하게 실행됩니다. 성능 또한 동일합니다.
REST API를 사용하는 경우, 듀얼 스택 엔드포인트에 직접 액세스합니다. 자세한 내용은 듀얼 스택 엔드포인트 섹션을 참조하세요.
AWS Command Line Interface(AWS CLI) 및 AWS SDK를 사용하는 경우, 파라미터 또는 플래그를 사용하여 듀얼 스택 엔드포인트를 변경할 수 있습니다. 구성 파일의 Amazon S3 엔드포인트를 재정의하여 듀얼 스택 엔드포인트를 직접 지정할 수도 있습니다.
듀얼 스택 엔드포인트를 사용하여 다음에서 IPv6을 통해 버킷에 액세스할 수 있습니다.
-
AWS CLI에 대한 내용은 AWS CLI의 듀얼 스택 엔드포인트 사용를 참조하십시오.
-
AWS SDK(AWS SDK의 듀얼 스택 엔드포인트 사용 참조).
-
REST API, REST API를 사용하여 듀얼 스택 엔드포인트에 요청 참조.
IPv6을 통해 사용할 수 없는 기능
S3 버킷에서 정적 웹 사이트를 호스팅하는 기능은 현재 IPv6을 통해 S3 버킷에 액세스할 때 지원되지 않습니다.
IAM 정책에서 IPv6 주소 사용
IPv6을 사용하여 버킷에 액세스하기 전에 IP 주소 필터링에 사용되는 IAM 사용자 또는 S3 버킷 정책이 IPv6 주소 범위를 포함하도록 업데이트되었는지 확인해야 합니다. IP 주소 필터링 정책이 IPv6 주소를 처리하도록 업데이트되지 않은 경우, 클라이언트가 IPv6을 사용할 때 버킷에 대한 액세스 권한을 잘못 잃거나 얻을 수 있습니다. IAM으로 액세스 권한을 관리하는 방법에 대한 자세한 내용은 Amazon S3의 ID 및 액세스 관리 단원을 참조하세요.
IP 주소를 필터링하는 IAM 정책은 IP 주소 조건 연산자를 사용합니다. 다음 버킷 정책은 IP 주소 조건 연산자를 사용하여 허용되는 IPv4 주소인 54.240.143.* 범위를 식별합니다. 이 범위를 벗어난 모든 IP 주소는 버킷(examplebucket
)에 대한 액세스가 거부됩니다. 모든 IPv6 주소가 허용되는 범위 밖에 있으므로 이 정책은 IPv6 주소가 examplebucket
에 액세스하지 못하도록 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "IPAllow", "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::
examplebucket
/*", "Condition": { "IpAddress": {"aws:SourceIp": "54.240.143.0/24"} } } ] }
다음 예제와 같이 IPv4(Condition
) 및 IPv6(54.240.143.0/24
) 주소 범위를 모두 허용하도록 버킷 정책의 2001:DB8:1234:5678::/64
요소를 수정할 수 있습니다. 예제에 나와 있는 동일한 Condition
블록 유형을 사용하여 IAM 사용자와 버킷 정책 모두를 업데이트할 수 있습니다.
"Condition": { "IpAddress": { "aws:SourceIp": [ "54.240.143.0/24", "2001:DB8:1234:5678::/64" ] } }
IPv6을 사용하기 전에 IP 주소 필터링을 사용하는 관련된 모든 IAM 사용자와 버킷 정책을 업데이트해야 합니다. 버킷 정책에서는 IP 주소 필터링을 사용하지 않는 것이 좋습니다.
https://console.aws.amazon.com/iam/
IP 주소 호환성 테스트
Linux/Unix 또는 Mac OS X를 사용하는 경우, 다음 예제에 나와 있는 curl
명령을 사용하여 IPv6을 통해 듀얼 스택 엔드포인트에 액세스할 수 있는지 테스트할 수 있습니다.
curl -v http://s3.dualstack.us-west-2.amazonaws.com/
다음 예제와 유사한 정보를 가져옵니다. IPv6을 통해 연결된 경우, 연결된 IP 주소가 IPv6 주소가 됩니다.
* About to connect() to s3-us-west-2.amazonaws.com port 80 (#0) * Trying
IPv6 address
... connected * Connected to s3.dualstack.us-west-2.amazonaws.com (IPv6 address
) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.18.1 (x86_64-unknown-linux-gnu) libcurl/7.18.1 OpenSSL/1.0.1t zlib/1.2.3 > Host: s3.dualstack.us-west-2.amazonaws.com
Microsoft Windows 7 또는 Windows 10을 사용하는 경우, 다음 예제에 나와 있는 ping
명령을 사용하여 IPv6 또는 IPv4를 통해 듀얼 스택 엔드포인트에 액세스할 수 있는지 테스트할 수 있습니다.
ping ipv6.s3.dualstack.us-west-2.amazonaws.com