inflearn logo
็Ÿฅ่ญ˜ๅ…ฑๆœ‰
inflearn logo

Docker Masters! CI/CDใ€DevSecOpsใง่‡ชๅ‹•ๅŒ–ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃๅฎŸๅ‹™ใพใง๏ผ

ใ“ใฎ่ฌ›็พฉใฏDockerใฎๅฎŸๅ‹™ๆŠ€่ก“๏ผˆใ‚คใƒณใ‚นใƒˆใƒผใƒซโ†’้‹ๅ–ถโ†’่‡ชๅ‹•ๅŒ–โ†’ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ๏ผ‰ใ‚’ๆฎต้šŽ็š„ใซๅญฆ็ฟ’ใ—ใ€ๅ„ใ‚ปใ‚ฏใ‚ทใƒงใƒณใ”ใจใซๆœ€ๆ–ฐใฎใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ่„…ๅจใŠใ‚ˆใณๅฏพๅฟœ็ญ–ใพใงๅน…ๅบƒใๆ‰ฑใฃใฆใ„ใพใ™ใ€‚ๅฎŸ็ฟ’ไธญๅฟƒใงๅฎŸ้š›ใซๆ‰‹ใ‚’ๅ‹•ใ‹ใ—ใชใŒใ‚‰่บซใซใคใ‘ใ‚‹ๆ–นๅผใŒ็‰นๅพดใงใ™ใ€‚DevOpsใ€ใ‚คใƒณใƒ•ใƒฉใ‚จใƒณใ‚ธใƒ‹ใ‚ขใ€ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃๅฎŸๅ‹™่€…ใ™ในใฆใซๆœ€ๆ–ฐใฎใ‚ณใƒณใƒ†ใƒŠ/ใ‚ฏใƒฉใ‚ฆใƒ‰็พๅ ดใ‚’ไฝ“้จ“ใ—ใŸใ„ใชใ‚‰ๅผทใๆŽจๅฅจใ•ใ‚Œใ‚‹ใ‚ซใƒชใ‚ญใƒฅใƒฉใƒ ใงใ™ใ€‚

้›ฃๆ˜“ๅบฆ ๅ…ฅ้–€

ๅ—่ฌ›ๆœŸ้–“ ็„กๅˆถ้™

Docker
Docker
Kubernetes
Kubernetes
CI/CD
CI/CD
devsecops
devsecops
security training
security training
Docker
Docker
Kubernetes
Kubernetes
CI/CD
CI/CD
devsecops
devsecops
security training
security training

ใŠ็Ÿฅใ‚‰ใ›

