Cloud

[AWS] S3 (SaaS 서비스)를 DX, VPN (private)망으로 사용하기

달빛궁전- 2024. 1. 23. 23:37

개요

사무실, IDC에서 public망이 아닌 DX, VPN망을 이용하여 S3를 사용하기 위한 방안작성 입니다.
S3외에도 DynamoDB 같은 SaaS형 서비스에는 적용됩니다.

일반적으로 iaas 서비스는 VPN을 구성하면 그것으로 통신을 하지만, SaaS형 서비스들은 내가 서비스를 설치, 구성하는 것이 아닌 AWS에서 제공해주기에 Public망을 통해서만 연결할 수 있기 때문입니다.
안전한 데이터 흐름을 위한 방안 중 하나라고 볼 수 있습니다.

전체 구성도

구성 특징

On-Premise에서 S3Upload가 가능하도록 설정하며
네트워크 구간의 보안을 위해 Direct Connect, VPN HA구성하여 설계
S3보안성을 강화하기 위해 Access Log  S3 Bucket을 별도로 설정
Private SubnetBestion Host없이 접근하기 위해 Session Manager 사용하여 접속
최소 권한의 원칙으로 꼭 필요한 권한만 부여하는 방안으로 진행

On-Premise to AWS Cloud

on-premise 와 AWS S3간 네트워크

 

네트워크

안전성과 보안성을 최대로 염두에 두고 Direct ConnectVPN을 활용한 연결 진행
Main : Direct Connect L2레벨 암호화
Backup : Site to Site VPN L3
레벨 암호화
TGW를 통해 VPCinterface Endpoint를 이용하여 S3에 접근하도록 설정
 
S3 Interface Endpoint사용하는 이유는 DNS Name을 지원하여, On-premise에서 간단한 DNS설정으로 Public망이 아닌 DX, VPN망을 통해 접속할 수 있기 때문입니다.
 
On-PremiseDNS 설정은 s3.ap-northeast-2.amazonaws.com에 대해 Conditional Forwarders 설정을 하여
AWS Route53 Resolver
에 대한 Inbound Endpoint IP로 설정합니다.
 
S3에 대한 interface Endpoint 설정하여, On-Premise에서 해당 S3버킷에 대해 질의를 하게 되면 DX, VPN으로 연결된 AWS Route53 DNSForward하게 되며 interface Endpoint로 질의에 대한 답을 하게 됩니다.
 
위와 같이 설정하게 되면 외부 Public망이 아닌 DX, VPN망으로 S3 Bucket을 접속할 수 있습니다.

IAM권한 – On-Premise Server

On-premise Server에서 AWS Cloud S3Write 권한을 가지고 Upload
 

적용사항

사용자 생성 후 읽기, 쓰기 권한정책을 적용 후
액세스키를 발급받아, On-Premise Server에서 해당키를 적용
 

권한 정책의 JSON 구성

JSON 정책현황
 

 

Office to AWS Cloud
사무실과 AWS S3간 구성도

네트워크

On-Premise to AWS Cloud연결과 동일하게 Direct ConnectVPN을 활용한 연결 진행
 

IAM권한 – Office(User)

적용사항

사용자 생성 후 읽기만 가능하도록 권한정책을 적용 후 액세스키를 발급받아, 해당키를 적용

권한 정책의 JSON 구성

S3 Bucket에 대한 버킷 리스트와 Bucket내 객체 읽기만 가능하도록 권한부여
Resource
* 모든 정책이 아닌 꼭 적용될 Bucket만 지정하여 권한이 탈취되어도 다른 Resource접근 불가하도록 설정

JSON 정책현황

 

 

 

AWS EC2내에서의 접근

AWS내 EC2 - S3 구성도

네트워크
Private SubnetBestion Host없이 접근하기 위해 Session Manager 사용하여 접속합니다.

 

적용사항
EC2ssm agent설치
Session Manager Private Subnet접속을 위해 Endpoint 3개 설정
EC2에서 gateway endpoint를 통해 public망이 아닌 바로 S3로 접속합니다.

 

참고한 사이트

Amazon S3에 대한 VPC 엔드포인트 전략 선택
https://aws.amazon.com/ko/blogs/architecture/choosing-your-vpc-endpoint-strategy-for-amazon-s3/

S3 Interface Endpoint에 대한 DNS Name 지원
https://devocean.sk.com/blog/techBoardDetail.do?ID=164685&boardType=techBlog

S3PrivateLink
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/privatelink-interface-endpoints.html

Amazon S3에 대한 게이트웨이 엔드포인트
https://docs.aws.amazon.com/ko_kr/vpc/latest/privatelink/vpc-endpoints-s3.html