율코딩

AWS Transfer Family 로 SFTP 서버 구축하기 본문

aws

AWS Transfer Family 로 SFTP 서버 구축하기

레아킴 2023. 3. 19. 18:52
반응형
AWS Transfer Family : AWS Transfer Family는 SFTP, FTPS, FTP 및 AS2 프로토콜을 사용하여 Amazon 심플 스토리지 서비스 (Amazon S3) 또는 Amazon 엘라스틱 파일 시스템 (Amazon EFS) 파일 시스템에서 파일을 송수신하는 데 사용할 수 있는 서비스입니다.

 

SFTP란?
SFTP는 인터넷을 통해 데이터를 안전하게 전송하는 데 사용되는 네트워크 프로토콜인 SSH(Secure Shell) File Transfer Protocol의 약자입니다. 
이 프로토콜은 SSH의 모든 보안 및 인증 기능을 지원하며, 금융 서비스, 의료 서비스, 미디어 및 엔터테인먼트, 소매 및 광고 등 다양한 산업에서 비즈니스 파트너 간 데이터 교환에 널리 사용됩니다.

 

1.  Architecture

AWS Transfer Family 를 활용하여 SFTP 서버를 구축하고 AWS S3와 Snowflake를 연동하여 자유롭게 Snowflake에서 데이터를 S3 내보내거나 로드할 수 있도록 합니다. 또 AWS Transfer Family 와 Cloudwatch를 연동하여 서버 모니터링 및 유저 활동 로그를 기록하고도록 합니다.

 

구성

  • AWS Transfer Family
  • VPC
  • CloudWatch
  • S3

 

SFTP Architecture

 

 

 

 

2.  AWS Transfer Family 구성하기

1. SFTP 서버 생성

 

2. SFTP 프로토콜을 선택

 

3. 외부에서 접속할 사용자를 직접 생성하기 위해서 자격 증명 공급자에서 서비스 관리형을 선택

 

4-1. SFTP에 접근할 엔드포인트를 선택

보안그룹을 사용하여 액세스를 제어하기 위해서 VPC 호스팅을 선택합니다.

또 외부에서 접근하기 위해 인터넷 연결을 선택합니다.

 

4-2. 선택한 VPC의 가용영역을 선택하고 엔드포인트로 이용한 EIP를 지정

 

vpc가 없다면 vpc 생성을 눌러서 vpc와 subnet를 먼저 생성해줘야합니다.

또한, 지정한 IP주소 외에는 접근할 수 없도록 하기 위해서는 보안그룹을 생성하여 인바운드 규칙을 만들어야합니다.

 

 

 

5. 도메인 선택

 

 

6. CloudWatch 로그를 남기기 위해서 역할을 생성하거나 권한이 있는 기존 역할 중 선택

 

7. SFTP 서버 생성 완료

 

 

 

8. S3 버킷 생성

SFTP 서버와 연결하여 데이터를 송수신할 S3 버킷을 생성합니다.

 

9. 생성한 서버에 액세스를 위한 사용자를 추가

 

9-1. 사용자 역할과 액세스할 S3를 선택하고 SFTP접근 시 이용한 퍼블릭키를 입력

정보를 클릭하여 사용자에 대한 SSH 키 페어를 생성하는 방법을 보고 따라한 후 해당 빈칸에 SSH 퍼블릭 키를 입력합니다.

 

 

9-2. 사용자의 역할에는 신뢰관계와 접속하려는 S3에 대한 접근 권한과 CloudWatch 로그 권한 필요

 

 

 

9. 생성한 사용자와 엔드포인트를 이용하여 S3에 접속

 

 

10. SFTP 클라이언트 연결 방법

 

Case 1. 터미널 이용

  1. ssh key 파일을 저장합니다.
  2. Window cmd 혹은 mac (iterm2) 에서 sftp -i 키파일경로 접속아이디@접속주소(서버엔드포인트 or public ip)
sftp -i sftp-key 사용자명@퍼블릭 IPv4 주소
 sftp -i sftp-key 사용자명@서버엔드포인트주소

 

Case 2. Cyberduck 이용

  1. cyberduck 설치하기
  2. 연결하기
    • 서버에 엔드포인트 주소와 사용자를 입력하고 SSH 개인키를 이용하여 S3에 액세스합니다.
 
 

 

반응형
Comments