-SSH Tunneling 은 프록시와 비슷한 역할을 하며 , 전달 되는 데이터는 모두 암호화 된다.
-Putty 를 이용한 SSH Tunneling 은 반드시 SSH Tunneling 용도 서버에 접속 한 상태에서만 터널링 가능
Pem key -> ppk 키 변환
Putty generator 실행 (putty 설치 시 같이 설치)
Conversions -> import key 선택
Pem 키 선택 후
Save private key
SSH 접속
ex) AWS 내에 같은 VPC 안에 있는 EC2 리눅스 서버 SSH 접속 후 RDS(mssql) 접속
SSH 접속 서버 IP 입력 후 원격 포트 입력2. ppk 파일 적용
Connection -> SSH -> Auth -> Authentication parameters에
Private Key file for authentication 에 변환한 ppk 파일 적용
3. Connection -> SSH -> Auth -> Tunnels
Source port = 접속할 포트 ex 1433
Destination : ip:port 입력 후 Add
ex) AWS mysql 인 경우
yds001.cq7iavl3dsuu.ap-northeast-2.rds.amazonaws.com:1433
4. 로컬 PC cmd 창에서 netstat 명령어로 포트 확인
netstat -ano | findstr "해당포트"
5. 로컬 PC 에서 해당 포트로 접속 확인
ex) 127.0.0.1,1433
AWS SSM 을 통한 VPC Private Network 접근
목적
- VPC 내의 Private Network 에 외부 공인 대역에서 Shell 로 접근 ( VPN 역할 )
특징
- SSM 을 통해 AWS 연결을 하는 것으로, IGW 나 EIP 등의 VPC내 별도 제약이 필요없다
- EC2 SSH 접근 용도의 Password 나 Key-Pair 가 필요없다.
- Shell 전환으로 SSH 와 거의 동일하게 사용할 수 있다.
- AWS Client VPN 과 비교 시, 비용적으로 유리하다.
요구사항
- AWS CLi 를 설치 및 AWS 리소스에 접근할 수 있는 공인망 환경 ( VM / CT / Server )
일부 리전의 경우 AWS Console 내에서 Cloudshell 사용 가능
Aamazon 2 리눅스 인스턴스의 경우에는 기본 설정되어 있을 수 있다.
[root@ip-10-10-20-201 ~]# sudo yum install -y https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_amd64/amazon-ssm-agent.rpm
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Cannot open: https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_amd64/amazon-ssm-agent.rpm. Skipping.
Error: Nothing to do
[root@ip-10-10-20-201 ~]# wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
--2022-03-29 02:49:06-- https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
Resolving s3.amazonaws.com (s3.amazonaws.com)... 52.217.196.240
Connecting to s3.amazonaws.com (s3.amazonaws.com)|52.217.196.240|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 26724168 (25M) [binary/octet-stream]
Saving to: ‘amazon-ssm-agent.rpm’
100%[==================================================================================================>] 26,724,168 12.7MB/s in 2.0s
2022-03-29 02:49:08 (12.7 MB/s) - ‘amazon-ssm-agent.rpm’ saved [26724168/26724168]
설치 후 자동시작 활성화한다.
[root@ip-10-10-20-201 ~]# rpm -Uvh amazon-ssm-agent.rpm
warning: amazon-ssm-agent.rpm: Header V4 RSA/SHA1 Signature, key ID 693eca21: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:amazon-ssm-agent-3.1.1080.0-1 ################################# [100%]
Created symlink from /etc/systemd/system/multi-user.target.wants/amazon-ssm-agent.service to /etc/systemd/system/amazon-ssm-agent.service.
[root@ip-10-10-20-201 ~]# systemctl enable amazon-ssm-agent
[root@ip-10-10-20-201 ~]# systemctl start amazon-ssm-agent
[root@ip-10-10-20-201 ~]# systemctl status amazon-ssm-agent
-- amazon-ssm-agent.service - amazon-ssm-agent
Loaded: loaded (/etc/systemd/system/amazon-ssm-agent.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-03-29 02:53:54 UTC; 21s ago
Main PID: 3355 (amazon-ssm-agen)
CGroup: /system.slice/amazon-ssm-agent.service
├─3355 /usr/bin/amazon-ssm-agent
└─3382 /usr/bin/ssm-agent-worker
Mar 29 02:53:54 ip-10-10-20-201.us-west-2.compute.internal amazon-ssm-agent[3355]: 2022-03-29 02:53:54 INFO Agent will take identity f...EC2
Mar 29 02:53:54 ip-10-10-20-201.us-west-2.compute.internal amazon-ssm-agent[3355]: 2022-03-29 02:53:54 INFO [amazon-ssm-agent] using n...IPC
Mar 29 02:53:55 ip-10-10-20-201.us-west-2.compute.internal amazon-ssm-agent[3355]: 2022-03-29 02:53:54 INFO [amazon-ssm-agent] using n...IPC
Mar 29 02:53:55 ip-10-10-20-201.us-west-2.compute.internal amazon-ssm-agent[3355]: 2022-03-29 02:53:54 INFO [amazon-ssm-agent] using n...IPC
Mar 29 02:53:55 ip-10-10-20-201.us-west-2.compute.internal amazon-ssm-agent[3355]: 2022-03-29 02:53:54 INFO [amazon-ssm-agent] amazon-...0.0
Mar 29 02:53:55 ip-10-10-20-201.us-west-2.compute.internal amazon-ssm-agent[3355]: 2022-03-29 02:53:54 INFO [amazon-ssm-agent] OS: lin...d64
Mar 29 02:53:55 ip-10-10-20-201.us-west-2.compute.internal amazon-ssm-agent[3355]: 2022-03-29 02:53:54 INFO [CredentialRefresher] Iden...her
Mar 29 02:53:55 ip-10-10-20-201.us-west-2.compute.internal amazon-ssm-agent[3355]: 2022-03-29 02:53:55 INFO [amazon-ssm-agent] [LongRu...ess
Mar 29 02:53:55 ip-10-10-20-201.us-west-2.compute.internal amazon-ssm-agent[3355]: 2022-03-29 02:53:55 INFO [amazon-ssm-agent] [LongRu...ted
Mar 29 02:53:55 ip-10-10-20-201.us-west-2.compute.internal amazon-ssm-agent[3355]: 2022-03-29 02:53:55 INFO [amazon-ssm-agent] [LongRu...nds
Hint: Some lines were ellipsized, use -l to show in full.
4. AWS Cli 에서 SSM 을 통한 EC2 접속
외부 CT 에 AWSCli 를 설치 후 IAM API Key 권한을 설정한다.
## 접속할 Client의 IP 확인
$ curl http://icanhazip.com
1.2.3.4
## AWSCli 설치
(중요) SSM의 Session-Plugin 을 사용하기 위해서는 AWSCli 1.16 버전 이상이어야 한다.
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
## Linux 용 SSM Session-Manager Plugin 설치
$ curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/linux_64bit/session-manager-plugin.rpm" -o "session-manager-plugin.rpm"
$ rpm -Uvh session-manager-plugin.rpm
$ session-manager-plugin
The Session Manager plugin was installed successfully. Use the AWS CLI to start a session.
## 접근 정보 설정
본문 내용의 키는 임의 생성한 내용.
$ aws configure
AWS Access Key ID [None]: AKIAQ25632EPN7T7FFVT
AWS Secret Access Key [None]: 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
Default region name [None]: us-west-2
Default output format [None]: json