[TIL] Secret ๊ด€๋ฆฌ... (feat. OpenBao)

syeoni_hยท2026๋…„ 2์›” 8์ผ

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
11/11

๐Ÿ—ฃ๏ธ ์ฃผ์ ˆ์ฃผ์ ˆ
ํšŒ์‚ฌ์—์„œ ์†”๋ฃจ์…˜ ๊ณ ๋„ํ™” ์–˜๊ธฐํ•  ๋•Œ๋งˆ๋‹ค ๊ผญ ํ•œ ๋ฒˆ์”ฉ ๋‚˜์˜ค๋Š” ์ฃผ์ œ...
โ€œSecret ์ด๋ž‘ Credential ๊ด€๋ฆฌ ํ•ด์•ผ ๋ผ.โ€
์ฒ˜์Œ์—” ์•„~ ์ค‘์š”ํ•œ๊ฐ€๋ณด๋‹ค ํ•˜๊ณ  ํ˜๋ ค๋“ค์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ๋ฐฐํฌ ์ชฝ ๊ธฐ๋Šฅ์„ ๋งก๊ฒŒ ๋˜๋ฉด์„œ Secret๊ณผ Credential ๊ด€๋ฆฌ์˜ ์ค‘์š”์„ฑ์„ ๋А๋ผ๊ฒŒ ๋˜์—ˆ๋‹ฌ๊นŒ...
ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์—ฌ๊ธฐ์ €๊ธฐ ํฉ์–ด์ ธ ์žˆ๊ณ  ๋ˆ„๊ฐ€ ์–ธ์ œ ์–ด๋–ค ํ‚ค๋ฅผ ์ผ๋Š”์ง€ ๋ชจ๋ฅด๋ฉด.. ๋ ˆ์ „๋“œ ์‚ฌ๊ณ ๋ผ๋Š” ๊ฒƒ..
๊ทธ๋ž˜์„œ ํšŒ์˜ํ•˜๋ฉด์„œ ๊ณ„์† ์–ธ๊ธ‰๋˜๋˜ Vault๋ž‘ OpenBao์— ๋Œ€ํ•ด์„œ ์ฐพ์•„๋ณด์•˜๋‹ค!

๐Ÿ“ Vault ์™€ OpenBao

  • ๋‘˜ ๋‹ค Secret ๊ด€๋ฆฌ ๋„๊ตฌ
  • ex) DB ๊ณ„์ • / ๋น„๋ฐ€๋ฒˆํ˜ธ, API Key / ํ† ํฐ (AWS, GitHub), ์ธ์ฆ์„œ/ํ‚ค (TLS, SSH, ์•”ํ˜ธํ™” ํ‚ค)

๐Ÿ”‘ Vault๋ž€?

  • ๋ฏผ๊ฐ์ •๋ณด(Secret)๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ, ๋ฐฐํฌ, ํ†ต์ œํ•˜๋Š” Secrets Management ์†”๋ฃจ์…˜
  • ๋ˆ„๊ฐ€, ์–ด๋–ค ์„œ๋น„์Šค๊ฐ€, ์–ด๋–ค ์กฐ๊ฑด์—์„œ, ์–ผ๋งˆ๋‚˜ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ€์ ธ๊ฐ€๊ฒŒ ํ•  ๊ฑฐ๋ƒ๋ฅผ ์ฒด๊ณ„ํ™”
  • ํ•„์š”ํ•  ๋•Œ๋งŒ ๋ฐœ๊ธ‰(๋™์  ๋ฐœ๊ธ‰), ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ”๊ฟˆ(๋กœํ…Œ์ด์…˜), ๋ˆ„๊ฐ€ ์ผ๋Š”์ง€ ๊ธฐ๋ก(๊ฐ์‚ฌ ๋กœ๊ทธ) ๊ฐ™์€ ์šด์˜ ๊ธฐ๋Šฅ์ด ๊ฐ•์ 

๐ŸฅŸ OpenBao๋ž€?

  • Vault๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์˜คํ”ˆ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ ํฌํฌ(fork)

โ“ ์˜คํ”ˆ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ ํฌํฌ

  • ์›๋ž˜ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๊ณ„์† ๊ฐœ๋ฐœํ•ด ๋‚˜๊ฐ€๋Š” ๊ฒƒ
  • ๋ณดํ†ต์€ ํ”„๋กœ์ ํŠธ์˜ ๋ฐฉํ–ฅ(ํŠนํžˆ ๋ผ์ด์„ ์Šค/๊ฑฐ๋ฒ„๋„Œ์Šค/์ƒ์šฉ ์ •์ฑ…)์ด ์ปค๋ฎค๋‹ˆํ‹ฐ๋‚˜ ๊ธฐ์—…๋“ค์ด ์›ํ•˜๋Š” ๋ฐฉํ–ฅ๊ณผ ์–ด๊ธ‹๋‚  ๋•Œ ํฌํฌ๊ฐ€ ํƒ„์ƒ

ex) Redis์˜ ๋ผ์ด์„ ์Šค ๋ณ€ํ™” ์ดํ›„ Valkey ๊ฐ™์€ ํฌํฌ๊ฐ€ ํƒ„์ƒ

๐Ÿ“ ์–ด๋–ค ์‹์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š”๊ฐ€

