보안 파일 전송 프로토콜(SFTP)이란 무엇인가요?
Secure File Transfer Protocol이란 무엇인가요?
Secure File Transfer Protocol(SFTP)은 연결된 시스템 간에 파일을 안전하게 전송하기 위한 표준 네트워킹 프로토콜입니다. 네트워크 프로토콜은 네트워크에 연결된 장치들이 사용하는 특정 하드웨어나 소프트웨어와 관계없이 공통 언어 역할을 하는 일련의 규칙입니다. SFTP는 파일 전송에 인증과 암호화를 추가하여 조직이 파일을 안전하게 공유하고, 민감한 파일 데이터에 대한 규제 준수 요구 사항을 충족할 수 있도록 합니다.
Secure File Transfer Protocol은 왜 중요한가요?
데이터 보안과 기밀성은 기업의 로컬 영역 네트워크(LAN) 내에서든 인터넷을 통해서든 모든 네트워크에서 파일을 전송할 때 기본적인 요구 사항입니다. Secure File Transfer Protocol은 HTTPS (하이퍼텍스트 전송 프로토콜 보안) 와 같은 다른 일반적인 네트워크 보안 프로토콜과 함께 사용되어 네트워크 수준에서 파일 데이터 보안을 보장합니다.
SFTP는 전통적인 파일 전송 방식인 File Transfer Protocol(FTP)을 대체하기 위해 개발되었습니다. SFTP는 Git, VSCode, Ansible, WordPress, AWS Transfer Family와 같은 전 세계에서 널리 사용되는 많은 애플리케이션에서 민감한 파일을 전송하는 데 사용됩니다.
SFTP에서 S는 무엇인가요?
SFTP는 Secure Shell(SSH) 연결 프로토콜을 사용하기 때문에 SSH File Transfer Protocol이라고도 합니다. S는 Secure와 Secure Shell을 모두 의미할 수 있습니다.
SSH
SSH 프로토콜은 네트워크 통신에 필요한 인증 기반 암호화 연결 프로토콜입니다. SSH는 TCP(전송 제어 프로토콜)를 통한 보안 데이터 전송, 인증, 연결을 처리합니다. TCP는 주요 인터넷 전송 프로토콜 중 하나입니다.
SSH는 네트워크 상에서 두 당사자 간에 세션이 설정된 후에는 중간에 있는 누군가가 공유되는 기밀 통신을 해독하지 못하도록 보장합니다. 예를 들어, 네트워크 상의 리스너는 Secure Shell 암호화를 통해 전송되는 비밀번호나 개인 식별 정보(PII)를 볼 수 없습니다.
SSH는 클라이언트(사용자)에게 원격 서버에서 기본 명령을 실행할 수 있는 권한을 부여하지만, 파일 전송 및 조작 기능은 제공하지 않습니다. 파일의 안전한 데이터 전송과 파일 조작 작업을 위해 SSH는 SFTP와 결합한 계층적 접근 방식이 필요합니다.
Secure File Transfer Protocol은 어떻게 작동하나요?
SFTP를 사용하면 사용자가 서버 파일 및 폴더를 전송, 수신, 조작할 수 있기 때문에 연결 손상으로 인한 정보 유출 위험을 줄일 수 있습니다. SFTP는 모든 파일 콘텐츠와 명령을 암호화하고 전송 중에 해독할 수 없도록 하여 파일 전송 규제 준수를 보장합니다.
클라이언트-서버 아키텍처
SFTP 프로토콜은 통신에 SSH 클라이언트-서버 아키텍처 모델을 사용합니다. 이러한 아키텍처 모델은 클라이언트가 세션을 시작하더라도 서버가 연결, 리소스 공급, 보안을 제어할 수 있게 해줍니다.
퍼블릭 및 프라이빗 키 인프라
SFTP는 퍼블릭 및 프라이빗 SSH 키를 사용하여 클라이언트와 서버 간의 세션을 인증합니다. SSH 키 인프라를 사용하면 SFTP 클라이언트와 SFTP 서버만 관련된 보안 관리 오버헤드를 최소화할 수 있습니다.
포트 22 기본 설정
SFTP는 기본적으로 TCP를 통한 SSH 연결에서 안정적인 데이터 전송을 위해 포트 22를 사용합니다. 그러나 기존에 포트 22에서 연결이 있는 경우, SFTP에서 다른 포트를 지정하는 것도 가능합니다.
중단된 전송 재개
SFTP는 중단된 세션으로 인해 일시 중지된 파일 전송을 사용자가 다시 이어서 수행할 수 있도록 합니다. 파일 전송 재개 기능은 연결이 불안정하더라도 생산성을 높여줍니다.
일반적인 SFTP 명령에는 어떤 것이 있나요?
사용자는 명령줄 인터페이스(CLI)를 통해 또는 SFTP가 내장된 앱에서 클릭스루 워크플로를 따라서 SFTP 명령을 수행할 수 있습니다. Windows, Mac, Linux 사용자는 모두 쉘 앱을 통해 SFTP 명령줄에 액세스할 수 있습니다. 다음은 bash 쉘을 사용하는 유용한 SFTP 명령줄입니다.
SFTP 세션 시작 및 종료
sftp 사용자@hostname 예: sftp dan@example.com
example.com 서버에서 새 SFTP 연결을 엽니다. 쉘의 명령 프롬프트가 sftp>로 변경되어 세션이 시작되었음을 의미합니다. 이 명령줄에는 다음과 같은 다양한 옵션을 포함할 수 있습니다.
- -P [number]를 사용하여 포트 번호를 지정합니다
- -i [file]을 사용하여 개인 키 파일을 포함하고
- -r을 눌러 재귀 디렉토리 전송을 활성화합니다.
sftp 종료는 SFTP 세션을 종료합니다.
파일 전송
get server_path_and_filename local_path는 서버에서 지정된 디렉터리로 지정된 파일을 복사합니다.
예: /projects/marketing/proposal.txt /newopportunities를 얻으세요
put local_path_and_filename server_path는 로컬 파일을 지정된 서버 디렉터리로 전송합니다.
예를 들어 /finances/invoices/march.txt /projects/marketing/payments를 입력하세요
마찬가지로 reget 및 reput 명령은 중단된 전송을 재개합니다.
원격 파일 관리
- chown user path는 서버의 지정된 경로에 있는 파일이나 폴더의 소유권을 지정된 사용자로 변경합니다.
- chmod number path는 서버의 지정된 경로에 있는 파일이나 폴더의 권한을 변경합니다.
- ls는 현재 서버 디렉터리의 파일 및 폴더 목록을 보여 줍니다.
- cd path는 서버의 지정된 디렉토리로 이동합니다.
- mkdir dir_name은 서버에 새 폴더를 만듭니다.
- rmdir dir_name는 서버에서 지정된 폴더를 제거합니다.
- rename old_file_name new_file_name은 서버에 있는 지정된 파일의 이름을 바꿉니다.
- pwd는 서버의 현재 디렉터리를 보여줍니다.
- lpwd는 현재 로컬 디렉터리를 보여줍니다.
SFTP는 다른 파일 전송 프로토콜과 어떻게 다른가요?
SFTP는 다양한 표준 파일 전송 프로토콜 중 하나입니다.
SFTP vs. FTPS
FTP Secure(FTPS)은 File Transfer Protocol 위에 Transport Layer Security(TLS) 프로토콜과 Secure Socket Layer(SSL) 프로토콜을 사용하여 보안 파일 전송을 수행합니다. FTPS를 사용한 인증은 SSL 인증서 관리 방식을 기반으로 합니다. FTPS는 주로 더 이상 사용하지 않는 것으로 간주됩니다.
FTPS는 FTP를 기반으로 하는 반면, SFTP는 보다 안전한 구조로 FTP를 대체하기 위해 도입되었습니다. SFTP는 단순성, 보안성, 클라우드 지원 덕분에 오늘날 FTPS보다 훨씬 더 널리 사용됩니다.
SFTP vs. TFTP
Trivial File Transfer Protocol(TFTP)은 클라이언트-서버 아키텍처를 활용하는 파일 전송을 위한 경량 프로토콜입니다. TFTP에는 내장된 보안 기능이 없으므로 일반 환경에서 파일을 전송할 때는 보안 프로토콜이나 보호 장치와 함께 사용해야 합니다.
SFTP가 다양한 애플리케이션에서 사용되는 반면, TFTP는 일반적으로 새로운 하드웨어, 펌웨어 및 운영체제를 설정하거나 부팅할 때 로컬의 안전한 네트워크에서만 직접 사용됩니다.
SFTP를 사용하는 모범 사례에는 어떤 것들이 있나요?
키 회전과 SFTP 서버에서의 안전한 저장이 포함하는 공개-개인 키 관리에 대한 모범 사례를 따르세요. SFTP 서버가 항상 최신 보안 업데이트와 패치를 적용받고 있는지 확인하고, AES와 같은 강력한 암호화를 사용해야 합니다. 이상 탐지 및 대응을 위해 성공적인 파일 전송과 실패한 액세스 시도를 기록하세요.
SFTP는 네트워크 보안의 한 부분일 뿐임을 기억하세요. 방화벽, 침입 탐지 시스템, 기타 보안 조치는 사용자의 특정 네트워크 구조에 맞게 구성되어야 합니다.
AWS는 파일 스토리지 요구 사항을 어떻게 지원할 수 있나요?
Amazon은 다양한 보안 파일 스토리지 및 보안 파일 전송 솔루션을 제공합니다.
Amazon S3는 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 객체 스토리지입니다. 이를 사용하면 파일을 포함한 모든 양의 데이터를 언제 어디서나 저장하고 가져올 수 있으며, 자동 파일 전송도 지원됩니다.
Amazon Elastic File System(EFS)은 Amazon Elastic Compute Cloud(EC2) 인스턴스 및 기타 AWS 클라우드 서비스에 액세스할 수 있는 파일 시스템을 생성할 수 있는 완전 탄력적인 서버리스 클라우드 파일 스토리지를 제공합니다. 강력한 데이터 일관성, 파일 잠금 등의 파일 시스템 액세스 시멘틱을 완벽하게 지원합니다. 스토리지를 스토리지 용량 및 성능을 프로비저닝하거나 관리할 필요 없이 파일 데이터를 공유할 수 있습니다.
AWS Transfer Family는 SFTP, AS2, FTPS, FTP 및 웹 브라우저를 통해 Amazon S3 또는 Amazon EFS의 파일을 안전하게 송수신할 수 있는 완전관리형 지원을 제공합니다. 인증, 액세스 및 방화벽에 대해 기존 클라이언트 측 구성을 유지하여 파일 전송 워크플로를 원활하게 마이그레이션, 자동화 및 모니터링할 수 있으므로 고객, 파트너 및 내부 팀 또는 애플리케이션에 대한 변경 사항은 없습니다.
지금 무료 계정을 만들어 AWS에서 데이터 스토리지를 시작하세요.