ãã©ãã«ã·ã¥ãŒãã£ã³ã°
Docker Hardened ImagesïŒDHIïŒãžã®ç§»è¡ãå©çšäžã«ããééããåé¡ãšããã®æšå¥šãããè§£æ±ºæ¹æ³ã以äžã«ç€ºããŸãã
äžè¬çãªãããã°
Docker Hardened Images ã¯ãã»ãã¥ãªãã£ãšå®è¡æã®ããã©ãŒãã³ã¹ãæé©åããããã«èšèšãããŠããŸãã
ãã®ãããéåžžã¯ã·ã§ã«ãæšæºçãªãããã°ããŒã«ãå«ãŸããŠããŸããã
DHI ãããŒã¹ãšããã³ã³ããã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã«ã¯ãDocker Debug ã®äœ¿çšãæšå¥šãããŸãã
Docker Debug ã䜿çšãããšã以äžã®ããšãå¯èœã«ãªããŸã:
-
æ¢åã®ã³ã³ããã«äžæçãªãããã°çšã³ã³ãããã¢ã¿ãããã
-
curl
ãps
ãnetstat
ãstrace
ãªã©ã®ã·ã§ã«ãäžè¬çãªããŒã«ãå©çšãã -
å¿ èŠã«å¿ããŠè¿œå ããŒã«ãã€ã³ã¹ããŒã«ããæžã蟌ã¿å¯èœãªäžæã¬ã€ã€ãŒäžã§äœæ¥ïŒã»ãã·ã§ã³çµäºæã«æ¶å»ãããŸã
ããŒããã·ã§ã³
DHI ã¯ã»ãã¥ãªãã£åŒ·åã®ãããããã©ã«ãã§é root ãŠãŒã¶ãŒãšããŠå®è¡ãããŸãã
ãã®ããããã¡ã€ã«ããã£ã¬ã¯ããªãžã®ã¢ã¯ã»ã¹æã«ããŒããã·ã§ã³ã®åé¡ãçºçããããšããããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®ãã¡ã€ã«ãå®è¡æãã£ã¬ã¯ããªããæ³å®ããã UID/GID ã«ææãããŠãããããŸãã¯é©åãªããŒããã·ã§ã³ãèšå®ãããŠããããšã確èªããŠãã ããã
DHI ãã©ã®ãŠãŒã¶ãŒã§å®è¡ãããŠãããã確èªããã«ã¯ãDocker Hub äžã®è©²åœã€ã¡ãŒãžã®ãªããžããªããŒãžãåç §ããŠãã ããã
詳ãã㯠ã€ã¡ãŒãžããªã¢ã³ãã®è©³çްã衚瀺ãã ãã芧ãã ããã
ç¹æš©ããŒãïŒPrivileged portsïŒ
é root ã³ã³ããã¯ãããã©ã«ãã§ã¯ 1024 çªæªæºã®ããŒãã«ãã€ã³ãã§ããŸããã
ãã®å¶éã¯ãã³ã³ããã©ã³ã¿ã€ã ããã³ã«ãŒãã«ïŒç¹ã« Kubernetes ã Docker Engine 20.10 æªæºïŒã«ãã£ãŠåŒ·å¶ãããŸãã
ã³ã³ããå ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã 1025 çªä»¥äžã®ç¹æš©å€ããŒãã§ãªãã¹ã³ããããã«æ§æããŠãã ããã
ããšãã°ã以äžã®ããã«å®è¡ããããšã§ïŒ
docker run -p 80:8080 my-image
ã³ã³ããå ã®ããŒã 8080 ããã¹ãã®ããŒã 80 ã«ãããã³ã°ããããšãã§ããroot æš©éãå¿ èŠãšããã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
ã·ã§ã«ãååšããªã
å®è¡æçšã® DHI ã«ã¯ãsh
ã bash
ã®ãããªå¯Ÿè©±åã·ã§ã«ãå«ãŸããŠããŸããã
ãã®ããããã«ããããŒã«ãã·ã§ã«ã®ååšãåæãšããŠããå ŽåïŒäŸ: RUN
åœä»€ã§ã·ã§ã«ã䜿çšããŠããå ŽåïŒã¯ããã«ãã®åææ®µéã§ dev
ããªã¢ã³ãã®ã€ã¡ãŒãžã䜿çšããæçµçãªææç©ïŒã¢ãŒãã£ãã¡ã¯ãïŒãå®è¡æçšã€ã¡ãŒãžã«ã³ããŒããããã«ããŠãã ããã
DHI ã«ã©ã®ã·ã§ã«ãå«ãŸããŠãããïŒãŸãã¯å«ãŸããŠããªããïŒã確èªããã«ã¯ãDocker Hub äžã®è©²åœã€ã¡ãŒãžã®ãªããžããªããŒãžãåç §ããŠãã ããã
詳ãã㯠ã€ã¡ãŒãžããªã¢ã³ãã®è©³çްã衚瀺ãã ãã芧ãã ããã
ãŸããå®è¡äžã®ã³ã³ããã«ã·ã§ã«ã§ã¢ã¯ã»ã¹ããå¿ èŠãããå Žåã¯ãDocker Debug ã䜿çšããŠãã ããã
ãšã³ããªãŒãã€ã³ãã®éã
DHI ã¯ãDocker Official ImagesïŒDOIïŒãä»ã®ã³ãã¥ããã£ã€ã¡ãŒãžãšã¯ç°ãªã ENTRYPOINT
ãå®çŸ©ããŠããå ŽåããããŸãã
DHI ã® ENTRYPOINT
ã CMD
ã確èªããã«ã¯ãDocker Hub äžã®è©²åœã€ã¡ãŒãžã®ãªããžããªããŒãžãã芧ãã ããã
詳ãã㯠ã€ã¡ãŒãžããªã¢ã³ãã®è©³çްã衚瀺ãã ãåç §ããŠãã ããã
ããã±ãŒãžãããŒãžã£ãååšããªã
å®è¡æçšã® Docker Hardened Images ã¯ãã»ãã¥ãªãã£ãšæ»æå¯Ÿè±¡é åã®æå°åãç®çãšããŠã¹ãªã åãããŠãããapk
ã apt
ãªã©ã®ããã±ãŒãžãããŒãžã£ã¯å«ãŸããŠããŸããã
ãã®ãããå®è¡æã€ã¡ãŒãžå ã§ãœãããŠã§ã¢ãçŽæ¥ã€ã³ã¹ããŒã«ããããšã¯ã§ããŸããã
ã³ãŒãã®ãã«ããã¢ããªã±ãŒã·ã§ã³ã®ã»ããã¢ããã«ãããŠããã±ãŒãžã®ã€ã³ã¹ããŒã«ãå¿
èŠãªå ŽåïŒäŸïŒã³ãŒãã®ã³ã³ãã€ã«ãå®è¡æäŸåã®ã€ã³ã¹ããŒã«ã蚺æããŒã«ã®è¿œå ãªã©ïŒããã«ãã¹ããŒãžã§ dev
ããªã¢ã³ãã®ã€ã¡ãŒãžã䜿çšããå¿
èŠãªææç©ã ããæçµçãªå®è¡æã€ã¡ãŒãžã«ã³ããŒããŠãã ããã