1๏ธโƒฃ ์ €์žฅ

  • ์‹œํฌ๋ฆฟ์„ ์•”ํ˜ธํ™”ํ•ด์„œ ์ €์žฅ
  • ๋‚ด๋ถ€์ ์œผ๋กœ ์‹œํฌ๋ฆฟ์„ ์•”ํ˜ธํ™”ํ•œ ๋’ค ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ

์Šคํ† ๋ฆฌ์ง€ ์ž์ฒด๊ฐ€ ํ„ธ๋ ค๋„ ์›๋ฌธ ์‹œํฌ๋ฆฟ์ด ๋ฐ”๋กœ ์œ ์ถœ๋˜์ง€ ์•Š๋„๋ก ์„ค๊ณ„๋œ ๊ฒƒ

2๏ธโƒฃ ์ธ์ฆ/์ธ๊ฐ€

  • ๋ˆ„๊ฐ€ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€ ๋‚˜๋ˆ„๊ธฐ

๋ˆ„๊ตฌ์ธ์ง€ ํ™•์ธ(์ธ์ฆ)ํ•œ ๋‹ค์Œ, ๊ทธ ์‚ฌ๋žŒ์ด/์„œ๋น„์Šค๊ฐ€ ์–ด๋””๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€(์ธ๊ฐ€)๋ฅผ ์ •์ฑ…์œผ๋กœ ์ œํ•œ

ex)
kv/data/prod/myapp/* (์šด์˜ ํ™˜๊ฒฝ myapp)
kv/data/prod/payments/* (์šด์˜ ๊ฒฐ์ œ ์„œ๋น„์Šค)
kv/data/dev/myapp/* (๊ฐœ๋ฐœ ํ™˜๊ฒฝ myapp)
myapp ์„œ๋น„์Šค ๊ณ„์ • โ†’ kv/data/prod/myapp/* ๋งŒ ์ฝ๊ธฐ ๊ฐ€๋Šฅ
payments ์„œ๋น„์Šค ๊ณ„์ • โ†’ kv/data/prod/payments/* ๋งŒ ์ฝ๊ธฐ ๊ฐ€๋Šฅ
์šด์˜์ž โ†’ prod ์ „์ฒด ์ฝ๊ธฐ ๊ฐ€๋Šฅ
CI/CD โ†’ ๋ฐฐํฌ์— ํ•„์š”ํ•œ ์ตœ์†Œ ๊ฒฝ๋กœ๋งŒ ์ฝ๊ธฐ ๊ฐ€๋Šฅ (์ด๋ฏธ์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ† ํฐ, ๋ฐฐํฌ์šฉ ํ‚ค)

3๏ธโƒฃ ๋ฐฐํฌ

  • ์•ฑ์ด ์‹œํฌ๋ฆฟ์„ ๊ฐ€์ง€๊ณ  ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค๊ธฐ (์ฝ”๋“œ/์ด๋ฏธ์ง€/๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ๋‘์ง€ ์•Š๊ธฐ)

.env ํŒŒ์ผ, CI ๋ณ€์ˆ˜, ์„œ๋ฒ„์— ์ˆ˜๋™ ์ €์žฅ, ์ด๋ฏธ์ง€์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ
์•ฑ์ด ์‹คํ–‰๋  ๋•Œ ํ•„์š”ํ•œ ์‹œํฌ๋ฆฟ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ›์•„์˜ค๊ณ  ๋งŒ๋ฃŒ๋˜๋ฉด ๋‹ค์‹œ ๋ฐ›๋Š”๋‹ค

๐Ÿ˜— ๊ทธ๋ž˜์„œ.. ์šฐ๋ฆฌ๋Š” OpenBao๋กœ!

  • ์šฐ๋ฆฌ๋Š” ๋ผ์ด์„ ์Šค ๋ณ€๊ฒฝ ์ด์Šˆ๋ฅผ ๊ณ ๋ คํ•ด์„œ OpenBao ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •!

  • ์˜คํ”ˆ์†Œ์Šค ๋„์ž…ํ•  ๋•Œ๋Š” ๋ผ์ด์„ ์Šค(Apache, MIT ๋“ฑ)๋ถ€ํ„ฐ ๋จผ์ € ์ฒดํฌํ•˜๋Š” ์Šต๊ด€์ด ์ง„์งœ ์ค‘์š”ํ•˜๋‹ค.. (์™œ๋ƒ ๋‚ด๊ฐ€ ์ฑ…์ž„ ์งˆ ์ˆ˜ ์—†์Œ,,,,ใ… ใ… )

    VaultOpenBao
    HashiCorp์˜ ๋Œ€ํ‘œ ์‹œํฌ๋ฆฟ ๊ด€๋ฆฌ ์ œํ’ˆVault ๊ธฐ๋ฐ˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ํฌํฌ, Linux Foundation ๊ด€๋ฆฌ
    HashiCorp๊ฐ€ BSL ์ฑ„ํƒ์˜คํ”ˆ์†Œ์Šค/์˜คํ”ˆ ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ์ „๋ฉด์— ๋‘” ํฌํฌ
    https://developer.hashicorp.com/vaulthttps://openbao.org/

0๊ฐœ์˜ ๋Œ“๊ธ€