å ¬éïŒ2024幎2æ27æ¥
16åã§èªããŸã
ã¯ãŒã¯ãããŒã«ã«ã¹ã¿ã ã»ãã¥ãªãã£ã¹ãã£ããŒã远å ããŠãDevSecOpsãã©ãããã©ãŒã ãæ¡åŒµããæ¹æ³ãåŠã³ãŸãããïŒãããããããã¥ãŒããªã¢ã«ãå«ãŸããŠããŸãïŒã

æãå æ¬çãªDevSecOpsãã©ãããã©ãŒã ã§ããGitLabã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã«ããããã©ã³ã管çããã«ãããããã€ãã»ãã¥ã¢ãã¬ããã³ã¹ãããã³ã¢ãã¿ãªã³ã°ã«å¿ èŠãªãã¹ãŠã®æ©èœãåãã£ãŠããŸãããããããµãŒãããŒãã£ã®ããŒã«ãã«ã¹ã¿ã ããŒã«ã䜿çšããŠGitLabãæ¡åŒµããããšãããããŸããããšãã°ãå¥ã®ãœãªã¥ãŒã·ã§ã³ããDevSecOpsãã©ãããã©ãŒã ã«ç§»è¡ãããããµãŒãããŒãã£ã®ããŒã«ãè©äŸ¡ããããç¬èªã®ããŸãã¯ã«ã¹ã¿ã ãã«ãã®ãœãªã¥ãŒã·ã§ã³ãGitLabã«ã€ã³ãã°ã¬ãŒã·ã§ã³ãããããããšãæ±ããããå ŽåããããŸãã
ãã®èšäºã§ã¯ã次ã®å 容ã«ã€ããŠèª¬æããŸãã
GitLabã¯ããŸããŸãªæ¹æ³ã§æ¡åŒµã§ããçµç¹ã§å¿ èŠãšãªãæ¡åŒµæ©èœããµããŒãããŸãããããã®ã€ã³ãã°ã¬ãŒã·ã§ã³ã®äžè¬çãªäŸãšããŠã¯ã次ã®ãããªãã®ããããŸãã
å©çšå¯èœãªãã¹ãŠã®ã€ã³ãã°ã¬ãŒã·ã§ã³æ©èœã¯ãGitLabããã¥ã¡ã³ããšã®ã€ã³ãã°ã¬ãŒã·ã§ã³ã§ç¢ºèªã§ããŸãïŒæ³šïŒããã¥ã¡ã³ãã«ã¯ãã¹ãŠã®ã€ã³ãã°ã¬ãŒã·ã§ã³ãèšèŒãããŠããããã§ã¯ãããŸããïŒã
ãµãŒãããŒãã£ã®ã»ãã¥ãªãã£ã¹ãã£ããŒãŸãã¯ã«ã¹ã¿ã ãã«ãã®ã»ãã¥ãªãã£ã¹ãã£ããŒãGitLabã«ã€ã³ãã°ã¬ãŒã·ã§ã³ããŠãããŒãžãªã¯ãšã¹ããŠã£ãžã§ããããã€ãã©ã€ã³ã»ãã¥ãªãã£ã»ã¯ã·ã§ã³ãè匱æ§ã¬ããŒããè匱æ§ããŒãžãã»ãã¥ãªãã£ããã·ã¥ããŒããããã³ã¹ãã£ã³çµæããªã·ãŒãäœæã§ããŸããåã€ã³ãã°ã¬ãŒã·ã§ã³ã«ã€ããŠç¢ºèªããŸãããã
ããŒãžãªã¯ãšã¹ãã«ã¯ãæ°ãã«æ€åºãããè匱æ§ã®æŠèŠã衚瀺ããã»ãã¥ãªãã£ãŠã£ãžã§ãããå«ãŸããŠããŸãã

è匱æ§ãã¯ãªãã¯ãããšãæ¬¡ã®æ å ±ããããã¢ãã衚瀺ãããŸãã

ãããã®è匱æ§ã¯å®è¡å¯èœãªãããç¡èŠããããéå ¬éã®ã€ã·ã¥ãŒãšããŠäœæã§ããŸãã
ã«ã¹ã¿ã ã¹ãã£ããŒã®çµæã¯ãã»ãã¥ãªãã£ãŠã£ãžã§ããã«å ¥åããããã«äœ¿çšã§ããŸããè匱æ§ããŒã¿ã¯ãã¹ãã£ããŒãåºåããJSONã¹ããŒãããå ¥åãããŸãã
ãã¹ãŠã®æå¹ãªã»ãã¥ãªãã£ã¢ãã©ã€ã¶ãŒã¯ãã€ãã©ã€ã³ã§å®è¡ãããçµæãã¢ãŒãã£ãã¡ã¯ããšããŠåºåããŸãããããã®ã¢ãŒãã£ãã¡ã¯ãã¯éè€æé€ãå«ãåŠçãè¡ãããçµæã¯ãã€ãã©ã€ã³ã»ãã¥ãªãã£ã¿ãã«è¡šç€ºãããŸãããããããçæãããJSONãã¡ã€ã«ãããŠã³ããŒãããããšãã§ããŸãã

