Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

OpenStack Security Group Automation (IaC)

OpenStack ํ”„๋ผ์ด๋น— ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ๊ฐ€์ƒ ๋จธ์‹ ๋“ค์˜ ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ ์ •์ฑ…์„ ํ‘œ์ค€ํ™”ํ•˜๊ณ  ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•œ Terraform ๊ธฐ๋ฐ˜์˜ IaC repository

๋ณด์•ˆ ๊ทธ๋ฃน ํ…œํ”Œ๋ฆฟ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ์ฝ”๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ์•ˆ์ •์ ์œผ๋กœ ํ˜•์ƒ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‚ Repository Structure

openstack-security-group/
โ”œโ”€โ”€ .gitignore          
โ”œโ”€โ”€ provider.tf         # OpenStack API ์—ฐ๋™ ๋ฐ ๋กœ๊ทธ์ธ ์„ค์ • (ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋ฐฉ์‹)
โ”œโ”€โ”€ security_groups.tf  
โ””โ”€โ”€ README.md           

๐Ÿš€ ๊ฐœ์š” ๋ฐ ๋„์ž… ๋ฐฐ๊ฒฝ

๊ธฐ์กด ๋ฐฉ์‹์˜ ๋ฌธ์ œ์ : ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹œ๋งˆ๋‹ค Bash ์Šคํฌ๋ฆฝํŠธ๋กœ default ๋ณด์•ˆ ๊ทธ๋ฃน์„ ๊ฐ•์ œ ์ˆ˜์ •ํ•˜์—ฌ ๊ด€๋ฆฌ์šฉ ํฌํŠธ(SSH, Ping)๋ฅผ ์ผ๊ด„ ์˜คํ”ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ธํ”„๋ผ์˜ ํ˜•์ƒ ๊ด€๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ , ์‚ฌ์šฉ์ž๋ณ„๋กœ ์ •๋ฐ€ํ•œ ๋ณด์•ˆ ์ •์ฑ…์„ ์ œ๊ณตํ•˜๊ธฐ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.

๊ฐœ์„  ๋ฐฉํ–ฅ (IaC ๋„์ž…): Terraform์„ ๋„์ž…ํ•˜์—ฌ ๋…๋ฆฝ๋œ ์ธํ”„๋ผ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆœ์ˆ˜ํ•œ default ์ƒํƒœ๋Š” ๋ณด์กดํ•˜๋˜, ํ”Œ๋žซํผ ์‚ฌ์šฉ์ž๊ฐ€ ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” Description์ด ํฌํ•จ๋œ 3์ข…์˜ ์ „์—ญ ๊ณต์œ (Shared) ๋ณด์•ˆ ๊ทธ๋ฃน ํ…œํ”Œ๋ฆฟ์„ ์ฝ”๋“œ๋กœ ์„ ์–ธํ•˜์—ฌ ํ”Œ๋žซํผ ์™„์„ฑ๋„์™€ ๋ณด์•ˆ์„ฑ์„ ๊ณ ๋„ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ›ก๏ธ ๋ณด์•ˆ ๊ทธ๋ฃน ์•„ํ‚คํ…์ฒ˜ (Security Group Architecture)