2 ไปถ

  • cloudsecuritylab๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ใ“ใ‚“ใซใกใฏใ€Inflearnๅ—่ฌ›็”Ÿใฎ็š†ใ•ใ‚“๏ผ

    Dockerใฎๆœ€ๆ–ฐๅ‹•ๅ‘ใจๅฎŸๅ‹™ๆŠ€่ก“ใ‚’ใฉใ“ใ‚ˆใ‚Šใ‚‚ๆ—ฉใใŠๅฑŠใ‘ใงใใ‚‹ใ‚ˆใ†ๅŠชใ‚ใฆใ„ใ‚‹ใ€ใ‚ฏใƒฉใ‚ฆใƒ‰ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใƒฉใƒœไปฃ่กจใฎใƒใ‚งใƒปใ‚คใƒซใ‚ฝใƒณใงใ™ใ€‚

    ๆœ€่ฟ‘ใ€Docker DesktopใฎๅผทๅŠ›ใชใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃๅˆ†ๆžใƒ„ใƒผใƒซใงใ‚ใ‚‹DHI(Docker Hub Introspection)ๆฉŸ่ƒฝใŒๅ…จ้ข็š„ใซ็„กๆ–™ใงๅ…ฌ้–‹ใ•ใ‚Œใพใ—ใŸใ€‚ใ“ใ‚Œใซไผดใ„ใ€ๅพ“ๆฅใฏๆœ‰ๆ–™ใƒ—ใƒฉใƒณใงใฎใฟๅˆถ้™็š„ใซ็ขบ่ชๅฏ่ƒฝใ ใฃใŸใ‚คใƒกใƒผใ‚ธใฎ่„†ๅผฑๆ€งใŠใ‚ˆใณๆง‹ๆˆๅˆ†ๆžใฎๅฎŸ็ฟ’ใ‚’ใ€ใ™ในใฆใฎๅ—่ฌ›็”Ÿใฎ็š†ๆง˜ใŒ็›ดๆŽฅไฝ“้จ“ใ—ใฆใ„ใŸใ ใ‘ใ‚‹ใ‚ˆใ†ใ€ใ‚ปใ‚ฏใ‚ทใƒงใƒณ3ใฎๆœ€ๅพŒใซใ€Œใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใฎใŸใ‚ใฎใ‚คใƒกใƒผใ‚ธ๏ผšDHI(Docker Hardened Images)ใ€ใฎๅ‹•็”ปใ‚’ใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใ—ใพใ—ใŸใ€‚

     

    ๐Ÿ›  ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใฎ่ƒŒๆ™ฏ๏ผšDHI(Docker Hub Introspection)ใฎ็„กๆ–™ๅŒ–

    ไปฅๅ‰ใฏใ€Docker Hubใซใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใ•ใ‚ŒใŸใ‚คใƒกใƒผใ‚ธใฎๅ†…้ƒจใƒฌใ‚คใƒคใƒผๆง‹้€ ใ‚„ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขไป•ๆง˜๏ผˆSBOM๏ผ‰ใ€่„†ๅผฑๆ€งๅˆ†ๆžใฎ็ตๆžœใ‚’่ฉณ็ดฐใซ็ขบ่ชใ™ใ‚‹ใซใฏใ€ๆœ‰ๆ–™ใ‚ตใƒ–ใ‚นใ‚ฏใƒชใƒ—ใ‚ทใƒงใƒณใŒๅฟ…่ฆใงใ—ใŸใ€‚ใ—ใ‹ใ—ใ€ๆœ€่ฟ‘ใฎDockerใฎใƒใƒชใ‚ทใƒผๅค‰ๆ›ดใซใ‚ˆใ‚Šใ€ใ“ใฎๆฉŸ่ƒฝใŒ็„กๆ–™ใƒฆใƒผใ‚ถใƒผใซใ‚‚้–‹ๆ”พใ•ใ‚Œใพใ—ใŸใ€‚

    ใ‚คใƒกใƒผใ‚ธใ‚’ใƒญใƒผใ‚ซใƒซใซใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ™ใ‚‹ใ“ใจใชใใ€ใ‚ฆใ‚งใƒ–ใ‚คใƒณใ‚ฟใƒผใƒ•ใ‚งใƒผใ‚นใจCLIใ‚’้€šใ˜ใฆใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ็Šถๆ…‹ใ‚’ๅณๅบงใซ็‚นๆคœใงใใ‚‹ใ“ใฎๆฉŸ่ƒฝใฏใ€็พไปฃ็š„ใชใ‚ณใƒณใƒ†ใƒŠใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ้‹็”จ๏ผˆDevSecOps๏ผ‰ใฎไธญๆ ธ็š„ใช่ฆ็ด ใงใ™ใ€‚

    image.png.webp

     

     

    ๐Ÿ“บ ๅค‰ๆ›ดใŠใ‚ˆใณ่ฟฝๅŠ ใ•ใ‚ŒใŸ่ฌ›็พฉใƒชใ‚นใƒˆ

    [ใ‚ปใ‚ฏใ‚ทใƒงใƒณ 3. Dockerใ‚ณใƒณใƒ†ใƒŠใฎๆ ธๅฟƒๆฆ‚ๅฟต]

    • ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใฎใŸใ‚ใฎใ‚คใƒกใƒผใ‚ธ๏ผšDHI(Docker Hardened Images)

      • ่ฟฝๅŠ ๅ†…ๅฎน๏ผš Docker Hubใ‚ฆใ‚งใƒ–ใ‚ณใƒณใ‚ฝใƒผใƒซใงใ‚คใƒกใƒผใ‚ธใฎ่„†ๅผฑๆ€ง๏ผˆVulnerability๏ผ‰ใƒฌใƒใƒผใƒˆใ‚’่งฃๆžใ—ใ€Dockerใ‹ใ‚‰ๆ–ฐใ—ใๆไพ›ใ•ใ‚ŒใŸDHIใ‚คใƒกใƒผใ‚ธใ‚’ใƒ€ใ‚ฆใƒณใƒญใƒผใƒ‰ใ—ใฆใใฎๆฉŸ่ƒฝใ‚’ใƒ†ใ‚นใƒˆใ™ใ‚‹ๅ†…ๅฎนใ‚’่ฟฝๅŠ ใ—ใพใ—ใŸใ€‚

         

         

    โœ… ๅ—่ฌ›ใ‚ฌใ‚คใƒ‰

    DHIใฏใ€ๅˆฅ้€”ใฎ่ค‡้›‘ใชใƒ„ใƒผใƒซใ‚’ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ™ใ‚‹ใ“ใจใชใใ€Docker Hubใฎใ‚ขใ‚ซใ‚ฆใƒณใƒˆใ•ใˆใ‚ใ‚Œใฐใ™ใใซไฝฟ็”จใงใใ‚‹ๅผทๅŠ›ใชใƒ„ใƒผใƒซใงใ™ใ€‚ใ‚คใƒกใƒผใ‚ธใƒฌใ‚คใƒคใƒผใฎ้€ๆ˜Žๆ€งใ‚’็ขบไฟใ—ใ€ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃไบ‹ๆ•…ใ‚’ไบˆ้˜ฒใ™ใ‚‹ๅฎŸๅ‹™่ƒฝๅŠ›ใ‚’่บซใซใคใ‘ใŸใ„ๆ–นใฏใ€ใœใฒไปŠๅ›žใฎใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ่ฌ›็พฉใ‚’่ฆ–่ดใ—ใฆใฟใฆใใ ใ•ใ„ใ€‚

    • ใƒกใƒผใƒซใงๅ ฑๅ‘Šใ™ใ‚‹:ilsunchoi@cloudsecuritylab.co.kr

    • ่ฌ›็พฉๅ†…ใฎใ€Œ่ณชๅ•ใ™ใ‚‹ใ€ๆŽฒ็คบๆฟใ‚’ๅˆฉ็”จ

    ๆ€ฅ้€Ÿใซๅค‰ๅŒ–ใ™ใ‚‹ใƒ‰ใƒƒใ‚ซใƒผใฎใ‚จใ‚ณใ‚ทใ‚นใƒ†ใƒ ใซๅˆใ‚ใ›ใฆใ€็š†ๆง˜ใŒๅธธใซๆœ€ๆ–ฐๆŠ€่ก“ใฎไธญๅฟƒใซใ„ใ‚‰ใ‚Œใ‚‹ใ‚ˆใ†ใ€ๆœ€ๅ–„ใ‚’ๅฐฝใใ—ใฆใพใ„ใ‚Šใพใ™ใ€‚

    ไปŠๆ—ฅใ‚‚ๆฅฝใ—ใ„ๅญฆ็ฟ’ใซใชใ‚Šใพใ™ใ‚ˆใ†ใซ๏ผ

    ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    0
  • cloudsecuritylab๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ใ“ใ‚“ใซใกใฏใ€Inflearnๅ—่ฌ›็”Ÿใฎ็š†ใ•ใ‚“!

    ใ„ใคใ‚‚็†ฑๅฟƒใซ่ฌ›็พฉใ‚’ๅ—่ฌ›ใ—ใฆใ„ใŸใ ใใ€ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚ๅฎŸใฏใ€ๆœ€่ฟ‘ใฎDocker ใ‚จใƒณใ‚ธใƒณใฎใƒกใ‚ธใƒฃใƒผใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆ(v27.0ใ€v28.0)ใซ้–ข้€ฃใ—ใฆใ€ใ‚นใƒˆใƒฌใƒผใ‚ธใƒ‰ใƒฉใ‚คใƒใƒผๆง‹้€ ใซ้‡่ฆใชๅค‰ๆ›ดใŒใ‚ใฃใŸใŸใ‚ใ€ใ“ใ‚Œใ‚’ๅๆ˜ ใ™ใ‚‹ใŸใ‚ใซใ‚ปใ‚ฏใ‚ทใƒงใƒณ3ใฎไธ€้ƒจใฎ่ฌ›็พฉๅ†…ๅฎนใ‚’ๆœ€ๆ–ฐๅŒ–ใ—ใพใ—ใŸใ€‚

    ๐Ÿ›  ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใฎ่ƒŒๆ™ฏ๏ผšGraphdriver plugins ใฎ้žๆŽจๅฅจๅŒ–

    Docker v27.0ใ‹ใ‚‰ใ€ๅพ“ๆฅใฎๅฎŸ้จ“็š„ๆฉŸ่ƒฝใ ใฃใŸGraphdriver pluginsใŒใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใง็„กๅŠนๅŒ–(Disabled)ใ•ใ‚Œใ€v28.0ใงใฏๅฎŒๅ…จใซๅ‰Š้™ค(Removed)ใ•ใ‚Œใ‚‹ไบˆๅฎšใงใ™ใ€‚Dockerใฏ็พๅœจใ€containerdใ‚คใƒกใƒผใ‚ธใ‚นใƒˆใ‚ขใจใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใ‚ฟใƒผ(snapshotter)ใ‚’ไฝฟ็”จใ™ใ‚‹ๆง‹้€ ใ‚’ๆŽจๅฅจใ—ใฆใ„ใพใ™ใ€‚

    https://docs.docker.com/engine/deprecated/#graphdriver-plugins-experimental

    ใ“ใฎใ‚ˆใ†ใชๅค‰ๅŒ–ใซใ‚ˆใ‚Šใ€ใƒ›ใ‚นใƒˆใƒฌใƒ™ใƒซใงDockerใ‚คใƒกใƒผใ‚ธใฎใƒฌใ‚คใƒคใƒผๆง‹้€ ใ‚’็ขบ่ชใ™ใ‚‹็ตŒ่ทฏใจๆ–นๆณ•ใŒๅค‰ๆ›ดใ•ใ‚Œใพใ—ใŸใ€‚้ŽๅŽปใฎๆ–นๅผใฎใพใพๅฎŸ็ฟ’ใ‚’่กŒใ†ใจใ€ๆœ€ๆ–ฐใƒใƒผใ‚ธใƒงใƒณใฎDocker็’ฐๅขƒใงใฏๆœŸๅพ…ใ—ใฆใ„ใŸใƒ•ใ‚กใ‚คใƒซ็ตŒ่ทฏ(Layer path)ใŒ่กจ็คบใ•ใ‚Œใชใ‹ใฃใŸใ‚Šใ€ๆง‹้€ ใŒ็•ฐใชใฃใฆ่ฆ‹ใˆใŸใ‚Šใ™ใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚

    ใ“ใ‚Œใซไผดใ„ใ€็š†ใ•ใ‚“ใŒๆœ€ๆ–ฐใฎๅฎŸๅ‹™็’ฐๅขƒใงใ‚‚ๆททไนฑใชใๅญฆ็ฟ’ใงใใ‚‹ใ‚ˆใ†ใ€้–ข้€ฃ่ฌ›็พฉใ‚’ๆ–ฐใŸใซๆ’ฎๅฝฑใ—ใฆใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ—ใพใ—ใŸใ€‚

    ๐Ÿ“บ ๅค‰ๆ›ดใ•ใ‚ŒใŸ่ฌ›็พฉใƒชใ‚นใƒˆ

    [ใ‚ปใ‚ฏใ‚ทใƒงใƒณ3. Dockerใ‚ณใƒณใƒ†ใƒŠใฎๆ ธๅฟƒๆฆ‚ๅฟต]

    1. ใ‚คใƒกใƒผใ‚ธใƒžใƒ‹ใƒ•ใ‚งใ‚นใƒˆใƒ•ใ‚กใ‚คใƒซใจใƒฌใ‚คใƒคใƒผๆง‹้€ ใฎ็ขบ่ช

      • ๅค‰ๆ›ดๅ†…ๅฎน:ๆœ€ๆ–ฐใฎใ‚นใƒˆใƒฌใƒผใ‚ธใƒ‰ใƒฉใ‚คใƒใƒผ็’ฐๅขƒใงใ‚คใƒกใƒผใ‚ธใƒฌใ‚คใƒคใƒผใƒ•ใ‚กใ‚คใƒซใ‚ทใ‚นใƒ†ใƒ ใซใ‚ขใ‚ฏใ‚ปใ‚นใ—ใ€ๆง‹้€ ใ‚’ๆŠŠๆกใ™ใ‚‹ๆ–นๆณ•ใซใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ•ใ‚Œใพใ—ใŸใ€‚

    2. ใ‚ณใƒณใƒ†ใƒŠใฎ่ฉณ็ดฐๆƒ…ๅ ฑ็ขบ่ชใจใƒฉใ‚คใƒ•ใ‚ตใ‚คใ‚ฏใƒซๅฎŸ็ฟ’

      • ๅค‰ๆ›ดๅ†…ๅฎน: ๅค‰ๆ›ดใ•ใ‚ŒใŸใ‚นใƒˆใƒฌใƒผใ‚ธๆง‹้€ ใซๅˆใ‚ใ›ใฆใ€ใ‚ณใƒณใƒ†ใƒŠใฎ่ฉณ็ดฐๆƒ…ๅ ฑใ‚’inspectใ—ใ€rootfsใƒ‘ใ‚นใ‹ใ‚‰ใƒ•ใ‚กใ‚คใƒซใ‚ทใ‚นใƒ†ใƒ ใฎmergedใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใ‚’็ขบ่ชใ™ใ‚‹ๅฎŸ็ฟ’ๅ†…ๅฎนใ‚’่ฃœๅฎŒใ—ใพใ—ใŸใ€‚

    โœ… ๅ—่ฌ›ใ‚ฌใ‚คใƒ‰

    ๆ—ขใซใ“ใฎ่ฌ›็พฉใ‚’ๅ—่ฌ›ใ•ใ‚ŒใŸๆ–นใ‚‚ใ€ๆœ€ๆ–ฐใฎDockerใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใฎๅค‰ๅŒ–ใ‚’็†่งฃใ™ใ‚‹ใŸใ‚ใซใ€ใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ•ใ‚ŒใŸ่ฌ›็พฉใ‚’ใ‚‚ใ†ไธ€ๅบฆ่ปฝใ่ฆ‹็›ดใ™ใ“ใจใ‚’ใŠๅ‹งใ‚ใ—ใพใ™ใ€‚ๅˆใ‚ใฆๅ—่ฌ›ใ•ใ‚Œใ‚‹ๆ–นใฏใ€ๅค‰ๆ›ดใ•ใ‚ŒใŸๅ†…ๅฎนใงใใฎใพใพ้€ฒใ‚ใฆใ„ใŸใ ใ‘ใ‚Œใฐๅคงไธˆๅคซใงใ™ใ€‚

    ใ‚‚ใ—่ฌ›็พฉๅ†…ๅฎนใจ็•ฐใชใ‚‹็‚นใ‚„่ฟฝๅŠ ใฎๅค‰ๆ›ดไบ‹้ …ใŒ่ฆ‹ใคใ‹ใฃใŸๅ ดๅˆใฏใ€้ ๆ…ฎใชใไปฅไธ‹ใฎๆ–นๆณ•ใงใŠ็Ÿฅใ‚‰ใ›ใใ ใ•ใ„ใ€‚็š†ใ•ใ‚“ใฎ่ฒด้‡ใชใƒ•ใ‚ฃใƒผใƒ‰ใƒใƒƒใ‚ฏใฏใ€่ฌ›็พฉใ‚’ใ‚ˆใ‚ŠๅฎŒ็’งใชใ‚‚ใฎใซใ—ใ€ไป–ใฎๅ—่ฌ›็”Ÿใซใ‚‚ๅคงใใชๅŠฉใ‘ใจใชใ‚Šใพใ™ใ€‚

    • emailใงๅ ฑๅ‘Šใ™ใ‚‹๏ผšilsunchoi@cloudsecuritylab.co.kr

    • ่ฌ›็พฉใง่ณชๅ•ใ™ใ‚‹ใƒปๅ ฑๅ‘Šใ™ใ‚‹

    ๆŠ€่ก“ใฎๅค‰ๅŒ–ใซๅˆใ‚ใ›ใฆ่ฌ›็พฉใ‚ณใƒณใƒ†ใƒณใƒ„ใ‚‚็ถ™็ถš็š„ใซใ‚ขใƒƒใƒ—ใƒ‡ใƒผใƒˆใ—ใ€็š†ๆง˜ใซๆœ€ใ‚‚ๆญฃ็ขบใงๆœ‰็”จใช็Ÿฅ่ญ˜ใ‚’ใŠๅฑŠใ‘ใ„ใŸใ—ใพใ™ใ€‚

    ใใ‚ŒใงใฏไปŠๆ—ฅใ‚‚ๆฅฝใ—ใ„ๅญฆ็ฟ’ใซใชใ‚Šใพใ™ใ‚ˆใ†ใซ๏ผ

    ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™ใ€‚

    0

๏ฟฅ12,669