본문 바로가기
CSP (Cloud Service Provider)/AWS

VPC Endpoint와 S3

by BTC_작은뉴진 2023. 9. 5.

안녕하세요 ;)

뉴진쓰의 작은유진입니다.

 

오늘은 VPC Endpoint와 S3에 대해 알아볼게요~!


AWS PrivateLink를 사용하면 VPC를 서비스에 비공개로 연결하여 서비스를 VPC에 있는 것처럼 이용할 수 있습니다.

위의 예는 애플리케이션 서비스가 Amazon S3에 액세스해야 할 수 있는 두 가지 시나리오를 나타냅니다.

 

일반적으로 VPC 내에서 Amazon S3에 액세스하려면 Amazon S3가 VPC의 일부가 아니기 때문에 인터넷 게이트웨이를 통과해야 하는데요,

AWS 서비스에 액세스하기 위해 인터넷을 통과해야 하는 것은 아무래도 안전하지 않은 방법일 수 밖에 없습니다.

 

그리고 AWS 네트워크를 떠나지 않고도 VPC에서 Amazon S3와 같은 서비스에 연결할 수 있는 VPC 엔드포인트가 도입되었습니다.

 

Amazon S3에 의해 노출된 VPC 엔드포인트를 사용하면 서비스가 AWS 네트워크를 벗어나지 않고도 Amazon S3 서비스와 직접 상호 작용할 수 있습니다.

 

 

이제 이 내용을 직접 실습해 보겠습니다.

1. 우선 VPC와 VPC내의 프라이빗 인스턴스, 그리고 퍼블릭 엑세스가 차단된 버킷을 만들어 주었습니다.

프라이빗 인스턴스에서 S3 버킷 내의 객체를 보려고 하지만 시간이 지나도 객체를 확인 할 수 없습니다.

반면에, 퍼블릭 인스턴스에서는 인터넷을 사용하므로 객체를 확인할 수 있는 것을 볼 수 있습니다.

 

2. 엔드포인트를 생성합니다.

VPC > 엔드포인트

서비스 범주는 AWS 서비스를,

서비스는 s3 서비스를 선택해 줍니다.

참고로 엔드포인트 유형에는 Gateway와 Interface가 있는데요,

오늘은 Gateway를 사용해 보겠습니다.

 

이제 엔드포인트를 생성한 VPC로 아까 생성한 VPC를 선택 후 라우팅 테이블까지 선택해 보겠습니다.

 

마지막으로 액세스를 제어할 정책을 생성하여 원하는 버킷에 있는 객체에 접근이 가능하게 하겠습니다.

{
	"Statement": [
		{
			"Action": "s3:*",
			"Effect": "Allow",
			"Principal": "*",
			"Resource": "arn:aws:s3:::bucket-yujin-test"
		}
	]
}

 

3. 객체 접근 가능 여부를 테스트 합니다.

그리고 정책 없는 버킷에는 접근이 불가능한 것 까지 확인했습니다.

 


오늘은 VPC Endpoint를 사용하여 인터넷 게이트웨이를 거치지 않고도 S3에 접근하는 것을 실습해 보았습니다.

 

다음에도 재미있는 주제로 만나요!

베빠!!!

댓글