AWS VPC 엔드포인트 보안그룹송신 규칙

AWS VPC 엔드포인트 보안그룹송신 규칙

AWS VPC 엔드포인트를 사용하여 S3 리소스에 액세스하려고 하는데 운이 좋지 않습니다. 도와주실 수 있나요?

세부:

보안 그룹 내에 EC2 인스턴스가 있습니다. 이는 인터넷 엔드포인트와 0.0.0.0/0에 대한 라우팅 테이블 항목이 있는 VPC 및 서브넷 내부에 있습니다. 그러나 저는 이 특정 EC2 인스턴스가 인터넷과 통신하는 것을 원하지 않지만 다음 위치에 있는 S3 버킷과 통신할 수 있기를 원합니다.https://s3-eu-west-1.amazonaws.com/XXXXX/YYYYYY.sh.

이에 대한 응답으로 securityGroup의 기본 송신 허용 규칙을 오버로드하여 포트 22에 송신 규칙을 추가하여 아웃바운드 연결을 거부했습니다. Amazon 설명서에 따르면 로컬(개인) AWS 주소는 계속 허용됩니다. 이를 염두에 두고 VPC에 VPC 엔드포인트를 추가하고 라우팅 테이블을 pl-6da54004(com.amazonaws.eu-west-1.s3) :: vpce-9f47a1f6으로 업데이트했습니다.

이렇게 하면 EC2 인스턴스 내에서 S3 리소스에 액세스할 수 없습니다. 나는 노력하고 wgethttps://s3-eu-west-1.amazonaws.com/XXXXX/YYYYYY.sh운없이.

무엇이 잘못되었는지 아시나요? 내 생각은 다음과 같습니다.

  • 내 ec2 인스턴스는 S3 도메인을 54.231.130.244로 확인하는 것 같지만 모든 인스턴스에서 동일하지는 않습니다. S3 IP 범위에 대한 securityGroupEgress 규칙이나 경로를 추가해야 합니까? 그렇다면 그 범위는 얼마나 됩니까?
  • 아마도 내부 IP 주소로 확인되는 다른 도메인 이름을 통해 S3 리소스에 액세스해야 할까요?

고마워요, 토비

답변1

첫째, 약간의 배경지식입니다. VPC 인스턴스용 DNS 해석기는 인프라에 내장된 가상 구성 요소입니다. 아웃바운드 보안 그룹 규칙의 영향을 받지 않습니다. 하지만 VPC에 S3 엔드포인트를 프로비저닝할 때 S3 엔드포인트에 대한 호스트 이름 확인은 변경되지 않습니다.

S3용 VPC 엔드포인트가 수행하는 작업은 몇 가지 다른 작업입니다. 이러한 것들이 무엇인지 이해하는 것이 필요한 것을 수행할 수 있는지 이해하는 데 중요합니다. tl;dr: 이 경우에는 그럴 것입니다.

먼저 경로 테이블에 "접두사 목록"으로 구성되어 있음을 알 수 있습니다. VPC 엔드포인트는 미리 정의된 IPv4 네트워크 접두사 세트를 사용하고 해당 접두사 목록을 포함하는 모든 라우팅 테이블에 대해 해당 접두사에 대한 경로를 하이재킹하여 해당 네트워크에 대한 트래픽이 인터넷 게이트웨이 대신 VPC 엔드포인트를 통과하도록 합니다. 중간 NAT 인스턴스.

본질적으로 이는 VPC에서 AWS 서비스의 IP 주소 범위로 나가는 새로운 경로를 열어줍니다. 그러나 해당 IP 주소가 처음에 이동하는 위치는 아니며 VPC 엔드포인트 없이 이동하는 위치와 동일하지 않습니다.

처음 쳤던 곳S3랑 똑같이 생겼다하지만 인터넷 연결 S3와 동일하지는 않습니다. VPC 엔드포인트의 정책을 알고 있으므로 액세스 가능한 버킷과 작업을 제어할 수 있기 때문입니다. 이는 다른 정책을 재정의하는 것이 아니라 이를 강화합니다.

엔드포인트 정책은 IAM 사용자 정책 또는 S3 버킷 정책을 재정의하거나 대체하지 않습니다. 엔드포인트에서 지정된 서비스로의 액세스를 제어하기 위한 별도의 정책입니다. 그러나 IAM 사용자 정책, 엔드포인트 정책, S3 정책 및 Amazon S3 ACL 정책(있는 경우) 등 모든 유형의 정책은 Amazon S3에 대한 액세스가 성공하는 데 필요한 권한을 부여해야 합니다.

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html#vpc-endpoints-access

적절한 정책으로 버킷 액세스를 제한하지 않고 전체 액세스를 활성화하는 경우, 인스턴스는 퍼블릭 버킷을 포함하여 버킷 정책에서 허용하는 경우 S3 리전의 모든 버킷에 액세스할 수 있습니다.

이제 까다로운 부분입니다. 기본 "허용" 규칙이 제거되었기 때문에 인스턴스의 보안 그룹이 S3에 대한 아웃바운드 액세스를 허용하지 않는 경우 특별히 제작된 보안 그룹 규칙을 사용하여 인스턴스가 VPC 엔드포인트를 통해 S3에 액세스하도록 허용할 수 있습니다.

보안 그룹에 새 아웃바운드 규칙을 추가합니다. "유형"으로 HTTPS를 선택합니다. 대상으로 "사용자 지정 IP"를 선택합니다.

문서가 콘솔에 표시된 내용과 일치하지 않습니다.

대상 목록에는 사용 가능한 AWS 서비스의 접두사 목록 ID와 이름이 표시됩니다.

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html#vpc-endpoints-security

음... 아니, 그렇지 않습니다. 적어도 이 글을 쓰는 시점에서는 나에게는 그렇지 않습니다.

pl-xxxxxxxx해결 방법은 "사용자 지정 IP"를 선택한 다음 IP 주소 블록이나 보안 그룹 ID 대신 IP 주소 상자에 형식으로 VPC 엔드포인트의 접두사 목록 ID를 입력하는 것입니다 . VPC 엔드포인트와 연결된 서브넷 중 하나의 대상을 보면 VPC 콘솔에서 이를 찾을 수 있습니다.

관련 정보