[DevOps] AWS VPC Bastion Host

maketheworldwiseΒ·2021λ…„ 9μ›” 5일
0

🧐 Today I Learned (TIL)

AWS VPC Bastion Host


AWS VPC Bastion Host

'Bastion Host'λŠ” 'Public Subnet'μ—μ„œ 'Private Subnet' λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•˜κΈ° μœ„ν•œ λŒ€λ¦¬μΈμ˜ 역할을 μˆ˜ν–‰ν•œλ‹€.

각 'subnet'에 ec2λ₯Ό 생성해주고 'Private Security Group'에 ssh와 icmpλ₯Ό 'Public Security Group'만 ν—ˆμš©ν•΄μ€€λ‹€.

'Private Subnet'의 λ¦¬μ†ŒμŠ€μ— μ ‘μ†ν•˜κΈ° μœ„ν•œ κ°€μž₯ 많이 μ•Œλ €μ§„ λ°©λ²•μœΌλ‘œλŠ” Putty ν”„λ‘œκ·Έλž¨μ„ μ΄μš©ν•œ 방법이닀. ν•˜μ§€λ§Œ κ·Έ 외에도 접속할 수 μžˆλŠ” 방법은 λ‹€μ–‘ν•˜λ‹€.

κ°€μž₯ λ¨Όμ € 'Private Subnet'에 μƒμ„±ν•œ ec2의 pem ν‚€λ₯Ό 'scp' ν˜Ήμ€ 'ftp'λ₯Ό μ΄μš©ν•˜μ—¬ 'Bastion Host'둜 λ„˜κ²¨μ£Όμ–΄ μ ‘μ†ν•˜λŠ” 방법이 μžˆλ‹€. 직접 μ‹œλ„λŠ” 해보지 μ•Šμ•˜μ§€λ§Œ κ°€μž₯ λ‹¨μˆœν•œ 방법이라고 μƒκ°ν•œλ‹€.

ν•˜μ§€λ§Œ 이 방법은 개인 ν‚€λ₯Ό λ…ΈμΆœμ‹œν‚¬ 수 μžˆλŠ” μœ„ν—˜ μš”μ†Œκ°€ 있기 λ•Œλ¬Έμ— μΆ”μ²œν•˜λŠ” 방법은 μ•„λ‹ˆλ‹€.

scp -i maketheworldwise.pem private.pem ec2-user@[Private Subnet Instance IP]:~/

λ‹€μŒμœΌλ‘œλŠ” 'ssh-agent'λ₯Ό μ΄μš©ν•œ 방법이 μžˆλ‹€. μ‚¬μš©μžμ˜ 아이디 킀와 ν•΄λ‹Ή μ•”ν˜Έλ₯Ό μΆ”μ ν•΄μ£ΌλŠ” ν”„λ‘œκ·Έλž¨μΈ 'ssh-agent'λ₯Ό μ‚¬μš©ν•˜λ©΄ μ‚¬μš©μžκ°€ 'Bastion Host'에 개인 ν‚€λ₯Ό μ €μž₯ν•˜μ§€ μ•Šμ•„λ„ 'Bastion Host'μ—μ„œ λ‹€λ₯Έ μΈμŠ€ν„΄μŠ€λ‘œ μ—°κ²°ν•  수 μžˆλ‹€.

# ssh ν‚€ μΆ”κ°€
ssh-add [pem 파일]

# ssh ν‚€ λͺ¨λ‘ μ‚­μ œ
ssh-add -D

# ssh ν‚€ 전달
ssh-A ec2-user@[Bastion Host Public IP]

# Bastion Hostμ—μ„œ Private Subnet μΈμŠ€ν„΄μŠ€ 접속
ssh ec2-user@[Private Subnet Instance IP]

λ§ˆμ§€λ§‰μœΌλ‘œ 'Bastion Host'에 접속할 λ•Œ μ„€μ •ν•˜λŠ” 방법이닀.

ssh -i maketheworldwise.pem -L 22:[Private Subnet Instance IP]:22 ec2-user@[Bastion Host Public IP]

μœ„μ˜ λ‚΄μš©λŒ€λ‘œ 'Bastion Host'에 접속이 λ˜μ—ˆλ‹€λ©΄ μ ‘μ†ν•œ μƒνƒœμ—μ„œ μƒˆλ‘œμš΄ 터미널을 μ—΄μ–΄ 'Private Subnet' λ¦¬μ†ŒμŠ€μ— μ ‘μ†ν•˜λ©΄ λœλ‹€.

ssh -i maketheworldwise.pem ec2-user@localhost

λ§Œμ•½ 접속이 μ•ˆλœλ‹€λ©΄ κ°€μž₯ μ˜μ‹¬λ˜λŠ” 2가지λ₯Ό 확인해보면 λœλ‹€.

  • NACL
  • Security Group

μ—¬λŸ¬λ²ˆ μ‚½μ§ˆμ„ ν•΄λ³Έ κ²°κ³Ό ν•˜λ‚˜ν•˜λ‚˜ λ³€κ²½ν•΄κ°€λ©΄μ„œ μ°Ύμ•„κ°€λŠ” 것 보닀 'NACL'κ³Ό 'Security Group'의 μΈλ°”μš΄λ“œ, μ•„μ›ƒλ°”μš΄λ“œ λͺ¨λ‘ 'λͺ¨λ“  νŠΈλž˜ν”½'을 ν—ˆμš©μ‹œν‚€κ³  μž˜λ˜λŠ”μ§€ 확인 후에 ν•„μš”ν•œ λ‚΄μš©λ“€μ„ 천천히 μ μš©ν•΄κ°€λŠ” 것이 μ‚½μ§ˆμ„ 쀄일 수 μžˆλŠ” 과정이라고 μƒκ°ν•œλ‹€.

'Bastion Host'λŠ” λŒ€λΆ€λΆ„ 'Private Subnet'에 μ ‘μ†ν•˜κΈ° μœ„ν•œ 점프 μ„œλ²„ μš©λ„λ‘œλ§Œ μ‚¬μš©ν•œλ‹€. 'Bastion Host'λ₯Ό κ±°μ³μ•Όμ§€λ§Œ λ‚΄λΆ€ μ„œλ²„λ‘œ μ ‘κ·Όν•  수 있기 λ•Œλ¬Έμ— ν•΄λ‹Ή ν†΅λ‘œλ§Œ λͺ¨λ‹ˆν„°λ§μ„ 해도 λ‚΄λΆ€ μ„œλ²„λ‘œ κ°€λŠ” νŠΈλž˜ν”½ λŒ€λΆ€λΆ„μ„ λͺ¨λ‹ˆν„°λ§μ΄ κ°€λŠ₯ν•˜μ—¬ 관리와 λ‘œκΉ…μ˜ 쀑앙화λ₯Ό ν•  수 μžˆλŠ” 이점을 가지고 μžˆλ‹€. (AWS Session Manager)


πŸ“š μ°Έκ³ 

profile
세상을 ν˜„λͺ…ν•˜κ²Œ μ΄λŒμ–΄κ°ˆ λ‚˜μ˜ μ„±μž₯ 일기 πŸ““

0개의 λŒ“κΈ€