仿¥ããœãããŠã§ã¢ã¯å®æçã«ãµãŒãããŒãã£ã®ãœãŒã¹ããã®ãªãŒãã³ãœãŒã¹ã³ãŒããã¢ããªã±ãŒã·ã§ã³ã«çµ±åããŠããŸãã ãã®ãã©ã¯ãã£ã¹ã«ãããéçºè ã¯ããçãæéæ ã§ãã髿§èœãªãœãããŠã§ã¢ãäœæã§ããŸãããååã«ç²Ÿæ»ãããŠããªãã³ãŒããå°å ¥ãããªã¹ã¯ã䌎ããŸãã ãªãŒãã³ãœãŒã¹ã³ãŒãã®ã»ãã¥ãªãã£ãã©ã®çšåºŠèªèããŠããŸãã?
ç§ãã¡ã®ã»ãšãã©ã¯ãpipãŸãã¯npmã䜿çšããŠãœãããŠã§ã¢ãèªç±ã«ã€ã³ã¹ããŒã«ããæ©èœãšãµããŒãã«åºã¥ããŠæ±ºå®ãäžããŸãã å¹çã¯ãéæãã¹ãé ä¿¡ç®æšãããå Žåã®ç®æšã§ãã ãªãŒãã³ãœãŒã¹ãœãªã¥ãŒã·ã§ã³ã䜿çšããªãããšãéžæããå Žåãçç£æ§ã®å€§ããªã¡ãªãããéããŸãã ãããããªãŒãã³ãœãŒã¹ãœãªã¥ãŒã·ã§ã³ã䜿çšããããšã決å®ããå ŽåããœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ã«å®å šã§ãªãã³ã³ããŒãã³ããå°å ¥ããå¯èœæ§ããããé©åãªããŒã«ãšããã»ã¹ã§ãªã¹ã¯ã軜æžããå¿ èŠããããŸãã
ã§ã¯ããœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ãšã¯äœã§ãããã? ãœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ã¯ãçµç¹ã®ã¢ããªã±ãŒã·ã§ã³ã«å ¥ãåã«ã³ãŒããéçºããããã«å¿ èŠãªã¹ãããã§æ§æãããŠããŸãã ãã§ãŒã³ã«ã¯ãã³ãŒããæžãããã¹ãŠã®ãªãŒãã³ãœãŒã¹ã³ã³ããªãã¥ãŒã¿ãŒãã³ãŒããäŸåããäŸåé¢ä¿ãéçºè ãã³ãŒããããŠã³ããŒããããªããžããªãããã³çµç¹ã®å éšã¬ãã¥ãŒãå«ãŸããŸãã ãã§ãŒã³å ã®åãªã³ã¯ã¯ãå®å šã§ãªãã³ãŒããæªæã®ããã³ãŒããéçšã¢ããªã±ãŒã·ã§ã³ã«äŸµå ¥ããå¯èœæ§ãããæœåšçãªåŒ±ç¹ã衚ããŸããÂ
äœãããŸããããªãå¯èœæ§ããããŸã
Googleã®ã»ãã¥ãªãã£ããªã·ãŒã¯ ããæ»æè ãã³ãŒããæ¿å ¥ããããšã«æåããå Žåãããã¯ã»ãšãã©ã²ãŒã ãªãŒããŒã§ãããšææããŠããŸãã æ®å¿µãªãããç¶ç¶çé 眮 (CD) ãäžè¬çã«ãªãã«ã€ããŠãææããã³ãŒãããŠãŒã¶ãŒã«ãªãªãŒã¹ããåã«ãã®ãããªæ»æãèŠã€ãããŠã£ã³ããŠã¯çãŸã£ãŠããŸãã
æ»æè ã®ç®æšã¯ããŸããŸã§ãã æå·é貚ãã€ãã³ã°ã®ããã®ãªãœãŒã¹ã®ä¹ã£åããã¯ã¬ãã³ã·ã£ã«ã¹ã¿ããã£ã³ã°ã®ããã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã®çµã¿åããã®åéãããã³ããŒã¿ã¹ã¯ã¬ã€ãã³ã°ã¯ã»ãã®äžäŸã§ãã çµæã¯ãã°ãã°æ²æšã§ãã
ãªãŒãã³ãœãŒã¹ãœãªã¥ãŒã·ã§ã³ã䜿çšããããšã®æœåšçãªãªã¹ã¯ã®ããã€ãã調ã¹ãŠã¿ãŸãããã
äžè¬çãªæ»æåœ¢æ
æ£èŠã®ããã±ãŒãžãè£ ã£ãæªæã®ãããœãããŠã§ã¢ã¯ãããã±ãŒãžç®¡çãœãããŠã§ã¢ã«æ¥åžžçã«è¡šç€ºãããŸãã ãµãã©ã€ãã§ãŒã³æ»æã«ã¯ãææ°ã®ãœãããŠã§ã¢ã®å€æ°ã®äŸåé¢ä¿ã§ããã¿ã€ãã¹ã¯ã¯ããã£ã³ã°ãšäŸåé¢ä¿ã®æ··ä¹±ãšãã2çš®é¡ããããŸãã ã©ã¡ãã®å Žåããå 害è ã¯ããŸããŸãªæŠè¡ã䜿çšããŠãéçºè ãŸãã¯ç®¡çãœãããŠã§ã¢ãã ãŸããŠãæªæã®ããã³ãŒããå®è¡ã§ããäŸåé¢ä¿ãã¡ã€ã«ãããŠã³ããŒããããŸããÂ
ã¿ã€ãã¹ã¯ã¯ããã£ã³ã°
ã¿ã€ãã¹ã¯ã¯ããã£ã³ã°ã¯ãããŒããŒãã®ããŒã®è¿æ¥æ§ãšäžè¬çãªã¹ãã«ãã¹ã«äŸåããŠå ¥åãååŸããŸãã ãã®æ»ææ¹æ³ã¯ãããã°ã©ãã³ã°èšèªã®åºç€ãè¶ ããŠããŸãã Webã®åæã®é ããããã¡ã€ã³åã®ã¿ã€ããã¹ãåé¡ã§ããã ããã±ãŒãžãšç»åã®æ¬ºçã¯ãŸããŸãèå»¶ããŠãããéçºè ã®çŽ æ©ãæã«é Œã£ãŠããŸãã
ã¿ã€ãã¹ã¯ã¯ããã£ã³ã°ã§ãçºè¡å ãã¹ãã«ãã¹ã®ããååã®ããã±ãŒãžãã¢ããããŒãããŸããã ã¹ãã«ãã¹ã®ååã¯å ã®ããã±ãŒãžã®ååãšéåžžã«ãã䌌ãŠãããããéçºè ã¯åèªã®ã¹ãã«ãééããããšã«æ°ä»ãããç¡æèã®ãã¡ã«æªæã®ããã³ãŒããããŠã³ããŒãããŸãã
äŸåé¢ä¿ã®æ··ä¹±
äŸåé¢ä¿ã®æ··ä¹±ã¯ããœãããŠã§ã¢ã䜿çšãããã©ã€ããŒãäŸåé¢ä¿ãšãããªãã¯äŸåé¢ä¿ã®çµã¿åãããå©çšããŸãã ããã«ãŒã¯éåžžãNode.jsã¢ããªã±ãŒã·ã§ã³ã®package.jsonãã¡ã€ã«ãæ€æ»ããŠãnpmã§å éšã®èŠæ±ãããŠããªãããã±ãŒãžãèŠã€ããŸãã 圌ãã¯ãã®åãåå空éã§æªæã®ããããã±ãŒãžãäœæããèªååãããéçºè ããŒã«ã¯ãæå³ããå éšããã±ãŒãžã®ä»£ããã«ãããã®å€éšã®æªæã®ããããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
ãã®æŠè¡ã¯npmã«éå®ãããŸããã ããšãã°ãPythonã®ãããã¯ãæªçšã®æ©ãçããäžå®ã衚瀺ããŸãã ããã§ãããã«ãŒã¯ãèŠä»¶.txtãã¡ã€ã«ã§èå¥ãããå éšããã±ãŒãžãšåãååã®ããã±ãŒãžãPyPiã«ç»é²ã§ããŸãã ç»é²æã«ãæ£èŠã®ããã±ãŒãžãããé«ãããŒãžã§ã³çªå·ãéžæããŸãã ãã®å€§ããæ°å€ã âextra-index-url ãå«ããã«ãã«å«ãŸããŠããå Žåããããåªå ããããã®äžèŠæ°ããããŒãžã§ã³ãå€ãããŒãžã§ã³ã眮ãæããŸãã
ã¿ã€ãã¹ã¯ã¯ããã£ã³ã°ãšåæ§ã«ãäŸåé¢ä¿ã®æ··ä¹±ã¯ãã¹ãŠã®èšèªã®åé¡ã§ãã åæ§ã®æ»æã¯ãJava ã® Maven pom.xml ãã¡ã€ã«ãŸã㯠Gradle èšå®ãã¡ã€ã«ããŸã㯠.csproj ã§ãçºçããå¯èœæ§ããããŸã .NET ã® NuGet ããã±ãŒãžãåç §ãããã¡ã€ã«ã ããŒã«ãã³ãŒãã誀ã£ãŠçœ®ãæããã¢ããªã±ãŒã·ã§ã³ãè匱ãªãŸãŸã«ããŸãã