์‚ฌ์šฉ์ž๊ฐ€ ์Šค์นด์ด๋ผ์ธ(Skyline) ์›น ํฌํ„ธ์—์„œ VM์„ ์ƒ์„ฑํ•  ๋•Œ, ๋ชฉ์ ์— ๋งž๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก 3๊ฐ€์ง€ ๊ณต์œ  ๋ณด์•ˆ ๊ทธ๋ฃน์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  1. common-mgmt-sg (๊ธฐ๋ณธ ๊ด€๋ฆฌ์šฉ ํ•„์ˆ˜ ๊ทธ๋ฃน)
  • ๋ชฉ์ : ์ธํ”„๋ผ ๊ด€๋ฆฌ์ž ๋ฐ ์œ ์ €๊ฐ€ VM์— ์›๊ฒฉ ์ ‘์†ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ์ƒํƒœ๋ฅผ ์ ๊ฒ€ํ•˜๊ธฐ ์œ„ํ•œ ์—์„ผ์…œ ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.

  • ํ—ˆ์šฉ ๊ทœ์น™ (Inbound):

    • TCP 22: SSH ์›๊ฒฉ ๋ณด์•ˆ ์ ‘์† ํ—ˆ์šฉ (0.0.0.0/0)

    • ICMP: Ping ๋„คํŠธ์›Œํฌ ํ™•์ธ ํŠธ๋ž˜ํ”ฝ ํ—ˆ์šฉ (0.0.0.0/0)

  1. web-traffic-sg (์›น ์„œ๋น„์Šค ์ „์šฉ ๊ทธ๋ฃน)
  • ๋ชฉ์ : ์œ ์ €๊ฐ€ ์›น ์„œ๋ฒ„ ๋˜๋Š” ์™ธ๋ถ€ API ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ๊ตฌ๋™ํ•˜๋Š” VM์— ์žฅ์ฐฉํ•˜๋Š” ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.

  • ํ—ˆ์šฉ ๊ทœ์น™ (Inbound):

    • TCP 80: ์ผ๋ฐ˜ HTTP ์›น ํŠธ๋ž˜ํ”ฝ ํ—ˆ์šฉ (0.0.0.0/0)

    • TCP 443: ๋ณด์•ˆ HTTPS ์›น ํŠธ๋ž˜ํ”ฝ ํ—ˆ์šฉ (0.0.0.0/0)

  1. db-access-sg (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „์šฉ ๋ณด์•ˆ ๊ทธ๋ฃน)
  • ๋ชฉ์ : MariaDB, MySQL ๋“ฑ ํ•ต์‹ฌ ๋ฐ์ดํ„ฐ db๋ฅผ ํ•ด์ปค์˜ ์™ธ๋ถ€ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ(Brute Force)์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.

  • ๋ณด์•ˆ ๊ทธ๋ฃน ์ฒด์ด๋‹ (Chaining) ์ ์šฉ:

    • ์™ธ๋ถ€ ์ธํ„ฐ๋„ท ์ „์ฒด(0.0.0.0/0)์— 3306 ํฌํŠธ๋ฅผ ๊ฐœ๋ฐฉํ•˜์ง€ ์•Š๊ณ , ์˜ค์ง web-traffic-sg๋ฅผ ์žฅ์ฐฉํ•œ ๋ฐฑ์—”๋“œ VM์œผ๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ๋งŒ DB ์ ‘์†์„ ํ—ˆ์šฉํ•˜๋„๋ก ๋™์  ์ธํ”„๋ผ ์—ฐ๋™ ์ •์ฑ…์„ ์ˆ˜๋ฆฝํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ—ˆ์šฉ ๊ทœ์น™ (Inbound):

    • TCP 3306: ์˜ค์ง web-traffic-sg ๋ฆฌ์†Œ์Šค ID ๊ธฐ๋ฐ˜ ํ•„ํ„ฐ๋ง ํ—ˆ์šฉ

๐Ÿ› ๏ธ ์‹คํ–‰ ๋ฐฉ๋ฒ• (How to Run)

์˜คํ”ˆ์Šคํƒ ์ œ์–ด ๊ถŒํ•œ์„ ๊ฐ€์ง„ ํ„ฐ๋ฏธ๋„ ํ™˜๊ฒฝ์—์„œ ์•„๋ž˜ ์ˆœ์„œ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

# 0. ์˜คํ”ˆ์Šคํƒ ์„œ๋ฒ„ ํ„ฐ๋ฏธ๋„์—์„œ git clone or pull
# (์ตœ์ดˆ ์‹คํ–‰ ์‹œ)
git clone https://github.com/๊นƒํ—ˆ๋ธŒ_ID/openstack-security-group.git
cd openstack-security-group
# (์ฝ”๋“œ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์„ ์‹œ)
git pull origin main

# 1. Kolla ๊ฐ€์ƒํ™˜๊ฒฝ ์ง„์ž… ๋ฐ ์˜คํ”ˆ์Šคํƒ ์–ด๋“œ๋ฏผ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋กœ๋“œ (๋กœ๊ทธ์ธ ์ •๋ณด ํƒ‘์žฌ)
source ~/kolla-venv/bin/activate
source ~/highcloud-admin-openrc.sh

# 2. ํ…Œ๋ผํผ ์ดˆ๊ธฐํ™” (์˜คํ”ˆ์Šคํƒ ๊ณต์‹ ํ”„๋กœ๋ฐ”์ด๋” ํ”Œ๋Ÿฌ๊ทธ์ธ ์ž๋™ ๋‹ค์šด๋กœ๋“œ)
terraform init

# 3. ์ธํ”„๋ผ ์„ค๊ณ„๋„ ๊ฒ€์ฆ ๋ฐ ์ƒ์„ฑ๋  ๋ฆฌ์†Œ์Šค ๋ฏธ๋ฆฌ๋ณด๊ธฐ
terraform plan

# 4. ์„ค๊ณ„๋„๋Œ€๋กœ ์˜คํ”ˆ์Šคํƒ API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ 3๋Œ€ ์ „์—ญ ๊ณต์œ  ๋ณด์•ˆ ๊ทธ๋ฃน ์‹ค๋ฌผ ๋ฐฐํฌ
terraform apply -auto-approve

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages