AWS의 발판 서버를 통해 대상 인스턴스에 연결합니다. part2

4722 단어 aws-cliAWS
이전의 계속
htps : // 이 m / 무슨 ny / ms / 50 a 514 56255811704
발판 서버로부터 접속하는 인스턴스의 작성 준비로부터 시작한다.

bastion을 통해 조작하려는 인스턴스 (target 인스턴스) 작성



target 인스턴스를 포함하는 VPC 서비스



1. target 인스턴스용 VPC 생성


aws ec2 create-vpc --cidr-block 10.2.0.0/16 
aws ec2 create-tags --resources vpc-0ed7b004702d6b31f --tags Key=Name,Value=target_cli

2. target 인스턴스용 서브넷 생성


aws ec2 create-subnet --vpc-id vpc-0ed7b004702d6b31f --cidr-block 10.2.0.0/24
aws ec2 create-tags --resources subnet-066876581dbfa4f88 --tags Key=Name,Value=target_subnet_cli

target 인스턴스 작성 (키 페어는 이전에 만든 것을 사용한다)



1. 개인 키(bastion_cli_key)를 my_bastion으로 전송


scp -i .ssh/bastion_cli_key.pem  .ssh/bastion_cli_key.pem [email protected]:/home/ec2-user

2. 비밀키의 권한을 400으로 하고, .ssh하하에 거둔다


ssh -i .ssh\bastion_cli_key.pem [email protected]
chmod 400 bastion_cli_key.pem 
mv bastion_cli_key.pem .ssh

3. VPC를 피어링 연결하고 연결을 수락합니다.


aws ec2 create-vpc-peering-connection --vpc-id vpc-0ed7b004702d6b31f --peer-vpc-id vpc-0074168dfa72a5826
aws ec2 accept-vpc-peering-connection --vpc-peering-connection-id pcx-094d895104a32cf4a

4. 각 VPC의 라우팅 테이블에서 상대방의 VPC에 대한 통신을 피어링 연결에 연결할 수 있도록 합니다.


# bastion側のカスタムルートテーブルにピアリング接続へのルートを加える
aws ec2 create-route --route-table-id rtb-0362a010826fc18bc --destination-cidr-block 10.2.0.0/16 --vpc-peering-connection-id pcx-094d895104a32cf4a
# target側のメインルートテーブルにピアリング接続へのルートを加える
aws ec2 create-route --route-table-id rtb-02a9cca2b46dac9a2 --destination-cidr-block 10.1.0.0/16 --vpc-peering-connection-id pcx-094d895104a32cf4a

5. target 인스턴스에 대한 보안 그룹 생성. 22와 10000번 포트에 오는 SSH만 허가


aws ec2 create-security-group --group-name from_bastion_ssh --description "Security group for SSH access from bastion" --vpc-id vpc-0ed7b004702d6b31f
aws ec2 authorize-security-group-ingress --group-id sg-098ded7f7da9bc597 --protocol tcp --port 22 --source-group sg-04fa98bf54b2c3602
aws ec2 authorize-security-group-ingress --group-id sg-098ded7f7da9bc597 --protocol tcp --port 10000 --source-group sg-04fa98bf54b2c3602

6. target의 EC2 인스턴스 생성. 무료 프레임의 AMI(Amazon 머신 이미지) 선택


aws ec2 run-instances --image-id ami-0d7ed3ddb85b521a6 --count 1 --instance-type t2.micro --key-name bastion_cli_key --security-group-ids sg-098ded7f7da9bc597 --subnet-id subnet-066876581dbfa4f88
aws ec2 create-tags --resources i-04b09b50680736f5f --tags Key=Name,Value=my_target

7. bastion을 통해 target 인스턴스에 연결


# クライアント端末のpowershellで実行
ssh -i .ssh\bastion_cli_key.pem [email protected]
# bastionで実行
ssh -i .ssh/bastion_cli_key.pem [email protected]

8. sshd_config 편집


cd /etc/ssh/
# sshd_configを退避 
sudo cp sshd_config sshd_configbk
# sshd_configを編集
sudo vim sshd_config

차이는 이런 느낌
< Port 22
---
> Port 10000

9. target 인스턴스 재시작


aws ec2 reboot-instances --instance-ids i-04b09b50680736f5f

10. 22번 포트에서는 접속할 수 없고, 10000번 포트로 접속할 수 있는지 확인


[ec2-user@ip-10-1-0-184 ~]$ ssh -p 22 -i .ssh/bastion_cli_key.pem [email protected]
ssh: connect to host 10.2.0.78 port 22: Connection refused
[ec2-user@ip-10-1-0-184 ~]$ ssh -i .ssh/bastion_cli_key.pem -p 10000 [email protected]
Last login: Sun Jan 27 03:35:37 2019 from 10.1.0.184

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/

11. target 인스턴스에 연결하는 보안 그룹에서 22번 포트의 통신 권한을 제거합니다.


aws ec2 revoke-security-group-ingress --group-id sg-098ded7f7da9bc597 --protocol tcp --port 22 --source-group sg-04fa98bf54b2c3602

이것으로 이하의 구성이 완성되었다.



궁금한 점, 넘어진 점


  • EC2를 시작하는 명령은? → aws ec2 start-instances --instance-ids <instance_id>
  • aws ec2 describe-instance-status 그러면 시작중인 인스턴스 만 표시됩니다.
  • EC2를 재부팅하는 명령은? → aws ec2 reboot-instances --instance-ids <instance_id>
  • 좋은 웹페이지 즐겨찾기