게이트웨이 VPC 엔드포인트를 사용하여 S3 버킷에 연결할 수 없는 이유는 무엇인가요?

최종 업데이트 날짜: 2020년 11월 23일

게이트웨이 엔드포인트를 사용하여 Amazon Virtual Private Cloud(Amazon VPC)의 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 Amazon Simple Storage Service(Amazon S3) 버킷에 연결하고 있는데 연결이 작동하지 않습니다. 이 문제를 해결하려면 어떻게 해야 하나요?

해결 방법

참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

Amazon VPC에서 Amazon S3로 연결을 허용하는 보안 규칙 또는 네트워크 액세스로 인해 게이트웨이 VPC 엔드포인트 연결 문제가 발생할 수 있습니다. 연결 문제를 진단하고 해결하려면 다음 리소스와 구성을 확인하세요.

리전 구성

Amazon S3 게이트웨이 VPC 엔드포인트와 동일한 리전에 있는 Amazon S3 객체만 호출할 수 있습니다. 객체와 엔드포인트가 동일한 리전에 있는지 확인합니다.

VPC의 DNS 설정

중요: VPC에서 DNS 확인이 활성화되어야 합니다(게이트웨이 엔드포인트 제한 참조). 자체 DNS 서버를 사용하는 경우 AWS 서비스에 대한 DNS 요청이 AWS에서 유지 관리하는 IP 주소로 확인되어야 합니다.

  1. Amazon VPC 콘솔을 엽니다.
  2. 탐색 창의 [가상 사설 클라우드(Virtual Private Cloud)]에서 [VPC(Your VPCs)]를 선택합니다.
  3. 리소스 목록에서 S3 연결 문제가 있는 Amazon VPC를 선택합니다.
  4. [요약(Summary)] 보기에서 [DNS 확인(DNS resolution)]을 [예(yes)]로 설정합니다.

Amazon S3에 대한 라우팅 테이블 설정

  1. Amazon VPC 콘솔을 엽니다.
  2. 탐색 창의 [가상 사설 클라우드(Virtual Private Cloud)]에서 [라우팅 테이블(Route Tables)]을 선택합니다.
  3. S3 연결 문제가 있는 VPC 서브넷과 연결된 라우팅 테이블을 선택합니다.
  4. [경로(Routes)] 보기를 선택합니다.
  5. 게이트웨이 VPC 엔드포인트를 사용하는 Amazon S3에 대한 경로가 있는지 확인합니다.

보안 그룹 아웃바운드 규칙

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창의 [네트워크 및 보안(Network & Security)] 아래에서 [보안 그룹(Security Groups)]을 선택합니다.
  3. 리소스 목록에서 Amazon S3에 연결하는 데 사용하는 인스턴스와 연결된 보안 그룹을 선택합니다.
  4. [아웃바운드(Outbound)] 보기에서 사용 가능한 아웃바운드 규칙이 Amazon S3으로의 트래픽을 허용하는지 확인합니다.

기본 아웃바운드 규칙은 모든 아웃바운드 트래픽을 허용합니다. 보안 그룹에 기본 아웃바운드 규칙보다 더 제한적인 규칙이 있는 경우 다음 중 하나를 추가합니다.

자세한 내용은 보안 그룹 수정을 참조하세요.

네트워크 ACL 규칙

  1. Amazon VPC 콘솔을 엽니다.
  2. 탐색 창의 [보안(Security)]에서 [네트워크 ACL(Network ACLs)]을 선택합니다.
  3. 리소스 목록에서 S3 연결 문제가 있는 VPC 서브넷과 연결된 네트워크 액세스 제어 목록(네트워크 ACL)을 선택합니다.
  4. [인바운드 규칙(Inbound Rules)] 보기에서 규칙이 임시 TCP 포트 1024-65535에서 Amazon S3의 인바운드 리턴 트래픽을 허용하는지 확인합니다.
  5. [아웃바운드 규칙(Outbound Rules)] 보기에서 규칙이 Amazon S3로 트래픽을 허용해야 합니다.
