인터페이스 VPC 엔드포인트를 사용하여 S3 버킷에 연결할 수 없는 이유는 무엇입니까?
최종 업데이트 날짜: 2022년 3월 31일
인터페이스 Amazon Virtual Private Cloud(Amazon VPC) 엔드포인트를 사용하여 Amazon Simple Storage Service(Amazon S3) 버킷에 연결할 수 없습니다. 이 문제를 해결하려면 어떻게 해야 합니까?
간략한 설명
이 오류를 해결하려면 다음 사항을 확인합니다.
- 인터페이스 VPC 엔드포인트 및 S3 버킷과 연결된 정책을 확인합니다.
- 네트워크가 S3 엔드포인트에 연결되는지 확인합니다.
- DNS가 S3 엔드포인트 IP 주소를 해석할 수 있는지 확인합니다.
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.
해결 방법
인터페이스 VPC 엔드포인트 및 S3 버킷과 연결된 정책 확인
기본적으로 S3 버킷에는 버킷을 생성할 때 연결된 정책이 없습니다. 생성 시 S3 인터페이스 엔드포인트와 연결된 정책은 기본적으로 모든 S3 버킷에 대한 모든 작업을 허용합니다. 엔드포인트와 연결된 정책을 보는 방법에 대한 자세한 내용은 인터페이스 엔드포인트 보기를 참조하세요.
네트워크가 S3 엔드포인트에 연결되는지 확인
소스와 대상 간의 연결을 확인합니다. 예를 들어, 네트워크 액세스 제어 목록(ACL) 및 S3 인터페이스 엔드포인트와 연결된 보안 그룹을 확인하여 해당 인터페이스 엔드포인트에 대한 트래픽이 허용되는지 확인합니다.
다음 telnet 명령을 사용하여 AWS 리소스 간 또는 온프레미스 호스트와 S3 엔드포인트로부터의 연결을 테스트합니다. 다음 명령에서 S3_interface_endpoint_DNS를 S3 인터페이스 엔드포인트의 DNS로 바꿉니다.
telnet bucket.S3_interface_endpoint_DNS 443
Trying a.b.x.y...
Connected to bucket.vpce-0a1b2c3d4e5f6g-m7o5iqbh.s3.us-east-2.vpce.amazonaws.com
테스트 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 사용하여 telnet 연결을 테스트할 수도 있습니다. 소스(온프레미스 호스트 또는 다른 인스턴스)의 엔드포인트가 있는 서브넷의 연결을 테스트하여 소스에서 대상 AWS 리소스로의 계층 3 연결이 존재하는지 확인합니다. S3 인터페이스 엔드포인트와 연결된 테스트 인스턴스에 동일한 보안 그룹을 사용해야 합니다. 이 연결을 테스트하면 문제가 보안 그룹 또는 네트워크 ACL에 있는지 확인하는 데 도움이 됩니다.
DNS가 S3 엔드포인트를 해석할 수 있는지 확인
소스에서 인터페이스 엔드포인트 DNS를 해석할 수 있어야 합니다. nslookup, dig 등과 같은 도구를 사용하여 이 작업을 수행할 수 있습니다. 다음 예제에서는 dig를 사용합니다. 다음 명령에서 S3_interface_endpoint_DNS를 S3 인터페이스 엔드포인트의 DNS로 바꿉니다.
dig *s3_interface_endpoint_DNS@local_nameserver
참고: 아마존에서 제공하는 DNS 서버는 VPC CIDR의 .2 IP 주소입니다. 온프레미스 호스트는 /etc/resolv.conf 파일에 나열된 호스트의 로컬 네임 서버입니다.