์๋ ํ์ธ์ ๊ตฌ๋ ์๋, DevOps ์์๊ณผ ๊ธฐ์ ์ง์์ ์ ๋ฆฌํด์ ๊ณต์ ํด๋๋ฆฌ๋ DevOps ์ฌํ์ ์ํ ์์์ง์ ๋๋ค.
์ค๋๋ ์๋ง์ ๊ธฐ์ ๊ณผ ์กฐ์ง์์ ํจ์จ์ ์ธ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ํด CI/CD๋ฅผ ๋์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. CI/CD ํ์ดํ๋ผ์ธ์ผ๋ก ๊ฐ๋ฐ ์ดํ์ ์ฝ๋ ํตํฉ๊ณผ ๋ฐฐํฌ๋ฅผ ์๋ํํ๋ฉด ์ ์์ผํ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ์ง๋ง, ์ด๋ฐ ํ์ดํ๋ผ์ธ ๋ด๋ถ์ ๋ณด์ ์ทจ์ฝ์ ์ด ์กด์ฌํ๋ค๋ฉด ์ฌ๊ฐํ ๋ณด์ ์ฌ๊ณ ๋ก ์ด์ด์ง ์๋ ์๊ฒ ์ฃ .
๊ทธ๋์ 2023๋ 4์, Google์์ ์ํํธ์จ์ด ๊ณต๊ธ ํ๋ก์ธ์ค์ ๋ณด์ ๊ธฐ์ค์ ์ ์ํ๋๋ฐ์. ๋ฐ๋ก SLSA(Supply-chain Levels for Software Artifacts)์ ๋๋ค.
๐ก๏ธSLSA์ ๋ณด์ ์์ค 4๋จ๊ณ
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์์๋ 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
์๊ฒฌ์ ๋จ๊ฒจ์ฃผ์ธ์