Security

๐Ÿ”ญ๋” ์•ˆ์ „ํ•œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๋งŒ๋“ค๊ธฐ - SLSA ํ‘œ์ค€

์†Œํ”„ํŠธ์›จ์–ด ๊ณต๊ธ‰ ํ”„๋กœ์„ธ์Šค์˜ ๋ณด์•ˆ ํ‘œ์ค€ SLSA์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ , CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๋Œ€์ƒ ์œ„ํ˜‘๊ณผ ๊ฐœ์„ ๋ฐฉ์•ˆ์— ๋Œ€ํ•ด ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

2024.10.07 | ์กฐํšŒ 169 |
0
|
DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€

DevOps, ํด๋ผ์šฐ๋“œ, IT ๊ธฐ์ˆ  ๊ด€๋ จ ์ตœ์‹  ์†Œ์‹๊ณผ ์ •๋ณด๋ฅผ ์ •๋ฆฌํ•ด์„œ ์ฃผ 1ํšŒ ์ด๋ฉ”์ผ๋กœ ์ „ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค๐Ÿ˜บ

์ฒจ๋ถ€ ์ด๋ฏธ์ง€

์•ˆ๋…•ํ•˜์„ธ์š” ๊ตฌ๋…์ž๋‹˜, DevOps ์†Œ์‹๊ณผ ๊ธฐ์ˆ  ์ง€์‹์„ ์ •๋ฆฌํ•ด์„œ ๊ณต์œ ํ•ด๋“œ๋ฆฌ๋Š” DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜๋‚  ์ˆ˜๋งŽ์€ ๊ธฐ์—…๊ณผ ์กฐ์ง์—์„œ ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•ด CI/CD๋ฅผ ๋„์ž…ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. CI/CD ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ๊ฐœ๋ฐœ ์ดํ›„์˜ ์ฝ”๋“œ ํ†ตํ•ฉ๊ณผ ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋ฉด ์• ์ž์ผํ•œ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ด๋Ÿฐ ํŒŒ์ดํ”„๋ผ์ธ ๋‚ด๋ถ€์— ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ์กด์žฌํ•œ๋‹ค๋ฉด ์‹ฌ๊ฐํ•œ ๋ณด์•ˆ ์‚ฌ๊ณ ๋กœ ์ด์–ด์งˆ ์ˆ˜๋„ ์žˆ๊ฒ ์ฃ .

๊ทธ๋ž˜์„œ 2023๋…„ 4์›”, Google์—์„œ ์†Œํ”„ํŠธ์›จ์–ด ๊ณต๊ธ‰ ํ”„๋กœ์„ธ์Šค์˜ ๋ณด์•ˆ ๊ธฐ์ค€์„ ์ œ์‹œํ–ˆ๋Š”๋ฐ์š”. ๋ฐ”๋กœ SLSA(Supply-chain Levels for Software Artifacts)์ž…๋‹ˆ๋‹ค.

 

๐Ÿ›ก๏ธSLSA์˜ ๋ณด์•ˆ ์ˆ˜์ค€ 4๋‹จ๊ณ„

SLSA๋Š” Google์—์„œ ์ œ์‹œํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ณต๊ธ‰ ํ”„๋กœ์„ธ์Šค์˜ ๋ณด์•ˆ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค.
SLSA๋Š” Google์—์„œ ์ œ์‹œํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ณต๊ธ‰ ํ”„๋กœ์„ธ์Šค์˜ ๋ณด์•ˆ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค.

SLSA๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์‚ฐ์ถœ๋ฌผ(Software Artifacts)์„ ๊ณต๊ธ‰ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค(Supply Chain)์˜ ๋ณด์•ˆ ์ˆ˜์ค€(Levels)์„ 4๋‹จ๊ณ„๋กœ ์ •์˜ํ•œ ํ‘œ์ค€์ธ๋ฐ์š”. SLSA์˜ ๋‹จ๊ณ„๋Š” ๋ณด์•ˆ ์ค€์ˆ˜ ์ •๋„์— ๋”ฐ๋ผ Build L0๋ถ€ํ„ฐ Build L3๊นŒ์ง€ ๋‚˜๋ˆ ์ง‘๋‹ˆ๋‹ค. SLSA์˜ ํŠน์ • ๋‹จ๊ณ„๋ฅผ ์ค€์ˆ˜ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๊ทธ๋งŒํผ์˜ ๋ณด์•ˆ ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ๋ฆฌ๋Š” ๊ฒƒ์ด์ฃ .

