여기서 언급하는 S3 VPC Endpoint는 Gateway Type을 의미한다.
AWS 프로젝트를 진행하면서 S3 VPC Endpoint를 안 쓴 곳이 없을 정도로 많은 곳에서 S3를 이용했고
Private 하게 접근하기를 원했다.
Q1. S3 VPC Endpoint를 A VPC에 생성하면 A VPC 내 모든 서버는 S3에 접근할 때 S3 VPC Endpoint를 거치는가?
No.
S3 VPC Endpoint에서 연결한 라우팅 테이블을 참조하는 트래픽일 경우에만 S3 VPC Endpoint를 거친다.
S3 VPC Endpoint에서 연결한 라우팅 테이블을 참조하지 않는 트래픽의 경우 인터넷을 거쳐서 S3에 접근하려고 한다.
Q2. 통상적인 IGW, NAT 존재, Private Subnet, Public Subnet 구성일 때. 그리고 pl-78a54011 라우팅 규칙을 Public subnet에만 추가했을 때, Private Subnet에 존재하는 서버는 S3 VPC Endpoint를 사용하는가? IGW를 통해서 나가는가?
[테스트 환경]
Public Subnet : NAT 존재, Public Routing Table, IGW 제거함.
Private Subnet : 서버 존재, Private Routing Table, 0.0.0.0/0은 NAT로 라우팅
S3 VPC Endpont : Public Routing Table에만 연결
위 환경에서 서버에서 S3로 접근할 경우, NAT를 타고 Public 라우팅테이블을 참조하여 S3 VPC Endpoint 규칙을 보고 VPC Endpoint로 나감.
Q3. S3 VPC Endpoint는 Public 라우팅 테이블에 연결해도 되나?
Yes.
여기서 Public 라우팅 테이블이란 0.0.0.0/0 -> Internet Gateway
규칙을 가지는 테이블을 의미한다.
Public 라우팅 테이블에 연결해도 잘 작동한다.
Q4. S3 VPC Endpoint를 사용하도록 라우팅테이블을 추가하면 기존 S3 통신이 끊길 수 있나?
Yes.
아래와 같이 안내되어있다.
When you use an endpoint, the source IP addresses from your instances in your affected subnets for accessing the AWS service in the same region will be private IP addresses, not public IP addresses. Existing connections from your affected subnets to the AWS service that use public IP addresses may be dropped. Ensure that you don’t have critical tasks running when you create or modify an endpoint.
S3 VPC Endpoint에서 라우팅 테이블 추가하는 작업. 즉, 라우팅 테이블 규칙이 변경되는 작업은 기존 S3 통신이 끊길 수 있다고 한다.
기존에 S3를 사용하고 있는 시스템은 없는지 확인이 필요하다.
이건 확실하지는 않은데 라우팅 테이블을 연결하지 않고 S3 VPC Endpoint 생성까지는 괜찮을 것 같다.
왜냐면 위 경고문은 S3 VPC Endpoint에서 라우팅 테이블 편집할 경우 나오는 경고문이다.
(라우팅 테이블 아무것도 선택 안 하고 S3 VPC Endpoint 생성 테스트 해봄. 가능)
Q5. S3 VPC Endpoint Prefix List(pl-78a54011)는 Public IP 대역이던데 Private 하게 통신되는 것이 맞나요?
Yes.
예전에 AWS Support에 문의한 결과 Private하게 통신되는 것이 맞다고 한다.
Public IP이더라도 S3 VPC Endpoint로 라우팅 되기 때문에 S3에 접근할 경우 인터넷망을 거치지 않고 Private 하게 통신한다는 답변을 받음.
Q6. 서버에서 S3 VPC Endpoint로 아웃바운드를 허용하고 싶은데 꼭 TCP 443 0.0.0.0/0으로 열어야 하나?
S3 VPC Endpoint를 사용하면 AWS 관리형 접두사 목록(Managed prefix list)을 제공한다.
AWS 콘솔에서 VPC > 관리형 접두사 목록에서 확인할 수 있다.
2024.10.16 기준 S3 VPC Endpoint 관리형 접두사 목록은 pl-78a54011이라는 ID로 제공되고 있다.
보안 그룹 규칙을 설정할 때, IP 기반, 보안그룹 기반 그리고 접두사 목록 기반으로 추가할 수 있다.
따라서 TCP 443 pl-78a54011
로 아웃바운드를 허용해 주면 S3 VPC Endpoint를 통해서 S3에 접근 가능한 아웃바운드가 허용된다.
Q7. S3에서 사용하는 IP 대역을 알고 싶어요.
S3에서 사용하는 모든 IPv4 주소
curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="S3") | .ip_prefix'
S3가 us-east-1 AWS 리전에서 사용하는 모든 IPv4 주소
curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="S3") | .ip_prefix'
출처: https://repost.aws/ko/knowledge-center/s3-find-ip-address-ranges
'AWS > S3' 카테고리의 다른 글
[AWS] 유용한 S3 Bucket Policy (0) | 2024.10.07 |
---|