웹사이트 검색

AWS에서 SFTP 지원 서버를 생성하는 방법


AWS Transfer 제품군은 SFTP(Secure File Transfer Protocol), FTPS(File Transfer Protocol over SSL) 및 FTP(File Transfer Protocol)를 지원하여 AWS S3 또는 AWS EFS(Elastic File System)에서 파일을 전송합니다. Amazon Route 53을 통한 DNS 라우팅을 지원합니다. AWS Transfer Family는 자체 FTP 서버를 구매하고 실행하는 데 필요한 오버헤드를 제거하는 대신 파일 인프라를 관리합니다. 자동 확장 용량을 지원하고 고가용성을 유지합니다.

AWS Transfer Family는 실시간으로 확장되는 AWS의 완전 관리형 서비스이며 생성할 필요가 없습니다.

AWS Transfer Family에서 지원하는 3가지 프로토콜을 이해해 보겠습니다.

  1. SFTP 프로토콜: 보안 셸 파일 전송 프로토콜은 인터넷을 통해 데이터를 안전하게 전송하는 데 사용되는 네트워크 프로토콜입니다. 프로토콜은 SSH의 전체 보안 및 인증 기능을 지원합니다.
  2. FTP 프로토콜: 파일 전송 프로토콜(FTP)은 데이터 전송에 사용되는 네트워크 프로토콜입니다. FTP는 제어 및 데이터 전송을 위해 별도의 채널을 사용합니다.
  3. FTPS 프로토콜: SSL을 통한 파일 전송 프로토콜은 FTP의 확장입니다. Transport Layer Security 및 Secure Sockets Layer 암호화 프로토콜을 사용하여 트래픽을 암호화합니다.

공개적으로 액세스 가능한 서버를 생성하거나 VPC에 서버를 생성할 수 있습니다.

또한 AWS Identity and Access Management(IAM) 정책을 사용하여 서버에 대한 액세스를 제어할 수 있습니다. 이러한 정책은 사용자에게 연결된 IAM 역할에 할당될 수 있습니다.

선불 비용이 없으며 사용한 항목과 엔드포인트에 액세스하기 위해 사용 설정한 프로토콜에 대해서만 비용을 지불하면 됩니다. 요금에 대해 알아보려면 여기에서 AWS 공식 페이지를 방문하세요.

이 기사에서는 AWS에서 공개적으로 액세스할 수 있는 SFTP 지원 서버를 생성하는 단계를 살펴봅니다. 이 문서를 진행하기 전에 IAM 역할, EC2 인스턴스 및 S3 버킷에 대해 잘 알고 있다고 가정합니다.

전제 조건

  1. AWS 계정(계정이 없는 경우 생성).
  2. Ubuntu EC2 인스턴스(AWS에서 Ubuntu EC2 인스턴스를 만드는 방법을 알아보려면 여기를 클릭).
  3. S3에 대한 전체 액세스 권한이 있는 IAM 역할(IAM 역할 생성 방법을 알아보려면 여기를 클릭).
  4. S3 버킷(AWS에서 S3 버킷을 생성하는 방법을 알아보려면 여기를 클릭).

우리는 무엇을 할 것인가?

  1. AWS에 로그인
  2. SFTP 서버 만들기
  3. IAM 정책의 신뢰 관계 수정
  4. S3 버킷에 폴더를 생성합니다.
  5. EC2 인스턴스에서 키 쌍을 생성합니다.
  6. SFTP 서버에서 사용자 만들기
  7. SFTP 서버에 대한 연결 테스트
  8. SFTP 서버 삭제

AWS에 로그인

계정에 로그인하기 위해 자격 증명을 입력할 수 있는 로그인 페이지로 이동하려면 여기를 클릭하십시오.

계정에 성공적으로 로그인하면 다음과 같이 기본 AWS 관리 콘솔이 표시되며 원하는 리전을 선택하여 SFTP 서버를 생성할 수 있습니다.

SFTP 서버 만들기

화면 상단 검색창에 \가족이동\을 검색하세요.

다음과 같이 AWS Transfer Family의 기본 대시보드가 표시됩니다. \서버 만들기\ 버튼을 클릭하여 첫 번째 SFTP 서버를 만듭니다.

여기에서 서버에 대해 활성화할 프로토콜을 선택합니다. 여러 프로토콜을 활성화할 수 있지만 여기서는 단일 SFTP 프로토콜로 진행하겠습니다. 계속하려면 \다음\ 버튼을 클릭하십시오.

