SFTP 서비스를 이용해 S3에 데이터를 넣고 관리하고자 한다.
SFTP 서버 만들자
<1> 구성
sftp client (Linux,Mac) -------- sftp 서비스 --- s3
1. 테스트 리눅스 서버 1대 생성 (sftp-client)
2. S3 버킷 생성 : 데이터가 s3에 저장 (필수) s3-sftp-access-500 , 디폴트 not public으로
3. S3에 접근할수 있는 권한 생성
IAM role Create > EC2 > s3 full access> s3-sftp-access-500-role > Trust relationships 설정
4. SFTP 서버 생성 (디폴트)
5. SFTP 접속 계정 생성 500 , s3-sftp-access-500-role , Home : s3-sftp-500 지정, public 키 생성
6. 접속 테스트
<2> 작업
1. 테스트 리눅스 서버 1대 생성
2. S3 버킷 생성 : 데이터가 s3에 저장 (필수) s3-sftp-access-500 , 디폴트 not public으로
3. S3에 접근할수 있는 권한 생성
IAM role Create > EC2 > s3 full access> s3-sftp-access-500-role > Trust relationships 설정
추가 작업으로 Edit Trust Relationship 필수
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "transfer.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
4. SFTP 서버 생성 (디폴트)
5. SFTP 접속 계정 생성 500 , s3-sftp-access-500-role , Home : s3-sftp-500 지정, public 키 생성
publc key 만들기 ssh-keygen -P "" -f key_name
ssh-keygen -P "" -f s33
[root@ip-10-0-0-108 ~]# ls
s33 s33.pub
[root@ip-10-0-0-108 ~]# more s33.pub
public Key를 넣는다.
6. 접속 테스트
1) 리눅스나 MAC에서 접속 테스트 하기
sftp -i <key> <사용자>@<SFTP 서버 URL >
[root@ip-10-0-0-108 ~]# sftp -i s33 500@s-bf1b2b4c71f64b17b.server.transfer.ap-northeast-2.amazonaws.com
Permission denied (publickey).
Couldn't read packet: Connection reset by peer
에러 나는경우는 Public키를 notepad열어 한줄로 만들고, 넣으면 해결 된다.!!
파일 올리기
S3 버킷에 올라온 파일 확인
2) winscp로 테스트
sftp client 로 접속 하기.
sftp client download
https://winscp.net/eng/download.php
Linux 나 MAC에서 만든 Private Key를 winscp > 고급 > ssh > 인증 에서 불러와 접속해 사용한다.
감사합니다.