ã«ã¹ã¿ã ã¹ãã£ããŒã®çµæã¯ããã€ãã©ã€ã³ã»ãã¥ãªãã£ã¿ãã«å ¥åããããã«äœ¿çšã§ããŸããåã¯ãã¹ãã£ããŒãåºåããJSONã¹ããŒãã䜿çšããŠå ¥åãããŸãã
è匱æ§ã¬ããŒãã«ã¯ãããã©ã«ããã©ã³ãã®ã¹ãã£ã³ããåŸãããè匱æ§ã«é¢ããæ å ±ãèšèŒãããŠããŸããããã«ã¯ä»¥äžãå«ãŸããŸãã

ããã©ã«ããã©ã³ãã®ã«ã¹ã¿ã ã¹ãã£ããŒã®çµæã䜿çšããŠãè匱æ§ã¬ããŒããäœæã§ããŸãã
è匱æ§ã¬ããŒãå ã®è匱æ§ãã¯ãªãã¯ãããšããã®è匱æ§ã«é¢ããããŒãžã«ç§»åããŸãããããžã§ã¯ãå ã®åè匱æ§ã«ã¯ã次ã®ãããªè©³çްæ å ±ãèšèŒãããŠããè匱æ§ããŒãžããããŸãã
è匱æ§ããŒãžã§æäŸãããããŒã¿ã䜿çšããŠãæ€åºãããè匱æ§ãããªã¢ãŒãžããããä¿®æ£ããµããŒããããã§ããŸãã

ã«ã¹ã¿ã ã¹ãã£ããŒã®çµæã¯ãè匱æ§ããŒãžã«å ¥åããããã«äœ¿çšã§ããŸããè匱æ§ããŒã¿ã¯ãã¹ãã£ããŒãåºåããJSONã¹ããŒãããå ¥åãããŸãã
ã»ãã¥ãªãã£ããã·ã¥ããŒãã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£å¯Ÿçç¶æ³ãè©äŸ¡ããããã«äœ¿çšãããŸããGitLabã¯ããããžã§ã¯ãã§å®è¡ãããŠããã»ãã¥ãªãã£ã¹ãã£ããŒã«ãã£ãŠæ€åºãããè匱æ§ã«é¢ããã¡ããªã¯ã¹ãè©äŸ¡ããã£ãŒããæäŸããŸããã»ãã¥ãªãã£ããã·ã¥ããŒãã«ã¯ã次ã®ãããªããŒã¿ã衚瀺ãããŸãã

ã°ã«ãŒãã¬ãã«ã®ã»ãã¥ãªãã£ããã·ã¥ããŒããããããžã§ã¯ããã¯ãªãã¯ãããšã365æ¥éã®ç¶æ³ã衚瀺ããç¹å®ã®ã»ãã¥ãªãã£ããã·ã¥ããŒãã«ã¢ã¯ã»ã¹ã§ããŸãã

ã¹ãã£ã³çµæããªã·ãŒã¯ã1ã€ä»¥äžã®ã»ãã¥ãªãã£ã¹ãã£ã³ãžã§ãã«ããçºèŠäºé ã«åºã¥ããŠæ¿èªãèŠæ±ããããã«äœ¿çšãããŸããããã«ãããè匱ãªã³ãŒããæ¬çªç°å¢ã«ããŒãžãããã®ãé²ãããšãã§ããŸããã¹ãã£ã³çµæããªã·ãŒã¯ãCIïŒç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒã¹ãã£ã³ãžã§ããå®å šã«å®è¡ãããåŸãå®äºãããã€ãã©ã€ã³ã§å ¬éããããžã§ãã¢ãŒãã£ãã¡ã¯ãã¬ããŒãã«åºã¥ããŠè©äŸ¡ãããŸãã
ããšãã°ãã·ãŒã¯ã¬ããæ€åºã¹ãã£ããŒãè匱æ§ãçºèŠããå Žåããããžã§ã¯ãã®ã¡ã³ãããŒã«ããæ¿èªãå¿ èŠãšããã¹ãã£ã³çµæããªã·ãŒãäœæã§ããŸããæé ã¯æ¬¡ã®ãšããã§ãã



ã¹ãã£ã³çµæããªã·ãŒãããŒãžããããšãããŒãžãªã¯ãšã¹ããäœæããã«ãŒã«ã§å®çŸ©ãããæ¡ä»¶ãæºãããããã³ã«ãå®çŸ©ãããã¢ã¯ã·ã§ã³ãããªã¬ãŒãããŸãããã®å Žåãã³ãŒããããŒãžããã«ã¯ãã¡ã³ãããŒããã®æ¿èªãå°ãªããšã1åå¿ èŠã«ãªããŸãã