SLSA์—์„œ ์ •์˜ํ•œ ๋ณด์•ˆ ์ˆ˜์ค€ 4๋‹จ๊ณ„๋ฅผ ๊ฐ„๋žตํžˆ ์†Œ๊ฐœํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Build L0:
    • SLSA ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜์ง€ ์•Š์€ ์ƒํƒœ
    • ๊ฐœ๋ฐœ๊ณผ ํ…Œ์ŠคํŠธ ๋นŒ๋“œ๊ฐ€ ๋™์ผํ•œ ๋จธ์‹ ์—์„œ ์ˆ˜ํ–‰๋˜๊ณ , SLSA ํ‘œ์ค€ ๊ณ ๋ ค๊ฐ€ ์—†๋Š” ์ƒํƒœ๋ฅผ ์˜๋ฏธ
  • Build L1:
    • ํŒจํ‚ค์ง€๊ฐ€ ์–ด๋””์„œ ์–ด๋–ป๊ฒŒ ๋นŒ๋“œ๋˜์—ˆ๋Š”์ง€ ๋ช…์„ธ๋œ ๋ฌธ์„œ(Provenance)๊ฐ€ ์žˆ๋Š” ์ƒํƒœ
    • ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค ๋ณ€๊ฒฝ ์—†์ด SLSA ๋ณด์•ˆ ์ง€์นจ์„ ์ผ์ • ๋ถ€๋ถ„ ์ค€์ˆ˜ํ•˜๋ ค๋Š” ๊ฐœ๋ฐœ ์กฐ์ง ๋Œ€์ƒ
  • Build L2:
    • ํ˜ธ์ŠคํŒ…๋˜๋Š” ํ”Œ๋žซํผ ์ƒ์—์„œ CI/CD ํ”„๋กœ์„ธ์Šค์˜ ๋นŒ๋“œ๊ฐ€ ์ด๋ค„์ง€๊ณ , ๋นŒ๋“œ ํ›„Provenance๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์ƒํƒœ
    • ํ˜ธ์ŠคํŒ…๋˜๋Š” ๋นŒ๋“œ ํ”Œ๋žซํผ์œผ๋กœ ์ „ํ™˜ํ•˜์—ฌ SLSA ๋ณด์•ˆ ์ง€์นจ์„ ์ ์ • ์ˆ˜์ค€์œผ๋กœ ์ค€์ˆ˜ํ•˜๋ ค๋Š” ๊ฐœ๋ฐœ ์กฐ์ง ๋Œ€์ƒ
    • Build L1์„ ๋จผ์ € ์ค€์ˆ˜ํ•ด์•ผ ํ•จ
  • Build L3:
    • ๋ณด์•ˆ์— ๊ฐ•ํ•œ ๋นŒ๋“œ ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ
    • Build L2๋ฅผ ๋จผ์ € ์ค€์ˆ˜ํ•ด์•ผ ํ•จ

 

๐Ÿ”ŽSLSA์—์„œ ์ •์˜ํ•œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ ๋Œ€์ƒ ์œ„ํ˜‘๊ณผ ๊ฐœ์„ ๋ฐฉ์•ˆ

SLSA์—์„œ ์ œ์‹œํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ณต๊ธ‰ ํ”„๋กœ์„ธ์Šค ๋Œ€์ƒ ์œ„ํ˜‘์„ ํ”„๋กœ์„ธ์Šค๋ณ„๋กœ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค.
SLSA์—์„œ ์ œ์‹œํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ณต๊ธ‰ ํ”„๋กœ์„ธ์Šค ๋Œ€์ƒ ์œ„ํ˜‘์„ ํ”„๋กœ์„ธ์Šค๋ณ„๋กœ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค.

