VPC 사설망에서 S3에 연결

2893 단어 vpcS3AWS
전통적으로 VPC의 인스턴스에서 S3에 연결하려면 인스턴스가 공용 네트워크에 있어야 했습니다. 그러나 VPC 엔드포인트라는 특별한 뒷문이 생겼기 때문에 사설망의 인스턴스도 이 뒷문에서 S3에 연결할 수 있게 되었습니다.

VPC의 사설망에서 S3에 연결하는 방법



1 VPC 엔드포인트 생성



1-1: VPC 콘솔 > 엔드포인트 생성



1-2: VPC 선택

*VPC-ID : VPC 엔드포인트 = 1:1

1-3: 버킷 정책 설정

이번은 Full Access의 설정으로 했습니다. 특정 버킷에 대한 통신만 허용하는 경우 여기에서 정책을 추가하는 것이 좋습니다.



1-4: 끈 라우팅 테이블 선택

*인터넷 게이트웨이에 연결되어 있지 않은 로컬 NW만 통신 가능한 라우팅 테이블을 선택해 주세요



그러면 라우팅 테이블이 다음과 같이 업데이트됩니다.



이상으로 설정은 끝입니다!

주의점



【설정시의 이야기】
VPC 엔드포인트를 설정할 때 기존 인스턴스에서 S3로의 연결이 끊어진다고 합니다(미확인). 설정시 타이밍을 예측하면 좋을 것 같습니다.

【버킷 정책 이야기】
전통적으로 S3 연결의 IP 제한은 버킷 정책에 CIDR을 설명했습니다.

문서에는

When using Amazon S3 endpoints, you cannot use a bucket policy or an IAM policy to allow access from a VPC CIDR range (the private IP address range). VPC CIDR blocks can be overlapping or identical, which may lead to unexpected results

그리고 Source-IP가 사설 IP가 되었기 때문에 IP 제한을 직접 버킷 정책에 쓰지 말아라. 특정 인스턴스에서 S3 연결을 허용하려면 Security-Group의 outband 규정을 좁히는 등 다른 방법으로 피할 수 있습니까?

2 확인



다음과 같이 인터넷에 통신 할 수없는 상태입니다.
[root@ip-172-31-6-140 ~]# curl https://www.google.co.jp/curl: (7) Failed to connect to 2404:6800:4008:c01::5e: Network is unreachable
[root@ip-172-31-6-140 ~]#

안전하게 s3에있는 이미지 파일을 DL 할 수있었습니다.
[root@ip-172-31-6-140 ~]# aws s3 cp s3://test-3-shake.com/20150305051314_thumb.jpg .
download: s3://test-3-shake.com/20150305051314_thumb.jpg to ./20150305051314_thumb.jpg
[root@ip-172-31-6-140 ~]#

통신 내용을 tcpdump하고 wireshark에서 보았습니다.





S3와의 통신 내용을 tcpdump 해 보았습니다. 보시다시피 S3 (54.231.230.6)는 인터넷을 통해 연결되어 있음을 알 수 있습니다. (퍼블릭 네트워크에서 S3에 연결했을 때와 다르지 않습니다)

프라이빗 네트워크 내의 인스턴스와 S3와의 접속 자체가 로컬 통신(= 접속 속도 빨라지는)인 것을 기대하고 있었습니다만, 그러한 것은 아닌 것 같습니다.

보안 요구 사항이 엄격하고 사설 네트워크의 인스턴스에서 S3로 NAT 인스턴스를 통해 연결하는 분들에게 매우 기쁜 소식이라고 생각합니다!

좋은 웹페이지 즐겨찾기