ã«ã¹ã¿ã ã¹ãã£ããŒã®çµæã¯ãã¹ãã£ã³çµæããªã·ãŒãšå®å šã«çµ±åã§ããŸããã«ã¹ã¿ã ã¹ãã£ããŒãè匱æ§ãæ€åºããå Žåãã³ãŒããããŒãžããã«ã¯æ¿èªãå¿ èŠã«ãªããŸããã¹ãã£ã³çµæããªã·ãŒã§éžæããã¹ãã£ããŒã¯ãé©åãªJSONã¹ããŒããå©çšããŠããå¿ èŠããããŸãã
ã§ã¯ãã«ã¹ã¿ã ã»ãã¥ãªãã£ã¹ãã£ããŒã®ã€ã³ãã°ã¬ãŒã·ã§ã³ãšããéèŠãªããŒãã«ã€ããŠèŠãŠã¿ãŸãããããã®ãã¥ãŒããªã¢ã«ã§ã¯ãã«ã¹ã¿ã ã»ãã¥ãªãã£ã¹ãã£ããŒã®äœææ¹æ³ãšããããGitLabã«çµ±åããæ¹æ³ãåŠã³ãŸããæ¬¡ã®ãããžã§ã¯ããæŽ»çšããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®äœææ¹æ³ãšäœ¿ç𿹿³ã詳ãã説æããŠããŸãã®ã§ã次ã®åç»ãã芧ãã ããã
次ã«ãGitLabã«çµ±åã§ããã«ã¹ã¿ã ã¹ãã£ããŒãäœæããŸããããã«ã¹ã¿ã ã¹ãã£ããŒãGitLabãšå®å šã«çµ±åããåã«ãã¹ãã£ããŒã¯ä»¥äžã®èŠä»¶ãæºããå¿ èŠããããŸãã
æäŸããããã³ãã¬ãŒãã䜿çšããŠFernãã¿ãŒã³ã¹ãã£ããŒããããžã§ã¯ãã§å®è¡ãããšãæ¬¡ã®æé ãå®è¡ããŸãã
JSONã¬ããŒããã¢ãŒãã£ãã¡ã¯ããšããŠGitLabã«èªã¿èŸŒãŸãããšãäžèšã§å®çŸ©ãããŠããããã«ãããŒãžãªã¯ãšã¹ããŠã£ãžã§ãããè匱æ§ã¬ããŒããè匱æ§ããŒãžãã¹ãã£ã³çµæããªã·ãŒãããã³ã»ãã¥ãªãã£ããã·ã¥ããŒããäœæãããŸãã
ã€ã³ãã°ã¬ãŒã·ã§ã³ã®ãã¹ãŠã®ããŒãºãæºããã«ã¹ã¿ã ã¹ãã£ããŒãäœæãããããããGitLabã§å®è¡ã§ããŸãã
ã«ã¹ã¿ã ã¹ãã£ããŒã®å®è¡ã¯ããã³ãã¬ãŒãã远å ããã®ãšåããããç°¡åã§ããã·ãŒã¯ã¬ãããªã¹ããããžã§ã¯ãã®.gitlab-ci.ymlã調ã¹ãããšã§ãFernãã¿ãŒã³ã¹ãã£ããŒãã³ãã¬ãŒããã©ã®ããã«èªã¿èŸŒãŸãããã確èªã§ããŸãã
ãã¡ã€ã«ãã³ãããããããšãã«ã¹ã¿ã ã¹ãã£ããŒããã€ãã©ã€ã³ã§å®è¡ãããããšãããããŸãããã€ãã©ã€ã³ãå®äºãããšãã¹ãã£ããŒã¯äžèšã®GitLabã»ãã¥ãªãã£ã¹ãã£ããŒã®ã€ã³ãã°ã¬ãŒã·ã§ã³ã»ã¯ã·ã§ã³ã§å®çŸ©ããããã¹ãŠã®é åã«ããŒã¿ãå ¥åããŸãã
GitLabã®è©³çްãšDevSecOpsãã©ãããã©ãŒã ãæ¡åŒµãããã®ä»ã®æ¹æ³ã«ã€ããŠã¯ã次ã®ãªãœãŒã¹ãã芧ãã ããã
ãã®ããã°èšäºã楜ããã§ããã ããŸãããïŒã質åããã£ãŒãããã¯ãããã°ãç¥ãããã ãããGitLabã³ãã¥ããã£ãã©ãŒã©ã ã§æ°ãããããã¯ãäœæããŠããªãã®å£°ãå±ããŸãããã
ãã£ãŒãããã¯ãå ±æãã