요구 사항에 따라 끝점 유형을 선택합니다. 엔드포인트에 공개적으로 액세스할 수 있도록 하려면 계속 진행하십시오. \다음\ 버튼을 클릭합니다.

데이터를 저장할 AWS 스토리지 서비스를 선택합니다. 여기서는 Amazon S3로 진행하겠습니다. 계속하려면 \다음\ 버튼을 클릭하세요.

여기에서 기본 옵션으로 진행합니다.

구성을 검토하고 \서버 만들기\ 버튼을 클릭합니다. 이렇게 하면 SFTP 서버가 생성되며 생성 프로세스를 완료하는 데 몇 분 정도 걸립니다.

IAM 정책의 신뢰 관계 수정

다음 단계는 S3 버킷에 대한 전체 액세스 권한이 있는 IAM 정책을 수정하는 것입니다. \IAM 역할 -- > 신뢰 관계\로 이동하여 편집합니다.

서비스를 \transfer.amazonaws.com\으로 변경하면 정책 문서가 다음과 같이 표시됩니다.

S3 버킷에 폴더를 생성합니다.

SFTP 서버의 데이터를 저장하려는 S3 버킷이 있는지 확인하십시오.

EC2 인스턴스에서 키 쌍을 생성합니다.

다음 단계는 SFTP 서버에 인증하는 데 사용할 키 쌍을 만드는 것입니다. Linux 서버로 이동하고 다음 명령을 실행하여 키 쌍을 생성합니다.

ssh-keygen

cat ~/.ssh/id_rsa.pub

다음 단계에 필요한 공개 키를 가져옵니다.

SFTP 서버에서 사용자 생성

SFTP로 이동하여 생성했습니다.

\사용자 추가\ 버튼을 클릭하여 생성한 SFTP 서버를 사용하여 파일을 인증하고 S3로 전송하는 데 사용할 사용자를 생성합니다.

여기서 표시되는 엔드포인트는 데이터 전송을 위해 SFTP 서버에 액세스하는 데 사용됩니다. SFTP 서버에 액세스하는 동안 필요할 이 엔드포인트를 보관하세요.

사용자 이름을 추가하고 IAM 역할을 선택한 다음 S3 버킷과 생성 중인 사용자의 홈 디렉터리 역할을 할 내부 폴더를 선택합니다. 이전 단계에서 복사한 공개 키를 \SSH 공개 키\ 부분에 추가합니다.

페이지를 아래로 스크롤하고 \추가\ 버튼을 클릭하십시오. 이렇게 하면 사용자를 생성하는 동안 추가한 공개 키와 연결된 개인 키가 필요한 사용자가 생성됩니다.

SFTP 서버에 대한 연결 테스트SFTP 서버에 대한 연결 테스트

키 쌍을 생성한 Linux 서버로 이동하고 다음 명령을 사용하여 SFTP 서버에 연결합니다.

여기에서 SFTP 서버에 대해 가지고 있는 것으로 엔드포인트를 변경해야 합니다.

sftp -i ~/.ssh/id_rsa [email azonaws.com

다음 명령에서 사용된 파일이 로컬 시스템에 속하는 경우 다음 명령을 사용하여 파일 업로드를 시도할 수 있습니다.

put /home/ubuntu/test-file

위의 명령은 \/home/ubuntu/test-file\ 파일을 로컬 시스템에서 SFTP 서버로 복사합니다.

위의 \put\ 명령을 사용하여 파일이 S3 버킷에 업로드되었는지 여부를 콘솔에서 확인할 수 있습니다.

SFTP 서버 삭제

SFTP 서버가 더 이상 필요하지 않으면 쉽게 삭제할 수 있습니다. 서버를 삭제하려면 \작업 --> 삭제\를 클릭하십시오.

삭제 작업을 확인하고 \삭제\ 버튼을 클릭하십시오. SFTP 서버를 삭제하면 복원할 수 없으므로 삭제 작업을 수행할 때 주의하세요.

결론

이 기사에서는 S3를 백엔드로 사용하여 SFTP 서버를 생성하는 단계를 살펴보았습니다. 사용자를 생성하고 특정 S3 버킷 --> 폴더를 홈 디렉터리로 할당했습니다. 사용자에게 IAM 역할을 사용하는 데 필요한 변경 사항을 확인했습니다.