참고: 기본적으로 네트워크 ACL은 모든 인바운드 및 아웃바운드 IPv4 트래픽을 허용합니다. 또한 네트워크 ACL은 해당되는 경우 모든 인바운드 및 아웃바운드 IPv6 트래픽을 허용합니다. 네트워크 ACL 규칙이 트래픽을 제한하는 경우 Amazon S3에 대한 CIDR 블록(IP 주소 범위)을 지정해야 합니다.

게이트웨이 VPC 엔드포인트 정책

중요: 엔드포인트는 현재 교차 리전 요청을 지원하지 않습니다. 엔드포인트가 버킷과 동일한 리전에 있는지 확인합니다. get-bucket-location 명령을 사용하여 버킷의 위치를 찾을 수 있습니다.

  1. Amazon VPC 콘솔을 엽니다.
  2. 탐색 창의 [가상 사설 클라우드(Virtual Private Cloud)]에서 [엔드포인트(Endpoints)]를 선택합니다.
  3. 리소스 목록에서 S3 연결 문제가 있는 VPC 서브넷과 연결된 엔드포인트를 선택합니다.
  4. [정책(Policy)] 보기를 선택합니다.
  5. 엔드포인트 정책을 검토합니다. 정책이 연결 문제의 영향을 받는 S3 버킷 또는 AWS Identity and Access Management(IAM) 사용자에 대한 액세스를 차단하는지 확인합니다. 필요한 경우 S3 버킷 또는 IAM 사용자에 대한 액세스를 활성화하도록 정책을 편집합니다. 자세한 내용은 Amazon S3에 대한 엔드포인트 정책 사용을 참조하세요.

S3 버킷 정책

  1. Amazon S3 콘솔을 엽니다.
  2. 연결 문제가 있는 S3 버킷을 선택합니다.
  3. [권한(Permissions)] 보기를 선택합니다.
  4. [버킷 정책(Bucket Policy)]을 선택합니다.
  5. 버킷 정책이 연결하려는 게이트웨이 VPC 엔드포인트 및 VPC에서 액세스를 허용해야 합니다. 게이트웨이 VPC 엔드포인트와 VPC에서 액세스를 활성화하도록 정책을 편집합니다. 자세한 내용은 Amazon S3 버킷 정책 사용을 참조하세요.

참고: 버킷 정책은 Amazon VPC의 인스턴스와 연결된 특정 퍼블릭 IP 주소 또는 탄력적 IP 주소에서 액세스만 제한할 수 있습니다. 인스턴스와 연결된 프라이빗 IP 주소를 기반으로 액세스를 제한할 수는 없습니다. 자세한 내용은 특정 IP 주소에 대한 액세스 제한을 참조하세요.

프록시 서버를 사용하는 경우 이를 통해 VPC 연결이 허용되어야 합니다. S3에 대한 프록시 서버를 사용하지 않는 경우 S3 버킷에 액세스할 때 다음 명령을 사용하여 프록시 서버를 무시합니다.

export no_proxy = mybucket.s3.us-west-2.amazonaws.com

참고:  "us-west-2"를 해당 리전으로 바꿔야 합니다.

IAM 정책

  1. AWS IAM 콘솔을 엽니다.
  2. 인스턴스에서 S3 버킷에 액세스하는 데 사용되는 IAM 사용자 또는 역할을 선택합니다.
  3. [권한(Permissions)] 보기를 선택합니다.
  4. IAM 사용자 또는 역할에 연결된 사용자에게 Amazon S3에 액세스하기 위한 올바른 권한이 있어야 합니다. 자세한 내용은 Amazon S3 버킷 액세스를 특정 IAM 역할로 제한하는 방법사용자 정책으로 버킷에 대한 액세스 제어를 참조하세요.

AWS CLI 구성

AWS CLI를 구성하고 기본 AWS 리전을 설정합니다. aws configure 명령을 사용하여 기본 리전 이름을 지정합니다. 또는 다음과 같은 경우 각 AWS CLI 명령에서 --region 옵션을 설정할 수 있습니다.

  • 기본 리전을 지정하지 않으려는 경우
    또는
  • 기본 리전을 재정의하려는 경우

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?