SLSA์—์„œ๋Š” CI/CD ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ์œ„ํ˜‘๋„ ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด 8๊ฐ€์ง€๋กœ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์— ํ‘œ์‹œ๋œ ๊ฐ ์œ„ํ˜‘๊ณผ ๊ฐœ์„ ๋ฐฉ์•ˆ์„ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • A: ์†Œ์Šค์ฝ”๋“œ ๋ฌด๋‹จ ๋ณ€๊ฒฝ
    • ๊ฐœ์„ ๋ฐฉ์•ˆ: ์†Œ์Šค์ฝ”๋“œ ์ปค๋ฐ‹์— ๋Œ€ํ•ด ๋‘ ๋ช… ์ด์ƒ์ด ๋ฆฌ๋ทฐ
  • B: ์†Œ์Šค์ฝ”๋“œ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ ๋ฌด๋‹จ ์นจ์ž…
    • ๊ฐœ์„ ๋ฐฉ์•ˆ: ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋œ ์†Œ์Šค์ฝ”๋“œ ํ”Œ๋žซํผ ์‚ฌ์šฉ
  • C: ๋ฌด๋‹จ์œผ๋กœ ์ˆ˜์ •๋œ ์†Œ์Šค์ฝ”๋“œ๋กœ๋ถ€ํ„ฐ ๋นŒ๋“œ
    • ๊ฐœ์„ ๋ฐฉ์•ˆ: SLSA๋ฅผ ์ค€์ˆ˜ํ•˜๋Š” ๋นŒ๋“œ ์„œ๋ฒ„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ ํ›„ ์ƒ์„ฑ๋˜๋Š” Provenance ํ™•์ธ
  • D: ๋ฌด๋‹จ์œผ๋กœ ์ˆ˜์ •๋œ ๋””ํŽœ๋˜์‹œ(์˜์กด์„ฑ) ์‚ฌ์šฉ
    • ๊ฐœ์„ ๋ฐฉ์•ˆ: Provenance๋ฅผ ํ™•์ธ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ ์กฐ์„ฑ์„ ์œ„ํ•ด SLSA ์ค€์ˆ˜
  • E: ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค ๋ฌด๋‹จ ์นจ์ž…
    • ๊ฐœ์„ ๋ฐฉ์•ˆ: ๋” ๋†’์€ SLSA ๋‹จ๊ณ„๋ฅผ ์ค€์ˆ˜ํ•˜์—ฌ ์•ˆ์ „ํ•œ ๋นŒ๋“œ ํ™˜๊ฒฝ ์กฐ์„ฑ
  • F: ๊ธฐ์กด ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฑฐ์นœ ๊ฒƒ์ด ์•„๋‹Œ, ๋ฌด๋‹จ์œผ๋กœ ์ˆ˜์ •๋œ ํŒจํ‚ค์ง€ ์—…๋กœ๋“œ
    • ๊ฐœ์„ ๋ฐฉ์•ˆ: ํŒจํ‚ค์ง€์˜ Provenance๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ์ •์ƒ์ ์ธ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ์—์„œ ์ •์ƒ์ ์ธ ๊ณผ์ •์œผ๋กœ ๋นŒ๋“œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
  • G: ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ ๋ฌด๋‹จ ์นจ์ž…
    • ๊ฐœ์„ ๋ฐฉ์•ˆ: F์˜ ๊ฐœ์„ ๋ฐฉ์•ˆ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ, ํŒจํ‚ค์ง€์˜ Provenance๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™˜๊ฒฝ ์กฐ์„ฑ
  • H: ๋ฌด๋‹จ์œผ๋กœ ์ˆ˜์ •๋œ ํŒจํ‚ค์ง€ ์‚ฌ์šฉ
    • ํ•ด๋‹น ์œ„ํ˜‘์— ๋Œ€ํ•ด SLSA์—์„œ ๊ฐœ์„ ๋ฐฉ์•ˆ์„ ์ง์ ‘ ์ œ์•ˆํ•˜์ง€๋Š” ์•Š์ง€๋งŒ, ํŒจํ‚ค์ง€์˜ Provenance๋ฅผ ํ™œ์šฉ ๊ฐ€๋Šฅํ•  ๊ฒƒ

 

๐Ÿ”ญ๋งˆ์น˜๋ฉฐ...

์ง€๊ธˆ๊นŒ์ง€ SLSA์™€ SLSA์—์„œ ์ •์˜ํ•œ CI/CD ํ”„๋กœ์„ธ์Šค ๋Œ€์ƒ ์œ„ํ˜‘๊ณผ ๊ฐœ์„ ๋ฐฉ์•ˆ์— ๋Œ€ํ•ด ์‚ดํŽด๋ดค๋Š”๋ฐ์š”. ์ด๋Ÿฐ ์†Œํ”„ํŠธ์›จ์–ด ๊ณต๊ธ‰ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์œ„ํ˜‘์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ํŒจํ‚ค์ง€๋ฅผ ๊ณต๊ฒฉ์ž์˜ ์˜๋„๋Œ€๋กœ ์•…์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฌด๋‹จ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ์‹์ด ๋Œ€๋ถ€๋ถ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— SLSA ํ‘œ์ค€์—์„œ๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์–ด๋””์„œ ์–ด๋–ป๊ฒŒ ๋นŒ๋“œ๋˜์—ˆ๋Š”์ง€ ๊ทธ ๊ธฐ์›์„ ๊ธฐ๋กํ•œ Provenance๋ฅผ ์ค‘์š”ํ•˜๊ฒŒ ์—ฌ๊ธฐ๊ณ  ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š”๋ฐ์š”.