ãããã®åé¡ã¯ãæšç§»çãªäŸåé¢ä¿ã®ãã§ãŒã³ã®å¥¥æ·±ãã«ååšããå¯èœæ§ãããããšãèŠããŠããããšãéèŠã§ãã äžã®å³ã§ã¯ãæ»æè ãäŸåé¢ä¿ãäŸåé¢ä¿ãäŸåé¢ä¿ãæšçã«ããŠããããšãããããŸãã ãã®ãã¹ãã£ã³ã°ã«ããããšã³ã·ã¹ãã ã¯ç®¡çäžèœã«ãªããç£æ»ãå°é£ã«ãªããŸããÂ
ç§ãã¡ã¯ãéçºè ãæªæã®ããã³ãŒãããŒã¹ã®å€æŽãè¡ããªãããšãä¿¡é Œãããã©ãŒã¢ã€ã¬ãã¥ãŒããªã·ãŒããœãããŠã§ã¢ãä¿è·ãããšããã³ã³ãã³ããæãããããããŸããã äŸåé¢ä¿ãã¢ããã°ã¬ãŒãããããšãä»ã®èª°ããç§ãã¡ã®å³æ Œãã§ã¬ãã¥ãŒãå®è¡ããŠããããšãä¿¡é ŒããŸãã ããããããã¯å°ããªããŒã ãå人ã«ãã£ãŠç¶æãããããã±ãŒãžã«ã¯åœãŠã¯ãŸããªããããããŸããã
ã·ããªãªäŸ
æªæã®ããã¢ã¯ã¿ãŒã¯ãããã€ãã®ãŠãŒãã£ãªãã£é¢æ°ã®ããã«ãäžèŠç¡å®³ãªããã±ãŒãžãäœæããŸãã ãããããã±ãŒãžXãšåŒã³ãŸãããã
次ã«ãã³ãŒããããã±ãŒãžé åžãµã€ãã«çºè¡ããŸãã ã³ãŒãã GitHub ã§æ€æ»å¯èœã§ãããããšãã£ãŠãå¿ ãããããã±ãŒãžç®¡çãµã€ãã®åãã³ãŒãã§ãããšã¯éããªãããšã«æ³šæããŠãã ããã
ããã±ãŒãž Y ã®ã³ãŒããžã®ãã«ãªã¯ãšã¹ãã®äžéšãšããŠããã±ãŒãž X ã䜿çšãããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®ãã€ããŒãªãã°ãä¿®æ£ããŸãã 圌ãã®æ¬åœã«æçšãªãã°ä¿®æ£ã¯ãæªæã®ããäŸåé¢ä¿(ããã±ãŒãžX)ãšãã¬ã¹ããåŒã蟌ã¿ãŸãã! æªæã®ããã³ãŒãããªããžããªã«ãããŸãã
ã³ãŒããããã±ãŒãž Y ã䜿çšããŠããå ŽåããœãããŠã§ã¢ã¯ããã±ãŒãž X ã®è匱æ§ãç¶æ¿ããŸãã
çµç¹ã¯ãé ããè匱æ§ã®ãªã¹ã¯ã軜æžããããã«ããªãŒãã³ãœãŒã¹ã³ãŒããçµ¶ããæŽæ°ããå¿ èŠããããŸãã ãããã®çµç¹ã¯ãèªåè匱æ§ã¹ãã£ã³ãªã©ã®æ€åºæ¹æ³ã䜿çšããŠãæ¢ç¥ã®è匱æ§ãæå®³ãåŒãèµ·ããåã«ç¹å®ããå¿ èŠããããŸãã
ã°ããŒãã«ãªãã¥ãŒã¹å ±éã«ãããããŒã¿ãã»ãã¥ãªãã£éåãè¿ éã«å ¬è¡šãããããããããã®ã€ã³ã·ãã³ãã¯çµç¹ã®è©å€ãæãªãå¯èœæ§ããããŸãã ãã®ä¿¡é Œãåæ§ç¯ããããšã¯éåžžã«å°é£ã§ããÂ
éçºè ããµãã©ã€ãã§ãŒã³ãä¿è·ã§ããããã«ãã
éçºã«äŒŽããã¹ãŠã®ã»ãã¥ãªãã£ãªã¹ã¯ã¯ãéçºè ãã»ãã¥ãªãã£ãå¯èœãªéãç°¡åã«ããããŒã«ã«ã¢ã¯ã»ã¹ããå¿ èŠãããããšãæå³ããŸãã 幞ããªããšã«ãDockerã¯ãã©ãããã©ãŒã å šäœã«ã»ãã¥ãªãã£å¯Ÿçãã·ãŒã ã¬ã¹ã«çµ±åããŠããªã¹ã¯ã軜æžãããœãããŠã§ã¢ãµãã©ã€ãã§ãŒã³ãä¿è·ããã®ã«åœ¹ç«ã¡ãŸãã æåã®ã¹ãããã¯ãæ§æèšŒæãšæ€èšŒã§ãã ä¿¡é Œã確ç«ããã«ã¯ãã³ãŒããæ€èšŒããå¿ èŠãããããã®ã»ãã¥ãªãã£ã«ã€ããŠäœãä»®å®ããªãã§ãã ãããÂ
Docker Business ãŠãŒã¶ãŒãå©çšã§ãã Docker ã®ã€ã¡ãŒãž ã¢ã¯ã»ã¹ç®¡çæ©èœã䜿çšãããšãçµç¹ã¯ãœãããŠã§ã¢ã®å ¥æå ãå¶åŸ¡ã§ããŸãããã®ã¢ãããŒãã§ã¯ãã¢ã¯ã»ã¹ãšã¢ã¯ã»ã¹èš±å¯ã®å¶åŸ¡ãéçºè ãããµã€ã ã¬ãã«ã«ç§»è¡ãããªãã·ã§ã³ãç°¡åã«èšå®ã§ãããã°ã« ãªãã·ã§ã³ãšãå€§èŠæš¡ãªæ¿èªã管çããããã®ããŒã«ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ (RBAC) ã䜿çšã§ããŸãã ãã®å¶åŸ¡ã«ãããéçºè ã¯æ¿èªãããã»ãã¥ãªãã£ã§ä¿è·ãããã€ã¡ãŒãžã®ã¿ã䜿çšã§ããŸãã
ç»åã¢ã¯ã»ã¹ç®¡çã¯ããœãŒã¹ãæ£åœã§ããããšãä¿èšŒããè¯ãæ¹æ³ã§ããããŸãã ããžãã¹ã«äœçŸäººãã®éçºè ãããå ŽåãåãœãããŠã§ã¢ãšã³ãžãã¢ãç¡éªæ°ã«ã€ã³ã¹ããŒã«ããŠãããã®ã远跡ããããšã¯å°é£ã«ãªããŸãã Docker Business ãŠãŒã¶ãŒã¯ãããŒã ãšãªããžããªã®äœæãåé€ãç·šéãèšé²ããç£æ»ãã°ãååŸããŠãå¯èŠæ§ãé«ããŸãã
éçºè ãã³ã³ãã㌠ã€ã¡ãŒãžãããé©åã«æ±ºå®ã§ããããã«ãDocker ã«ã¯ãDocker Hub ã®ãããžã䜿çšããŠã€ã¡ãŒãžãæ€èšŒããèŠèŠçãªæ¹æ³ãçšæãããŠããŸãã ãããã®ãããžã¯ãDocker æ€èšŒæžã¿çºè¡å ã€ã¡ãŒãžãš Docker å ¬åŒã€ã¡ãŒãž ã«åºæã§ãããéçºè ããã«ããŠãããã®ãä¿¡é Œãããå®å šã§ã䜿çšã§ããç¶æ ã§ããããšãéçºè ã«ç¥ãããŸãã
Dockerã¯ãã»ãã¥ãªãã£ããŒãããŒã§ããSnykãéããŠè匱æ§ã¹ãã£ã³ããŒã«ãæäŸããŠããŸãã éçºè ã¯ãCLI ã§ Snyk ã¹ãã£ããŒã䜿çšããŠãããŒã«ã«ã® Dockerfile ãšããŒã«ã« ã€ã¡ãŒãžã®ã»ãã¥ãªãã£äœå¶ã«å¿ èŠãªåææ å ±ãšå¯èŠæ§ãåŸãããšãã§ããŸãã ããã«ã¯ãå ±éè匱æ§èå¥å (CVE) ã®äžèЧãOS ããã±ãŒãžãã©ã€ãã©ãªãªã©ã®ãœãŒã¹ãããããå°å ¥ãããããŒãžã§ã³ãæ€åºããã CVE ã修埩ããããã®æšå¥šãããä¿®æ£æžã¿ããŒãžã§ã³ (å©çšå¯èœãªå Žå) ãå«ãŸããŸãã ãã®ã¹ããããèªååããããšãéçºè ã ããäžå®ãæåã§ã¹ãã£ã³ããããšã«é Œãå¿ èŠããªããªããŸãã
å®å¿ãåŸã
ããã±ãŒãžXã®äŸã«æ»ããšãææªã®ã·ããªãªãé²ãããã«è€æ°ã®ã¬ã€ã€ãŒããããŸãã
- ã€ã¡ãŒãžã¢ã¯ã»ã¹ç®¡ç ã«ãããéçºè ã¯ä¿¡é Œã§ããæ€èšŒæžã¿ã®ãœãŒã¹ããã®ã¿ããŒã¹ã€ã¡ãŒãžããã«ã§ããŸãã
- ããŒã«ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ ã䜿çšãããšãéçºè ã¯ãæ°ããã³ã³ãã³ããåã蟌ãããšãã§ããéçºè ãå¶åŸ¡ãã䟵害ãåäžã®ããŒã ã®äœæ¥ã«åé¢ããããšã§ãççºç¯å²ãçž®å°ã§ããŸãã
- è匱æ§ã¹ãã£ã³ã¯ ãæ°ããã€ã¡ãŒãžãæ§ç¯ãããšãã« CVE ãèªåçã«ã¹ãã£ã³ããŸãã å®å šã§ãªãäŸåé¢ä¿ã®åé¡ãè¿ éã«è§£æ±ºããããã«ãè匱æ§ã¹ãã£ã³ã¯éçºè ã®äŸåé¢ä¿ã粟æ»ããŠãã©ã°ãç«ãŠã修埩ãªãã·ã§ã³ãæäŸããŸãã
- ç£æ»ãã° ã¯ããã¹ãŠã®ã¢ã¯ãã£ããã£ããã£ããã£ãã3ãæã®å±¥æŽãæäŸããŸãã ãã®ã¬ã³ãŒãã¯ãçµç¹ã圱é¿ãåãããã¹ãŠã®å éšãµãã©ã€ãã§ãŒã³ãè¿ éã«çºèŠããã®ã«åœ¹ç«ã¡ãŸãã
ã»ãã¥ãªãã£ã«å¯Ÿãããã®éå±€åãããã¢ãããŒãã«ããããã§ãã¯ã®æ©äŒãå¢ããŸãã èŠæãšæåãã§ãã¯ã¯äŸç¶ãšããŠçæ³çã§ãããæ»æã®é²æ¢ãšå¯ŸåŠã«åœ¹ç«ã€ãããã®ããŒã«ãå©çšã§ãããšå®å¿ã§ããŸãã
çµè«
ãã®èšäºã§ã¯ã ãã€ãã³å€§çµ±é ã察åŠããçã®ãµãã©ã€ãã§ãŒã³ã®ã»ãã¥ãªãã£åé¡ãæ¢ããŸããã
ã¢ããªã®äŸåé¢ä¿ãæšçã«ããããšã§ããµã€ããŒç¯çœªè
ã¯ç²Ÿæ»ãåé¿ããããšãæåŸ
ããŠè€æ°ã®çµç¹ã«å°éã§ããŸãã å€ãã®å Žåãçµç¹ãããã¯ããŠã³ãããŠãããšãã«äŸµå
¥ããæãç°¡åãªæ¹æ³ã§ãã 誰ããæœåšçãªæšçã§ãããæ»æã¯åºç¯å²ã«ããã圱é¿ãäžããå¯èœæ§ããããŸãã å 害è
ã¯é·ãã²ãŒã ããã¬ã€ãããœãŒã·ã£ã«ãšã³ãžãã¢ãªã³ã°ã䜿çšããŠã¢ã¯ã»ã¹ãååŸãããããããªããžããªã¡ã³ãããšããŠã®æéãæäŸããããšã«æºè¶³ããŠããããã§ãã éçºè
ãšèªååããŒã«ãã³ã³ããŒãã³ããã·ã¹ãã ã«çµ±åãããšãæ»æè
ããã«ãŠã§ã¢ã泚å
¥ããå¯èœæ§ã®ãããã€ã³ããè€æ°çºçããŸãã
Dockerã¯ãã¢ããªã±ãŒã·ã§ã³ã«ç§»è¡ããåã«ãªãŒãã³ãœãŒã¹ã³ãŒããšäŸåé¢ä¿ã粟æ»ããããã®å
ç¢ãªããŒã«ã¹ã€ãŒããæäŸããŸãã Docker Businessã䜿çšãããšããœãããŠã§ã¢éçºã¯ãã»ãã¥ãªãã£äžã®æžå¿µã«åŠšããããããšãªããã³ã³ããã®çç£æ§åäžã®æ©æµãåãç¶ããããšãã§ããŸãã
Docker Business ã®äœ¿çšãéå§ ããŠãDocker ãããžãã¹ã®å®å šæ§ãšã»ãã¥ãªãã£ã®ç¶æã«ã©ã®ããã«åœ¹ç«ã€ããã確èªãã ããã
ããã«ãŒã³ã³2022
5æ10æ¥ç«ææ¥ã«éå¬ãããDockerCon2022ã«ãåå ãã ããã DockerCon ã¯ã次äžä»£ã®ææ°ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŠããéçºè ãéçºããŒã ã«ãšã£ãŠãŠããŒã¯ãªäœéšãæäŸãããç¡æã® 1 æ¥ã®ä»®æ³ã€ãã³ãã§ãã ã³ãŒãããã¯ã©ãŠãã«ãã°ããç§»è¡ããæ¹æ³ãšéçºã®èª²é¡ã解決ããæ¹æ³ã«ã€ããŠåŠã³ããå Žåã¯ãDockerCon 2022 ã§ã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ãå ±æãå®è¡ã«åœ¹ç«ã€é åçãªã©ã€ã ã³ã³ãã³ããæäŸãããŸãã ä»ãããç»é²ãã ãã https://www.docker.com/dockercon/