π Bastion Hostμ Key Pair 볡ꡬνκΈ°
π λ¬Έμ μν©
νμ¬ μ‘°κ±΄:
- Ubuntu 24.04 μ¬μ©
- SSM IAM Role μμ β SSM Session Manager μ μ λΆκ°λ₯
- Status Check μ μ (EC2 μ½μμμ 3/3 κ²μ¬ ν΅κ³Ό)
- Key Pair λΆμ€ β κΈ°μ‘΄ λ°©μμΌλ‘ SSH μ μ λΆκ°
ν΄κ²° λ°©λ²:
EBS λ³Όλ₯¨μ λΆλ¦¬νμ¬ λ€λ₯Έ EC2μ μ°κ²°ν ν
authorized_keysλ₯Ό μμ νλ λ°©μμ΄ μ μΌνκ³ νμ€ν λ°©λ²μ λλ€.
β 볡ꡬ νλ‘μΈμ€
1οΈβ£ Bastion Host μ€μ§
AWS Console β EC2 β Bastion Host μ ν β Stop
β οΈ μ£Όμ: Terminateκ° μλ Stopμ μ ννμΈμ!
2οΈβ£ λ£¨νΈ λ³Όλ₯¨(EBS) λΆλ¦¬
- EC2 μμΈ νλ©΄ β Storage ν
- Root volume μ ν β Actions β Detach Volume
- Detach μλ£ λκΈ° (μ½ 5~10μ΄)
3οΈβ£ μμ EC2 μΈμ€ν΄μ€ μμ±
μμ± μ‘°κ±΄:
- λμΌν AZμ μμ± (Attachλ₯Ό μν΄ νμ)
- μΈμ€ν΄μ€ νμ
:
t3.micro(Ubuntu 24.04) - μλ‘μ΄ Key Pair μμ± λ° λ€μ΄λ‘λ
π‘ μ΄ EC2λ λ³Όλ₯¨ νμΌ μμ μ μν μμ μμ μ©μ λλ€.
4οΈβ£ λΆλ¦¬ν λ³Όλ₯¨μ μμ EC2μ μ°κ²°
- Volumes β Detached μνμ EBS μ ν
- Actions β Attach Volume
- Instance: μμ EC2 μ ν
- Device name:
/dev/sdf(μλ μ€μ )
5οΈβ£ μμ EC2μ SSH μ μ λ° λ³Όλ₯¨ λ§μ΄νΈ
β λ³Όλ₯¨ μ°κ²° νμΈ
lsblk
μΆλ ₯ μμ:
nvme0n1 β μμ EC2μ λ£¨νΈ λ³Όλ₯¨
nvme1n1 β Bastion Hostμμ κ°μ Έμ¨ λ³Όλ₯¨
ββnvme1n1p1 β Bastion Hostμ λ£¨νΈ νν°μ
(λ§μ΄νΈ λμ)
β‘ λ§μ΄νΈ λλ ν 리 μμ±
sudo mkdir -p /mnt/bastion
β’ Bastion Host λ£¨νΈ νν°μ λ§μ΄νΈ
sudo mount /dev/nvme1n1p1 /mnt/bastion
π μ₯μΉ μ΄λ¦μ
lsblkκ²°κ³Όμ λ°λΌ/dev/xvdf1λλ/dev/nvme1n1p1λ‘ λ€λ₯Ό μ μμ΅λλ€.
6οΈβ£ authorized_keys νμΌ μμ
β SSH λλ ν 리 νμΈ
Bastion Hostμ μ¬μ©μκ° ubuntuμΈ κ²½μ°:
ls -al /mnt/bastion/home/ubuntu/.ssh
β‘ authorized_keys νμΌ μ΄κΈ°
sudo nano /mnt/bastion/home/ubuntu/.ssh/authorized_keys
β’ μλ‘μ΄ Public Key μΆκ°
νμΌ λ§¨ μλμ μλ‘μ΄ Public Keyλ₯Ό μΆκ°ν©λλ€.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC... your_email@example.com
- CTRL + O β μ μ₯
- CTRL + X β μ’ λ£
β£ κΆν μ€μ (νμ)
sudo chown ubuntu:ubuntu /mnt/bastion/home/ubuntu/.ssh/authorized_keys
sudo chmod 600 /mnt/bastion/home/ubuntu/.ssh/authorized_keys
sudo chmod 700 /mnt/bastion/home/ubuntu/.ssh
β οΈ μ€μ:
authorized_keysλ λ°λμ 600 κΆνμ΄μ΄μΌ SSHκ° μλν©λλ€.
7οΈβ£ λ³Όλ₯¨ λΆλ¦¬ λ° μ¬μ°κ²°
β λ§μ΄νΈ ν΄μ
sudo umount /mnt/bastion
β‘ AWS Consoleμμ λ³Όλ₯¨ μ¬μ°κ²°
- μμ EC2μμ Detach Volume
- Bastion Hostμ Attach Volume
- Device:
/dev/sda1(μλ μ€μ )
- Device:
8οΈβ£ Bastion Host μμ λ° SSH μ μ ν μ€νΈ
β Bastion Host μμ
AWS Console β Bastion Host β Start
β‘ SSH μ μ
ssh -i ~/.ssh/your_new_key.pem ubuntu@<Bastion-Host-Public-IP>
π 볡ꡬ μλ£!
π₯ FAQ: .pem νμΌκ³Ό Public Key
Q. βμ κ° μμ±ν ν€νμ΄λ .pem νμΌμΈλ°, authorized_keysμ 무μμ λ£μ΄μΌ νλμ?β
A. .pem νμΌμ Private Keyμ΄λ―λ‘, Public Keyλ₯Ό μΆμΆν΄μ λ£μ΄μΌ ν©λλ€.
π μ΄ν΄νκΈ°
| νλͺ© | μ€λͺ |
|---|---|
.pem νμΌ |
Private Key (κ°μΈν€) - μ λ μλ²μ λ£μΌλ©΄ μ λ¨ |
authorized_keys |
Public Key (곡κ°ν€)λ§ μ μ₯νλ κ³³ |
π .pemμμ Public Key μΆμΆ λ°©λ²
λ‘컬 ν°λ―Έλμμ μ€ν:
ssh-keygen -y -f your_key.pem > your_key.pub
μμ:
ssh-keygen -y -f bastion.pem > bastion.pub
Public Key νμΈ:
cat bastion.pub
μΆλ ₯ μμ:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...
μ΄ λ΄μ©μ authorized_keysμ μΆκ°νλ©΄ λ©λλ€.
π― μ΅μ’ SSH μ μ
ssh -i bastion.pem ubuntu@<Bastion-Host-Public-IP>
π 체ν¬λ¦¬μ€νΈ
볡ꡬ κ³Όμ μ μλ£νλ€λ©΄ μλ νλͺ©μ νμΈνμΈμ:
- Bastion Hostκ° Stop μνμΈκ°? (Terminate μλ)
- μμ EC2κ° λμΌν AZμ μλκ°?
-
λ³Όλ₯¨μ΄ μ λλ‘ λ§μ΄νΈλμλκ°? (
lsblkλ‘ νμΈ) -
Public Keyλ₯Ό
authorized_keysμ μΆκ°νλκ°? - κΆνμ΄ μ¬λ°λ₯Έκ°? (νμΌ: 600, λλ ν 리: 700)
-
λ§μ΄νΈλ₯Ό ν΄μ νλκ°? (
umount) -
λ³Όλ₯¨μ΄ Bastion Hostμ
/dev/sda1λ‘ μ¬μ°κ²°λμλκ°? - Bastion Hostκ° μμλμλκ°?
- SSH μ μμ΄ μ±κ³΅νλκ°?
π¨ μ£Όμμ¬ν
-
μ λ Private Key(.pem)λ₯Ό μλ²μ μ¬λ¦¬μ§ λ§μΈμ
- 보μμ μ¬κ°ν μνμ λλ€.
-
authorized_keys κΆνμ λ°λμ 600
- κ·Έλ μ§ μμΌλ©΄ SSHκ° κ±°λΆλ©λλ€.
-
λ³Όλ₯¨ Detach/Attach μ λ°λμ λμΌν AZ νμΈ
- λ€λ₯Έ AZμ μΈμ€ν΄μ€μλ μ°κ²°ν μ μμ΅λλ€.
-
μμ EC2λ μμ
μλ£ ν μμ κ°λ₯
- λΉμ© μ κ°μ μν΄ μμ μλ£ ν TerminateνμΈμ.
π μ 리
μ΄ λ°©λ²μ SSM Session Managerλ₯Ό μ¬μ©ν μ μκ³ , κΈ°μ‘΄ Key Pairλ₯Ό λΆμ€νμ λ 100% νμ€νκ² λ³΅κ΅¬ν μ μλ λ°©λ²μ λλ€.
ν΅μ¬μ EBS λ³Όλ₯¨μ λΆλ¦¬νμ¬ λ€λ₯Έ EC2μμ νμΌ μμ€ν
μ μ κ·Όνκ³ , authorized_keysλ₯Ό μ§μ μμ νλ κ²μ
λλ€.
볡ꡬ νμλ μλ‘μ΄ Key Pairλ₯Ό μμ νκ² λ³΄κ΄νκ³ , κ°λ₯νλ€λ©΄ SSM Session Managerλ₯Ό μν IAM Roleμ μΆκ°νμ¬ ν₯ν μ μ¬ν μν©μ μλ°©νλ κ²μ΄ μ’μ΅λλ€.