๋งŒ์•ฝ ์—ฌ๋Ÿฌ๋ถ„์ด ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๊ฑฐ๋‚˜ ์šด์˜ ์ค‘์ธ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ณด์•ˆ์„ ๊ฐœ์„ ํ•˜๊ณ  ์‹ถ์œผ์…จ๋‹ค๋ฉด, SLSA์˜ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด๋ด๋„ ์ข‹์„ ๋“ฏํ•ฉ๋‹ˆ๋‹ค.

ํ˜น์‹œ ์ด๋ฒˆ ๋‚ด์šฉ ๊ด€๋ จํ•ด์„œ ๋” ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด ์•„๋ž˜ ๋ฉ”์ผ๋ฆฌ ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.๐Ÿ˜€

๊ทธ๋Ÿผ, ๋‹ค์Œ ์†Œ์‹์ง€์—์„œ ๋ณด๋‹ค ์•Œ์ฐจ๊ณ  ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ์œผ๋กœ ์ฐพ์•„๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜๋„ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๊ตฌ๋…์ž๋‹˜ ๐Ÿ˜บ

 

๐Ÿ”—References

 

 

๋‹ค๊ฐ€์˜ฌ ๋‰ด์Šค๋ ˆํ„ฐ๊ฐ€ ๊ถ๊ธˆํ•˜์‹ ๊ฐ€์š”?

์ง€๊ธˆ ๊ตฌ๋…ํ•ด์„œ ์ƒˆ๋กœ์šด ๋ ˆํ„ฐ๋ฅผ ๋ฐ›์•„๋ณด์„ธ์š”

โœ‰๏ธ

์ด๋ฒˆ ๋‰ด์Šค๋ ˆํ„ฐ ์–ด๋– ์…จ๋‚˜์š”?

DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€ ๋‹˜์—๊ฒŒ โ˜•๏ธ ์ปคํ”ผ์™€ โœ‰๏ธ ์ชฝ์ง€๋ฅผ ๋ณด๋‚ด๋ณด์„ธ์š”!

๋Œ“๊ธ€

์˜๊ฒฌ์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”

ํ™•์ธ
์˜๊ฒฌ์ด ์žˆ์œผ์‹ ๊ฐ€์š”? ์ œ์ผ ๋จผ์ € ๋Œ“๊ธ€์„ ๋‹ฌ์•„๋ณด์„ธ์š” !

๋‹ค๋ฅธ ๋‰ด์Šค๋ ˆํ„ฐ

ยฉ 2024 DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€

DevOps, ํด๋ผ์šฐ๋“œ, IT ๊ธฐ์ˆ  ๊ด€๋ จ ์ตœ์‹  ์†Œ์‹๊ณผ ์ •๋ณด๋ฅผ ์ •๋ฆฌํ•ด์„œ ์ฃผ 1ํšŒ ์ด๋ฉ”์ผ๋กœ ์ „ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค๐Ÿ˜บ

๋‰ด์Šค๋ ˆํ„ฐ ๋ฌธ์˜eduukulelekim@gmail.com

๋ฉ”์ผ๋ฆฌ ๋กœ๊ณ 

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ ์„œ๋น„์Šค ์†Œ๊ฐœ์„œ ์˜ค๋ฅ˜ ๋ฐ ๊ธฐ๋Šฅ ๊ด€๋ จ ์ œ๋ณด

์„œ๋น„์Šค ์ด์šฉ ๋ฌธ์˜admin@team.maily.so

๋ฉ”์ผ๋ฆฌ ์‚ฌ์—…์ž ์ •๋ณด

๋ฉ”์ผ๋ฆฌ (๋Œ€ํ‘œ์ž: ์ดํ•œ๊ฒฐ) | ์‚ฌ์—…์ž๋ฒˆํ˜ธ: 717-47-00705 | ์„œ์šธ ์„œ์ดˆ๊ตฌ ๊ฐ•๋‚จ๋Œ€๋กœ53๊ธธ 8, 8์ธต 11-7ํ˜ธ

์ด์šฉ์•ฝ๊ด€ | ๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ | ์ •๊ธฐ๊ฒฐ์ œ ์ด์šฉ์•ฝ๊ด€ | ๋ผ์ด์„ ์Šค