Note
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãµã€ã³ã€ã³ãŸãã¯ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã³ã
ãã®ã³ã³ãã³ãã¯ãAzure çšã®ã¯ã©ãŠã ãã€ãã£ã .NET ã¢ããªã±ãŒã·ã§ã³ã®èšèšã«é¢ããé»åããã¯ããã®æç²ã§ããã.NET Docs ãŸãã¯ãªãã©ã€ã³ã§èªã¿åãããšãã§ããç¡æã®ããŠã³ããŒãå¯èœãª PDF ãšããŠå ¥æã§ããŸãã
ã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã¯ãåŸæ¥ã®ã¢ããªã±ãŒã·ã§ã³ãããç°¡åã§ã»ãã¥ãªãã£ä¿è·ãå°é£ãªå ŽåããããŸãã æ¬ ç¹ãšããŠãããå°ããªã¢ããªã±ãŒã·ã§ã³ãã»ãã¥ãªãã£ã§ä¿è·ããã»ãã¥ãªã㣠ã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããããã®ãšãã«ã®ãŒãå¢ããå¿ èŠããããŸãã ã»ãšãã©ã®ãµãŒãã¹å±éã«ãããããã°ã©ãã³ã°èšèªãšã¹ã¿ã€ã«ã®ç°çš®ã®æ§è³ªã¯ãå€ãã®ç°ãªããããã€ããŒããã®ã»ãã¥ãªãã£æ å ±ã«ããã«æ³šæãæãå¿ èŠãããããšãæå³ããŸãã
éã«ããããããç¬èªã®ããŒã¿ ã¹ãã¢ãæã€å°èŠæš¡ãªãµãŒãã¹ã«ãã£ãŠãæ»æã®ç¯å²ãå¶éãããŸãã æ»æè ã 1 ã€ã®ã·ã¹ãã ã䟵害ããå Žåãã¢ããªã·ã㯠ã¢ããªã±ãŒã·ã§ã³ã®å Žåããããæ»æè ãå¥ã®ã·ã¹ãã ã«ãžã£ã³ãããããšã¯ããããå°é£ã§ãã ããã»ã¹å¢çã¯åŒ·åãªå¢çã§ãã ãŸããããŒã¿ããŒã¹ã®ããã¯ã¢ãããå ¬éãããå Žåããã®ããŒã¿ããŒã¹ã«ã¯ããŒã¿ã®ãµãã»ããã®ã¿ãå«ãŸããŠãããå人ããŒã¿ãå«ãŸããå¯èœæ§ã¯äœããæå®³ã¯ããå¶éãããŸãã
è åšã®ã¢ããªã³ã°
å©ç¹ãã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã®æ¬ ç¹ãäžåãå Žåã§ããåãå æ¬çãªã»ãã¥ãªãã£ã®èãæ¹ã«åŸãå¿ èŠããããŸãã ã»ãã¥ãªãã£ãšå®å šãªæèã¯ãéçºãšéçšã®ã¹ããŒãªãŒã®ãã¹ãŠã®ã¹ãããã®äžéšã§ããå¿ èŠããããŸãã ã¢ããªã±ãŒã·ã§ã³ãèšç»ãããšãã¯ã次ã®ãããªè³ªåãããŸãã
- ãã®ããŒã¿ã倱ããã圱é¿ã¯äœã§ãã?
- ãã®ãµãŒãã¹ã«æ¿å ¥ãããäžé©åãªããŒã¿ã«ããæå®³ãå¶éããã«ã¯ã©ãããã°ããã§ãã?
- 誰ããã®ããŒã¿ã«ã¢ã¯ã»ã¹ããå¿ èŠããããŸãã?
- éçºãšãªãªãŒã¹ã®ããã»ã¹ã«é¢ããç£æ»ããªã·ãŒã¯ãããŸãã?
ããããã¹ãŠã®è³ªåã¯ã è åšã¢ããªã³ã°ãšåŒã°ããããã»ã¹ã®äžéšã§ãã ãã®ããã»ã¹ã¯ãã·ã¹ãã ã«å¯Ÿããè åšãè åšã®å¯èœæ§ãããã³ãããã®æœåšçãªæå®³ã«é¢ãã質åã«çããããšããŸãã
è åšã®äžèЧã確ç«ããããã軜æžãã䟡å€ããããã©ããã倿ããå¿ èŠããããŸãã å Žåã«ãã£ãŠã¯ãè åšãèšç»ããå¯èœæ§ãéåžžã«äœããã³ã¹ããããããããããã«ãšãã«ã®ãŒãè²»ãã䟡å€ã¯ãããŸããã ããšãã°ãç¶æ ã¬ãã«ã®ã¢ã¯ã¿ãŒã«ãã£ãŠã¯ãäœçŸäžãã®ããã€ã¹ã§äœ¿çšãããããã»ã¹ã®èšèšã«å€æŽãæ¿å ¥ãããå¯èœæ§ããããŸãã ããã§ã ãªã³ã° 3 ã§ç¹å®ã®ã³ãŒããå®è¡ãã代ããã«ããã®ã³ãŒãã¯ãªã³ã° 0 ã§å®è¡ãããŸãã ãã®ããã»ã¹ã«ããããã€ããŒãã€ã¶ãŒããã€ãã¹ããã㢠ã¡ã¿ã« ãã·ã³ã§æ»æã³ãŒããå®è¡ã§ããæªçšãå¯èœã«ãªãããã®ããŒããŠã§ã¢ã§å®è¡ãããŠãããã¹ãŠã®ä»®æ³ãã·ã³ã«å¯Ÿããæ»æãå¯èœã«ãªããŸãã
倿Žãããããã»ããµã¯ããã®ããã»ããµã®ã·ãªã³ã³èšèšã«é¢ããé¡åŸ®é¡ãšé«åºŠãªç¥èããªããã°æ€åºãå°é£ã§ãã ãã®ã·ããªãªã¯çºçããå¯èœæ§ãäœãã軜æžã«ã³ã¹ããããããããè åšã¢ãã«ã§ã¯æªçšé²æ¢ã®æ§ç¯ãæšå¥šãããªãå¯èœæ§ããããŸãã
ãã€ã³ã¯ãªã¡ã³ãæ»æ (Id ã URL å
ã® Id=2 ã«çœ®ãæãããã) ã SQL ã€ã³ãžã§ã¯ã·ã§ã³ãèš±å¯ãããããªã¢ã¯ã»ã¹å¶åŸ¡ã®è匱æ§ãªã©ãããçºçããããè
åšã¯ã察çãæ§ç¯ããããã®é
åçãªå¯Ÿè±¡ã§ããã ãããã®è
åšã®è»œæžçã¯ãäŒç€Ÿã®è©å€ãæ±ãæ¥ããããã»ãã¥ãªã㣠ããŒã«ãæ§ç¯ããŠé²ãã®ã«éåžžã«åççã§ãã
æå°éã®ç¹æš©ã®åå
ã³ã³ãã¥ãŒã¿ãŒã®ã»ãã¥ãªãã£ã«é¢ããèãæ¹ã® 1 ã€ã¯ãæå°ç¹æš© (POLP) ã®ååã§ãã å®éã«ã¯ãããžã¿ã«ãŸãã¯ç©ççãªã»ãã¥ãªãã£ã®ã»ãšãã©ã®åœ¢åŒã§åºæ¬çãªèãæ¹ã§ãã èŠããã«ãååã¯ããã¹ãŠã®ãŠãŒã¶ãŒãŸãã¯ããã»ã¹ãããã®ã¿ã¹ã¯ãå®è¡ã§ããæå°æ°ã®æš©éãæã€å¿ èŠããããšããããšã§ãã
ããšãã°ãéè¡ã®çªå£ãèããŠã¿ãŸããããé庫ã«ã¢ã¯ã»ã¹ããããšã¯çããã¢ã¯ãã£ããã£ã§ãã ãã®ãããå¹³åçãªçªå£ä¿ã¯é庫ãéããããšãã§ããªãã ã¢ã¯ã»ã¹ãååŸããã«ã¯ã远å ã®ã»ãã¥ãªã㣠ãã§ãã¯ãå®è¡ããéè¡ãããŒãžã£ãŒãéããŠèŠæ±ããšã¹ã«ã¬ãŒãããå¿ èŠããããŸãã
ã³ã³ãã¥ãŒã¿ãŒ ã·ã¹ãã ã§ã¯ãããŒã¿ããŒã¹ã«æ¥ç¶ãããŠãŒã¶ãŒã®æš©éããã°ãããäŸã§ãã å€ãã®å ŽåãããŒã¿ããŒã¹æ§é ã®æ§ç¯ãšã¢ããªã±ãŒã·ã§ã³ã®å®è¡ã®äž¡æ¹ã«äœ¿çšãããåäžã®ãŠãŒã¶ãŒ ã¢ã«ãŠã³ãããããŸãã æ¥µç«¯ãªã±ãŒã¹ãé€ããã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŠããã¢ã«ãŠã³ãã¯ã¹ããŒãæ å ±ãæŽæ°ããå¿ èŠã¯ãããŸããã ããŸããŸãªã¬ãã«ã®ç¹æš©ãæäŸããè€æ°ã®ã¢ã«ãŠã³ããå¿ èŠã§ãã ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããŒãã«å ã®ããŒã¿ãžã®èªã¿åããšæžã蟌ã¿ã®ã¢ã¯ã»ã¹ãèš±å¯ããã¢ã¯ã»ã¹èš±å¯ã¬ãã«ã®ã¿ã䜿çšããå¿ èŠããããŸãã ãã®çš®ã®ä¿è·ã«ãããããŒã¿ããŒã¹ ããŒãã«ã®åé€ãæªæã®ããããªã¬ãŒã®å°å ¥ãç®çãšããæ»æãæé€ãããŸãã
ã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ã®ã»ãŒãã¹ãŠã®éšåã§ãæå°éã®ç¹æš©ã®ååãèŠããŠããã¡ãªããããããŸãã ããŒã«ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ (RBAC) ã§ãã¡ã€ã¢ãŠã©ãŒã«ããããã¯ãŒã¯ ã»ãã¥ãªã㣠ã°ã«ãŒããããŒã«ãã¹ã³ãŒããèšå®ããéã«ããããèŠã€ããããšãã§ããŸãã
äŸµå ¥ãã¹ã
ã¢ããªã±ãŒã·ã§ã³ãè€éã«ãªãã«ã€ããŠãæ»æãã¯ãã«ã®æ°ã¯é©ãã¹ãé床ã§å¢å ããŸãã è åšã¢ããªã³ã°ã«ã¯ãã·ã¹ãã ãæ§ç¯ããã®ãšåããŠãŒã¶ãŒã«ãã£ãŠå®è¡ãããåŸåããããšããæ¬ é¥ããããŸãã å€ãã®éçºè ããŠãŒã¶ãŒæäœãæ³å®ãã䜿çšã§ããªããŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ãæ§ç¯ããéã«åé¡ãçºçããã®ãšåãããã«ãã»ãšãã©ã®éçºè ã¯ãã¹ãŠã®æ»æãã¯ãã«ãèŠãã®ãå°é£ã§ãã ãŸããã·ã¹ãã ãæ§ç¯ããéçºè ãæ»æææ³ã«ç²ŸéãããéèŠãªæ å ±ãèŠéããŠããå¯èœæ§ããããŸãã
äŸµå ¥ãã¹ããŸã㯠"ãã³ ãã¹ã" ã§ã¯ãã·ã¹ãã ãæ»æããããšããå€éšã¢ã¯ã¿ãŒãåã蟌ã¿ãŸãã ãããã®æ»æè ã¯ãå€éšã®ã³ã³ãµã«ãã£ã³ã°äŒç€Ÿããããžãã¹ã®å¥ã®éšåããã®åªããã»ãã¥ãªãã£ç¥èãæã€ä»ã®éçºè ã§ããå¯èœæ§ããããŸãã ã·ã¹ãã ãèŠãããšãã詊ã¿ã®ããã«ç¡å¶éã®èªç±ãäžããããã å€ãã®å Žåãããããé©çšããå¿ èŠãããåºç¯ãªã»ãã¥ãªã㣠ããŒã«ãèŠã€ãããŸãã å Žåã«ãã£ãŠã¯ãæ»æãã¯ãã«ã¯ãCEO ã«å¯Ÿãããã£ãã·ã³ã°æ»æãæªçšãããããªãŸã£ããäºæããªããã®ã§ãã
Azure èªäœã¯ãMicrosoft å ã®ããã«ãŒããŒã ããã®æ»æãåžžã«åããŠããŸãã é·å¹Žã«ãããã圌ãã¯äœåãã®èŽåœçãªæ»æãã¯ãã«ãèŠã€ããæåã®äººã§ãå€éšããæªçšãããåã«ããããéããŠããŸãã ã¿ãŒã²ããã®èªæãé«ãã»ã©ãå€éšã¢ã¯ã¿ãŒããããæªçšããããšããå¯èœæ§ãé«ããªããäžçã«ã¯ Azure ãããé åçãªã¿ãŒã²ããã¯ã»ãšãã©ãããŸããã
ã¢ãã¿ãªã³ã°
æ»æè ãã¢ããªã±ãŒã·ã§ã³ã«äŸµå ¥ããããšãããšããã®èŠåã衚瀺ãããŸãã å€ãã®å ŽåããµãŒãã¹ããã®ãã°ã調ã¹ãããšã§æ»æãèŠã€ããããšãã§ããŸãã æ»æã¯æåããåã«çºèŠã§ããå åãæ®ããŸãã ããšãã°ãæ»æè ããã¹ã¯ãŒããæšæž¬ããããšãããšããã°ã€ã³ ã·ã¹ãã ã«å¯ŸããŠå€æ°ã®èŠæ±ãè¡ãããŸãã ãã°ã€ã³ ã·ã¹ãã ãç£èŠãããšãäžè¬çãªã¢ã¯ã»ã¹ ãã¿ãŒã³ãšäžç·ãè¶ããå¥åŠãªãã¿ãŒã³ãæ€åºã§ããŸãã ãã®ç£èŠã¯ãäœããã®å¯Ÿçãæå¹ã«ããããã«éçšæ åœè ã«èŠåã§ããã¢ã©ãŒãã«å€ããããšãã§ããŸãã æç床ã®é«ãç£èŠã·ã¹ãã ã§ã¯ããããã®åå·®ã«åºã¥ããŠãèŠæ±ããããã¯ãããå¿çã調æŽãããããã«ãŒã«ãäºåã«è¿œå ããŠã¢ã¯ã·ã§ã³ãå®è¡ããå ŽåããããŸãã
ãã«ããå®å šã«ä¿è·ãã
ã»ãã¥ãªãã£ãèŠéããããããšãå€ãå Žæã® 1 ã€ã¯ããã«ã ããã»ã¹ã®åšãã«ãããŸãã ãã«ãã§ã»ãã¥ãªã㣠ãã§ã㯠(ã»ãã¥ãªãã£ä¿è·ãããŠããªãã³ãŒãã®ã¹ãã£ã³ããã§ãã¯ã€ã³ãããè³æ Œæ å ±ãªã©) ãå®è¡ããå¿ èŠãããã ãã§ãªãããã«ãèªäœãã»ãã¥ãªãã£ã§ä¿è·ããå¿ èŠããããŸãã ãã«ã ãµãŒããŒã䟵害ãããå Žåã補åã«ä»»æã®ã³ãŒããå°å ¥ããããã®çŽ æŽããããã¯ãã«ãæäŸãããŸãã
æ»æè ã Web ã¢ããªã±ãŒã·ã§ã³ã«ãµã€ã³ã€ã³ãããŠãŒã¶ãŒã®ãã¹ã¯ãŒããçãããšããŠãããšããŸãã ãã§ãã¯ã¢ãŠããããã³ãŒãã倿ŽããŠããã°ã€ã³èŠæ±ãå¥ã®ãµãŒããŒã«ãã©ãŒãªã³ã°ãããã«ã ã¹ããããå°å ¥ã§ããŸãã æ¬¡ã«ã³ãŒãããã«ããééãããšãèªåçã«æŽæ°ãããŸãã ãœãŒã¹ ã³ãŒãã®è匱æ§ã¹ãã£ã³ã§ã¯ããã«ãåã«å®è¡ãããããããã®è匱æ§ã¯ãã£ãããããŸããã åæ§ã«ããã«ã ã¹ãããã¯ãã«ã ãµãŒããŒäžã§å®è¡ããããããã³ãŒã ã¬ãã¥ãŒã§ã¯èª°ããã£ããããŸããã æªçšãããã³ãŒãã¯ããã¹ã¯ãŒããåéã§ããéçšç°å¢ã«ç§»è¡ããŸãã ãã«ã ããã»ã¹ã®å€æŽã®ç£æ»ãã°ãååšããªãããå°ãªããšã誰ãç£æ»ãç£èŠããŠããªãå¯èœæ§ããããŸãã
ãã®ã·ããªãªã¯ãã·ã¹ãã ãžã®äŸµå ¥ã«äœ¿çšã§ããäžèŠäœãå€ã®ã¿ãŒã²ããã®å®å šãªäŸã§ãã æ»æè ãã·ã¹ãã ã®å¢çã䟵害ããããã¢ã¯ã»ã¹èš±å¯ã奜ããªå Žæã§æ¬åœã®æå®³ãåŒãèµ·ããå¯èœæ§ã®ããæç¹ãŸã§ææ Œãããæ¹æ³ãèŠã€ããäœæ¥ãéå§ã§ããŸãã
ã»ãã¥ãªãã£ã§ä¿è·ãããã³ãŒãã®æ§ç¯
.NET Framework ã¯æ¢ã«éåžžã«å®å šãªãã¬ãŒã ã¯ãŒã¯ã§ãã é åã®æ«å°Ÿããé¢ãããªã©ãã¢ã³ãããŒãž ã³ãŒãã®èœãšã穎ã®äžéšãåé¿ããŸãã æ€åºãããã»ãã¥ãªã㣠ããŒã«ãä¿®æ£ããããã«ãäœæ¥ã¯ç©æ¥µçã«è¡ãããŸãã ãã° å ±å¥šéããã°ã©ã ããããŸãããã®ããã°ã©ã ã¯ãç ç©¶è ã«æ¯æã£ãŠãã¬ãŒã ã¯ãŒã¯å ã®åé¡ãèŠã€ããããããæªçšããã®ã§ã¯ãªãå ±åããŸãã
.NET ã³ãŒãã®å®å šæ§ãé«ããæ¹æ³ã¯å€æ°ãããŸãã .NET ã®ã»ãã¥ãªãã£ã§ä¿è·ãããã³ãŒãã£ã³ã°ã¬ã€ãã©ã€ã³ãªã©ã®ã¬ã€ãã©ã€ã³ã«åŸãã®ã¯ãã³ãŒããäžããå®å šã§ããããšã確èªããããã®åŠ¥åœãªæé ã§ãã OWASP ããã 10 ã¯ãã»ãã¥ãªãã£ã§ä¿è·ãããã³ãŒããæ§ç¯ããããã®ãã 1 ã€ã®è²Žéãªã¬ã€ãã§ãã
ãã«ã ããã»ã¹ã¯ãéçšç°å¢ã«ç§»è¡ããåã«ããœãŒã¹ ã³ãŒãã®åé¡ãæ€åºããããã®ã¹ãã£ã³ ããŒã«ãé 眮ããã®ã«é©ããå Žæã§ãã ã»ãšãã©ã®ãããžã§ã¯ãã«ã¯ãä»ã®ããã±ãŒãžãžã®äŸåé¢ä¿ããããŸãã å€ãããã±ãŒãžãã¹ãã£ã³ã§ããããŒã«ã¯ãå€éã®ãã«ãã§åé¡ããã£ããããŸãã Docker ã€ã¡ãŒãžããã«ãããå Žåã§ããåºæ¬ã€ã¡ãŒãžã«æ¢ç¥ã®è匱æ§ããªãããšã確èªããŠç¢ºèªãããšäŸ¿å©ã§ãã ãã 1 ã€ç¢ºèªããå¿ èŠãããã®ã¯ã誰ã誀ã£ãŠè³æ Œæ å ±ããã§ãã¯ã€ã³ããŠããªããšããããšã§ãã
çµã¿èŸŒã¿ã®ã»ãã¥ãªãã£
Azure ã¯ãã»ãšãã©ã®ãŠãŒã¶ãŒã®äœ¿ãããããšã»ãã¥ãªãã£ã®ãã©ã³ã¹ãåãããã«èšèšãããŠããŸãã ãŠãŒã¶ãŒã«ãã£ãŠã»ãã¥ãªãã£èŠä»¶ãç°ãªãã®ã§ãã¯ã©ãŠã ã»ãã¥ãªãã£ã«å¯Ÿããã¢ãããŒãã埮調æŽããå¿ èŠããããŸãã Microsoft ã¯ã ã»ãã¥ãªã㣠ã»ã³ã¿ãŒã§å€§éã®ã»ãã¥ãªãã£æ å ±ãå ¬éããŠããŸãã ãã®ãªãœãŒã¹ã¯ãçµã¿èŸŒã¿ã®æ»æè»œæžãã¯ãããžã®ããã¿ãçè§£ãããå°éå®¶ãæåã«åç §ãã¹ããã®ã§ãã
Azure Portal å ã§ã¯ã Azure Advisor ã¯åžžã«ç°å¢ãã¹ãã£ã³ããæšå¥šäºé ãäœæããã·ã¹ãã ã§ãã ãããã®æšå¥šäºé ã®äžéšã¯ãŠãŒã¶ãŒã®ã³ã¹ããç¯çŽããããã«èšèšãããŠããŸãããä»®æ³ãããã¯ãŒã¯ã«ãã£ãŠä¿è·ãããŠããªãã¹ãã¬ãŒãž ã³ã³ãããŒãäžçäžã«å ¬éãããªã©ãã»ãã¥ãªãã£ã§ä¿è·ãããŠããªãå¯èœæ§ã®ããæ§æãç¹å®ããããã«èšèšãããŠãããã®ããããŸãã
Azure ãããã¯ãŒã¯ ã€ã³ãã©ã¹ãã©ã¯ãã£
ãªã³ãã¬ãã¹ã®ãããã€ç°å¢ã§ã¯ããããã¯ãŒã¯ã®èšå®ã«å€§ããªãšãã«ã®ãŒãå¿ èŠã§ãã ã«ãŒã¿ãã¹ã€ãããªã©ãèšå®ããã®ã¯è€éãªäœæ¥ã§ãã ãããã¯ãŒã¯ã䜿çšãããšãç¹å®ã®ãªãœãŒã¹ãä»ã®ãªãœãŒã¹ãšéä¿¡ããå Žåã«ãã£ãŠã¯ã¢ã¯ã»ã¹ãé²ãããšãã§ããŸãã å€ãã®å Žåããããã¯ãŒã¯èŠåã¯ãéçºç°å¢ããéçšç°å¢ãžã®ã¢ã¯ã»ã¹ãå¶éããŸããããã¯ãéçºéäžã®ã³ãŒãã誀äœåãã倧éã®ããŒã¿ãåé€ãããšããäžæž¬ã®äºæ ãé²ãããã§ãã
ã»ãšãã©ã® PaaS Azure ãªãœãŒã¹ã«ã¯ãæãåºæ¬çã§å¶éã®å°ãªããããã¯ãŒã¯èšå®ã®ã¿ãçšæãããŠããŸãã ããšãã°ãã€ã³ã¿ãŒãããäžã®èª°ã§ãã¢ã㪠ãµãŒãã¹ã«ã¢ã¯ã»ã¹ã§ããŸãã éåžžãæ°ãã SQL Server ã€ã³ã¹ã¿ã³ã¹ã¯å¶éããããããå€éšé¢ä¿è ã¯ã¢ã¯ã»ã¹ã§ããŸããããAzure èªäœã§äœ¿çšããã IP ã¢ãã¬ã¹ç¯å²ã¯èš±å¯ãããŸãã ãã®ãããSQL ãµãŒããŒã¯å€éšã®è åšããä¿è·ãããŠããŸãããæ»æè 㯠Azure äžã®ãã¹ãŠã® SQL ã€ã³ã¹ã¿ã³ã¹ã«å¯ŸããŠæ»æãéå§ã§ããå Žæãã Azure ããªããžããããèšå®ããã ãã§æžã¿ãŸãã
ãããããã»ãšãã©ã® Azure ãªãœãŒã¹ã¯ããã现ããã¢ã¯ã»ã¹å¶åŸ¡ãå¯èœã«ãã Azure Virtual Network ã«é 眮ã§ããŸãã ãªã³ãã¬ãã¹ ãããã¯ãŒã¯ããããåºãäžçããä¿è·ãããŠãããã©ã€ããŒã ãããã¯ãŒã¯ã確ç«ããæ¹æ³ãšåæ§ã«ãä»®æ³ãããã¯ãŒã¯ã¯ Azure ãããã¯ãŒã¯å ã«ãããã©ã€ããŒã IP ã¢ãã¬ã¹ã®ã¢ã€ã©ã³ãã§ãã
å³ 9-1 Azure ã®ä»®æ³ãããã¯ãŒã¯ã
ãªã³ãã¬ãã¹ ãããã¯ãŒã¯ã«ãããã¯ãŒã¯ãžã®ã¢ã¯ã»ã¹ãå¶åŸ¡ãããã¡ã€ã¢ãŠã©ãŒã«ãããã®ãšåãæ¹æ³ã§ãä»®æ³ãããã¯ãŒã¯ã®å¢çã§åæ§ã®ãã¡ã€ã¢ãŠã©ãŒã«ã確ç«ã§ããŸãã æ¢å®ã§ã¯ãä»®æ³ãããã¯ãŒã¯äžã®ãã¹ãŠã®ãªãœãŒã¹ã¯åŒãç¶ãã€ã³ã¿ãŒããããšéä¿¡ã§ããŸãã äœããã®åœ¢åŒã®æç€ºçãªãã¡ã€ã¢ãŠã©ãŒã«äŸå€ãå¿ èŠãšããçä¿¡æ¥ç¶ã®ã¿ã§ãã
ãããã¯ãŒã¯ã確ç«ããããšãã¹ãã¬ãŒãž ã¢ã«ãŠã³ããªã©ã®å éšãªãœãŒã¹ã¯ãä»®æ³ãããã¯ãŒã¯äžã«ãããªãœãŒã¹ããã®ã¢ã¯ã»ã¹ã®ã¿ãèš±å¯ããããã«èšå®ã§ããŸãã ãã®ãã¡ã€ã¢ãŠã©ãŒã«ã¯ã远å ã¬ãã«ã®ã»ãã¥ãªãã£ãæäŸããŸãããã®ã¹ãã¬ãŒãž ã¢ã«ãŠã³ãã®ããŒãæŒæŽ©ããå Žåãæ»æè ã¯ããã«æ¥ç¶ããŠæŒæŽ©ããããŒãæªçšã§ããªããªããŸãã ãã®ã·ããªãªã¯ãæå°ç¹æš©ã®ååã®ãã 1 ã€ã®äŸã§ãã
Azure Kubernetes ã¯ã©ã¹ã¿ãŒå ã®ããŒãã¯ãAzure ã«ãã€ãã£ããªä»ã®ãªãœãŒã¹ãšåæ§ã«ãä»®æ³ãããã¯ãŒã¯ã«åå ã§ããŸãã ãã®æ©èœã¯ã Azure Container Networking Interface ãšåŒã°ããŸãã å®éã«ã¯ãä»®æ³ãã·ã³ãšã³ã³ãã㌠ã€ã¡ãŒãžãå²ãåœãŠãããä»®æ³ãããã¯ãŒã¯å ã«ãµãããããå²ãåœãŠãããŸãã
ä»®æ³ãããã¯ãŒã¯å ã®ãã¹ãŠã®ãªãœãŒã¹ãä»ã®ãã¹ãŠã®ãªãœãŒã¹ãšéä¿¡ããå¿ èŠãããããã§ã¯ãããŸããããæå°éã®ç¹æš©ã®ååã瀺ããã¹ãç¶è¡ããŸãã ããšãã°ãã¹ãã¬ãŒãž ã¢ã«ãŠã³ããš SQL ããŒã¿ããŒã¹ã«å¯Ÿã㊠Web API ãæäŸããã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããŒã¿ããŒã¹ãšã¹ãã¬ãŒãž ã¢ã«ãŠã³ããçžäºã«éä¿¡ããå¿ èŠã¯ã»ãšãã©ãããŸããã ãããã®éã®ããŒã¿å ±æã¯ãWeb ã¢ããªã±ãŒã·ã§ã³ãçµç±ããŸãã ãã®ããã ãããã¯ãŒã¯ ã»ãã¥ãªã㣠ã°ã«ãŒã (NSG) ã䜿çšããŠã2 ã€ã®ãµãŒãã¹éã®ãã©ãã£ãã¯ãæåŠã§ããŸãã
ãªãœãŒã¹éã®éä¿¡ãæåŠããããªã·ãŒã¯ãç¹ã«ãã©ãã£ãã¯å¶éãªãã§ Azure ã䜿çšããèæ¯ããæ¥ãŠå®è£ ããã®ãé¢åãªå ŽåããããŸãã ä»ã®äžéšã®ã¯ã©ãŠãã§ã¯ããããã¯ãŒã¯ ã»ãã¥ãªã㣠ã°ã«ãŒãã®æŠå¿µãã¯ããã«æ®åããŠããŸãã ããšãã°ãAWS ã®æ¢å®ã®ããªã·ãŒã¯ãNSG ã®ã«ãŒã«ã«ãã£ãŠæå¹ã«ãªããŸã§ãªãœãŒã¹éã§éä¿¡ã§ããªãããšã§ãã ãã®éçºã«ã¯æéãããããŸãããããå¶éã®å³ããç°å¢ã§ã¯ãããå®å šãªæ¢å®å€ãæäŸãããŸãã é©å㪠DevOps ãã©ã¯ãã£ã¹ (ç¹ã« Azure Resource Manager ãŸã㯠Terraform ã䜿çšããŠã¢ã¯ã»ã¹èš±å¯ã管çãã) ã䜿çšãããšãã«ãŒã«ã®å¶åŸ¡ã容æã«ãªããŸãã
ä»®æ³ãããã¯ãŒã¯ã¯ããªã³ãã¬ãã¹ãªãœãŒã¹ãšã¯ã©ãŠã ãªãœãŒã¹éã®éä¿¡ãèšå®ããå Žåã«ã圹ç«ã¡ãŸãã ä»®æ³ãã©ã€ããŒã ãããã¯ãŒã¯ã䜿çšããŠã2 ã€ã®ãããã¯ãŒã¯ãã·ãŒã ã¬ã¹ã«æ¥ç¶ã§ããŸãã ãã®æ¹æ³ã§ã¯ããã¹ãŠã®ãŠãŒã¶ãŒããªã³ãµã€ãã«ååšããã·ããªãªã§ã¯ãã²ãŒããŠã§ã€ã䜿çšããã«ä»®æ³ãããã¯ãŒã¯ãå®è¡ã§ããŸãã ãã®ãããã¯ãŒã¯ã確ç«ããããã«äœ¿çšã§ãããã¯ãããžã¯å€æ°ãããŸãã æãç°¡åãªã®ã¯ãå€ãã®ã«ãŒã¿ãŒãš Azure ã®éã§ç¢ºç«ã§ãã ãµã€ãé VPN ã䜿çšããããšã§ãã ãã©ãã£ãã¯ã¯ãã€ã³ã¿ãŒãããçµç±ã§æå·åãããä»ã®ãã©ãã£ãã¯ãšåããã€ããããã®ã³ã¹ãã§ãã³ããªã³ã°ãããŸãã ããå€ãã®åž¯åå¹ ä»¥äžã®ã»ãã¥ãªãã£ãæãŸããã·ããªãªã§ã¯ãAzure ã§ã¯ããªã³ãã¬ãã¹ ãããã¯ãŒã¯ãš Azure ã®éã®ãã©ã€ããŒãåç·ã䜿çšãã Express Route ãšãããµãŒãã¹ãæäŸãããŸãã ããã³ã¹ãããããã確ç«ãå°é£ã§ãããã»ãã¥ãªãã£ã匷åãããŸãã
Azure ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãå¶éããããã®ããŒã«ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡
RBAC ã¯ãAzure ã§å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ã« ID ãæäŸããã·ã¹ãã ã§ãã ã¢ããªã±ãŒã·ã§ã³ã¯ãããŒããã¹ã¯ãŒãã®ä»£ããã«ããŸãã¯äœ¿çšããã ãã§ãªãããã® ID ã䜿çšããŠãªãœãŒã¹ã«ã¢ã¯ã»ã¹ã§ããŸãã
ã»ãã¥ãªã㣠ããªã³ã·ãã«
RBAC ã®æåã®ã³ã³ããŒãã³ãã¯ã»ãã¥ãªã㣠ããªã³ã·ãã«ã§ãã ã»ãã¥ãªã㣠ããªã³ã·ãã«ã«ã¯ããŠãŒã¶ãŒãã°ã«ãŒãããµãŒãã¹ ããªã³ã·ãã«ããŸãã¯ãããŒãžã ID ãæå®ã§ããŸãã
å³ 9-2 ããŸããŸãªçš®é¡ã®ã»ãã¥ãªã㣠ããªã³ã·ãã«ã
- ãŠãŒã¶ãŒ - Azure Active Directory ã«ã¢ã«ãŠã³ããæã€ãã¹ãŠã®ãŠãŒã¶ãŒããŠãŒã¶ãŒã§ãã
- ã°ã«ãŒã - Azure Active Directory ããã®ãŠãŒã¶ãŒã®ã³ã¬ã¯ã·ã§ã³ã ã°ã«ãŒãã®ã¡ã³ããŒãšããŠããŠãŒã¶ãŒã¯èªåã®ããŒã«ã«å ããŠããã®ã°ã«ãŒãã®ããŒã«ãåŒãåããã
- ãµãŒãã¹ ããªã³ã·ãã« - ãµãŒãã¹ãŸãã¯ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããã»ãã¥ãªã㣠IDã
- ãããŒãžã ID - Azure ã«ãã£ãŠç®¡çããã Azure Active Directory IDã ãããŒãžã ID ã¯ãéåžžãAzure ãµãŒãã¹ã«å¯ŸããèªèšŒçšã®è³æ Œæ å ±ã管çããã¯ã©ãŠã ã¢ããªã±ãŒã·ã§ã³ãéçºãããšãã«äœ¿çšãããŸãã
ã»ãã¥ãªã㣠ããªã³ã·ãã«ã¯ãã»ãšãã©ã®ãªãœãŒã¹ã«é©çšã§ããŸãã ãã®åŽé¢ã¯ãAzure Kubernetes å ã§å®è¡ãããŠããã³ã³ãããŒã«ã»ãã¥ãªã㣠ããªã³ã·ãã«ãå²ãåœãŠãKey Vault ã«æ ŒçŽãããŠããã·ãŒã¯ã¬ããã«ã¢ã¯ã»ã¹ã§ããããã«ããããšãæå³ããŸãã Azure 颿°ã¯ãActive Directory ã€ã³ã¹ã¿ã³ã¹ãšéä¿¡ããŠãåŒã³åºãå ãŠãŒã¶ãŒã® JWT ãæ€èšŒã§ããã¢ã¯ã»ã¹èš±å¯ãååŸã§ããŸãã ãµãŒãã¹ ããªã³ã·ãã«ã䜿çšããŠãµãŒãã¹ãæå¹ã«ãããšãããŒã«ãšã¹ã³ãŒãã䜿çšããŠã¢ã¯ã»ã¹èš±å¯ã现ãã管çã§ããŸãã
圹å²
ã»ãã¥ãªã㣠ããªã³ã·ãã«ã¯ãå€ãã®åœ¹å²ãæ ã£ããããããµã«ããªã¢ã«ãªé¡æšã䜿çšããŠå€ãã®åžœåãççšãããããããšãã§ããŸãã åããŒã«ã¯ã"Azure Service Bus ãšã³ããã€ã³ãããã¡ãã»ãŒãžãèªã¿åã" ãªã©ã®äžé£ã®ã¢ã¯ã»ã¹èš±å¯ãå®çŸ©ããŸãã ã»ãã¥ãªã㣠ããªã³ã·ãã«ã®æå¹ãªã¢ã¯ã»ã¹èš±å¯ã»ããã¯ãã»ãã¥ãªã㣠ããªã³ã·ãã«ãæã€ãã¹ãŠã®ããŒã«ã«å²ãåœãŠãããŠãããã¹ãŠã®ã¢ã¯ã»ã¹èš±å¯ã®çµã¿åããã§ãã Azure ã«ã¯å€æ°ã®çµã¿èŸŒã¿ããŒã«ãããããŠãŒã¶ãŒã¯ç¬èªã®ããŒã«ãå®çŸ©ã§ããŸãã
å³ 9-3 RBAC ããŒã«ã®å®çŸ©ã
Azure ã«çµã¿èŸŒãŸããŠããã®ã¯ãææè ãå ±åäœæè ãé²èЧè ããŠãŒã¶ãŒ ã¢ã«ãŠã³ã管çè ãªã©ãå€ãã®é«ã¬ãã«ã®ããŒã«ã§ããããŸãã ææè ããŒã«ã䜿çšãããšãã»ãã¥ãªã㣠ããªã³ã·ãã«ã¯ãã¹ãŠã®ãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããã¢ã¯ã»ã¹èš±å¯ãä»ã®ãŠãŒã¶ãŒã«å²ãåœãŠãããšãã§ããŸãã å ±åäœæè ã¯ãã¹ãŠã®ãªãœãŒã¹ã«åãã¬ãã«ã®ã¢ã¯ã»ã¹æš©ãæã£ãŠããŸãããã¢ã¯ã»ã¹èš±å¯ãå²ãåœãŠãããšã¯ã§ããŸããã é²èЧè ã¯æ¢åã® Azure ãªãœãŒã¹ã®ã¿ã衚瀺ã§ãããŠãŒã¶ãŒ ã¢ã«ãŠã³ã管çè 㯠Azure ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ã管çã§ããŸãã
DNS ãŸãŒã³å ±åäœæè ãªã©ã®ãã詳现ãªçµã¿èŸŒã¿ããŒã«ã«ã¯ã1 ã€ã®ãµãŒãã¹ã«å¶éãããæš©éããããŸãã ã»ãã¥ãªã㣠ããªã³ã·ãã«ã¯ãä»»æã®æ°ã®ããŒã«ãåŒãåããããšãã§ããŸãã
ã¹ã³ãŒã
ããŒã«ã¯ãAzure å
ã®å¶éä»ããªãœãŒã¹ ã»ããã«é©çšã§ããŸãã ããšãã°ãåã® Service Bus ãã¥ãŒããã®èªã¿åãã®äŸã«ã¹ã³ãŒããé©çšãããšãã¢ã¯ã»ã¹èš±å¯ã 1 ã€ã®ãã¥ãŒã«çµã蟌ãããšãã§ããŸãã"Azure Service Bus ãšã³ããã€ã³ãããã¡ãã»ãŒãžãèªã¿å blah.servicebus.windows.net/queue1"
ã¹ã³ãŒãã¯ã1 ã€ã®ãªãœãŒã¹ãšåããããçãããããšãããªãœãŒã¹ ã°ã«ãŒãå šäœããµãã¹ã¯ãªãã·ã§ã³ãããã«ã¯ç®¡çã°ã«ãŒãã«é©çšããããšãã§ããŸãã
ã»ãã¥ãªã㣠ããªã³ã·ãã«ã«ç¹å®ã®ã¢ã¯ã»ã¹èš±å¯ããããã©ããããã¹ãããå ŽåãããŒã«ãšã¹ã³ãŒãã®çµã¿åãããèæ ®ãããŸãã ãã®çµã¿åããã«ããã匷åãªæ¿èªã¡ã«ããºã ãæäŸãããŸãã
åŠå®ãã
以åã¯ãRBAC ã«å¯Ÿã㊠"èš±å¯" ã«ãŒã«ã®ã¿ãèš±å¯ãããŠããŸããã ãã®åäœã«ãããäžéšã®ã¹ã³ãŒãã®ãã«ããè€éã«ãªããŸããã ããšãã°ãã¹ãã¬ãŒãž ã¢ã«ãŠã³ãã®ç¡éã®ãªã¹ãã«æç€ºçãªã¢ã¯ã»ã¹èš±å¯ãä»äžããå¿ èŠãããå Žåãé€ãããã¹ãŠã®ã¹ãã¬ãŒãž ã¢ã«ãŠã³ããžã®ã»ãã¥ãªã㣠ããªã³ã·ãã« ã¢ã¯ã»ã¹ãèš±å¯ããŸãã æ°ããã¹ãã¬ãŒãž ã¢ã«ãŠã³ããäœæããããã³ã«ããã®ã¢ã«ãŠã³ãã®äžèЧã«è¿œå ããå¿ èŠããããŸãã ããã«ããã管çãªãŒããŒããããå¢ããæãŸãããªãããšã確ãã«å¢ããŸããã
æåŠèŠåã¯ãèš±å¯èŠåãããåªå ãããŸãã çŸåšãåãããã äžã€ãé€ããŠãã¹ãŠãèš±å¯ãããã¹ã³ãŒãã¯ãããã¹ãŠãèš±å¯ããããšããã®ç¹å®ã®äžã€ãæåŠãããã®2ã€ã®ã«ãŒã«ãšããŠè¡šçŸã§ããŸãã æåŠã«ãŒã«ã¯ã管çã容æã«ããã ãã§ãªãããã¹ãŠã®ãŠãŒã¶ãŒãžã®ã¢ã¯ã»ã¹ãæåŠããããšã§ãããå®å šãªãªãœãŒã¹ãèš±å¯ããŸãã
ã¢ã¯ã»ã¹ã®ç¢ºèª
ãæ³åã®ãšããã倿°ã®ããŒã«ãšã¹ã³ãŒããæã€ããšã§ããµãŒãã¹ ããªã³ã·ãã«ã®æå¹ãªã¢ã¯ã»ã¹èš±å¯ãææ¡ããããšã¯éåžžã«å°é£ã«ãªãå¯èœæ§ããããŸãã ãã®äžã«æåŠã«ãŒã«ãéãããšãè€éããå¢ãã ãã§ãã 幞ããªããšã«ãä»»æã®ãµãŒãã¹ ããªã³ã·ãã«ã®æå¹ãªã¢ã¯ã»ã¹èš±å¯ã衚瀺ã§ããã¢ã¯ã»ã¹ èš±å¯èšç®ããŒã« ããããŸãã ããã¯éåžžãå³ 9-3 ã«ç€ºãããã«ãããŒã¿ã«ã® [IAM] ã¿ãã«ãããŸãã
å³ 9-4 ã¢ã㪠ãµãŒãã¹ã®ã¢ã¯ã»ã¹èš±å¯èšç®ããŒã«ã
ç§å¯ä¿è·
ãã¹ã¯ãŒããšèšŒææžã¯ãæ»æè ã«ãšã£ãŠäžè¬çãªæ»æãã¯ãã«ã§ãã ãã¹ã¯ãŒãã¯ã©ããã³ã° ããŒããŠã§ã¢ã¯ãã«ãŒã ãã©ãŒã¹æ»æãå®è¡ãã1 ç§ãããæ°ååã®ãã¹ã¯ãŒããæšæž¬ããããšããå¯èœæ§ããããŸãã ãã®ããããªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ã«äœ¿çšããããã¹ã¯ãŒãã¯ãããŸããŸãªæåã§åŒ·åã§ããå¿ èŠããããŸãã ãããã®ãã¹ã¯ãŒãã¯ãèŠããããšãã§ããªããããªãã¹ã¯ãŒãã®çš®é¡ã§ãã 幞ããªããšã«ãAzure ã®ãã¹ã¯ãŒãã¯ãå®éã«ã¯äººéãç¥ãå¿ èŠã¯ãããŸããã
å€ãã®ã»ãã¥ãªã㣠å°éå®¶ã¯ã ãã¹ã¯ãŒã ãããŒãžã£ãŒã䜿çšããŠç¬èªã®ãã¹ã¯ãŒããä¿æããããšãæåã®ã¢ãããŒãã§ããããšã瀺åããŠããŸãã ãã¹ã¯ãŒã㯠1 ãæã§äžå åãããŸãããéåžžã«è€éãªãã¹ã¯ãŒãã䜿çšããŠãã¢ã«ãŠã³ãããšã«äžæã§ããããšã確èªããããšãã§ããŸãã åãã·ã¹ãã ã Azure å ã«ååšããŸããã·ãŒã¯ã¬ããã®äžå€®ã¹ãã¢ã§ãã
Azure Key Vault
Azure Key Vault ã«ã¯ãããŒã¿ããŒã¹ãAPI ããŒãèšŒææžãªã©ã®ãã¹ã¯ãŒããæ ŒçŽããããã®äžå çãªå ŽæãçšæãããŠããŸãã ã·ãŒã¯ã¬ãããã³ã³ãããŒã«å ¥åããããšãã·ãŒã¯ã¬ããã¯åã³è¡šç€ºãããããšã¯ãªãããããæœåºããŠè¡šç€ºããã³ãã³ãã¯æå³çã«è€éã«ãªããŸãã ã»ãŒãããã¯ã¹å ã®æ å ±ã¯ããœãããŠã§ã¢æå·åãŸã㯠FIPS 140-2 ã¬ãã« 2 ã§æ€èšŒãããããŒããŠã§ã¢ ã»ãã¥ãªã㣠ã¢ãžã¥ãŒã«ã䜿çšããŠä¿è·ãããŸãã
ã㌠ã³ã³ãããŒãžã®ã¢ã¯ã»ã¹ã¯ãRBAC ãä»ããŠæäŸãããŸããã€ãŸããä»»æã®ãŠãŒã¶ãŒãã³ã³ãããŒå ã®æ å ±ã«ã¢ã¯ã»ã¹ã§ããã ãã§ã¯ãããŸããã ããšãã°ãWeb ã¢ããªã±ãŒã·ã§ã³ã Azure Key Vault ã«æ ŒçŽãããŠããããŒã¿ããŒã¹æ¥ç¶æååã«ã¢ã¯ã»ã¹ããããšããŸãã ã¢ã¯ã»ã¹ãååŸããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ ããªã³ã·ãã«ã䜿çšããŠå®è¡ããå¿ èŠããããŸãã ãã®åœ¹å²ãæŒããããšã§ãé庫ããç§å¯ãèªã¿åãããšãã§ããŸãã ããŸããŸãªã»ãã¥ãªãã£èšå®ããããã¢ããªã±ãŒã·ã§ã³ãã³ã³ãããŒã«å¯ŸããŠæã€ã¢ã¯ã»ã¹ãããã«å¶éã§ãããããã·ãŒã¯ã¬ããã¯æŽæ°ã§ããŸããããèªã¿åãã®ã¿ãè¡ãããšãã§ããŸãã
ã㌠ã³ã³ãããŒãžã®ã¢ã¯ã»ã¹ãç£èŠããŠãæ³å®ãããã¢ããªã±ãŒã·ã§ã³ã®ã¿ãã³ã³ãããŒã«ã¢ã¯ã»ã¹ããŠããããšã確èªã§ããŸãã ãã°ã Azure Monitor ã«çµ±åãçŽãããšãã§ããã®ã§ãäºæããªãç¶æ³ãçºçãããšãã«ã¢ã©ãŒããèšå®ã§ããŸãã
Kubernetes
Kubernetes å
ã«ã¯ãã·ãŒã¯ã¬ããæ
å ±ã®å°ããªéšåãç¶æããããã®åæ§ã®ãµãŒãã¹ããããŸãã Kubernetes ã·ãŒã¯ã¬ããã¯ãäžè¬ç㪠kubectl å®è¡å¯èœãã¡ã€ã«ã䜿çšããŠèšå®ã§ããŸãã
ã·ãŒã¯ã¬ããã®äœæã¯ãæ ŒçŽããå€ã® base64 ããŒãžã§ã³ãèŠã€ããã®ãšåããããç°¡åã§ãã
echo -n 'admin' | base64
YWRtaW4=
echo -n '1f2d1e2e67df' | base64
MWYyZDFlMmU2N2Rm
次ã«ã次ã®äŸã®ãã㪠secret.yml ãšããååã®ã·ãŒã¯ã¬ãã ãã¡ã€ã«ã«è¿œå ããŸãã
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
username: YWRtaW4=
password: MWYyZDFlMmU2N2Rm
æåŸã«ã次ã®ã³ãã³ããå®è¡ããŠããã®ãã¡ã€ã«ã Kubernetes ã«èªã¿èŸŒãããšãã§ããŸãã
kubectl apply -f ./secret.yaml
ãããã®ã·ãŒã¯ã¬ããã¯ãããªã¥ãŒã ã«ããŠã³ãããããšããç°å¢å€æ°ãä»ããŠã³ã³ãã㌠ããã»ã¹ã«å ¬éããããšãã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã® 12 èŠçŽ ã¢ã㪠ã¢ãããŒãã§ã¯ãæãäœãå ±é忝ã䜿çšããŠèšå®ãã¢ããªã±ãŒã·ã§ã³ã«éä¿¡ããããšãææ¡ãããŠããŸãã ç°å¢å€æ°ã¯ããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãã¢ããªã±ãŒã·ã§ã³ã«é¢ä¿ãªããµããŒãããããããæãäœãå ±é忝ã§ãã
çµã¿èŸŒã¿ã® Kubernetes ã·ãŒã¯ã¬ããã䜿çšãã代ããã«ãKubernetes å ãã Azure Key Vault å ã®ã·ãŒã¯ã¬ããã«ã¢ã¯ã»ã¹ããããšãã§ããŸãã ãããè¡ãæãç°¡åãªæ¹æ³ã¯ãã·ãŒã¯ã¬ãããèªã¿èŸŒãããšããŠããã³ã³ãããŒã« RBAC ããŒã«ãå²ãåœãŠãããšã§ãã ãã®åŸãã¢ããªã±ãŒã·ã§ã³ã¯ Azure Key Vault API ã䜿çšããŠã·ãŒã¯ã¬ããã«ã¢ã¯ã»ã¹ã§ããŸãã ãã ãããã®æ¹æ³ã§ã¯ã³ãŒãã倿Žããå¿ èŠããããç°å¢å€æ°ã䜿çšãããã¿ãŒã³ã«ã¯åŸããŸããã 代ããã«ãã³ã³ãããŒã«å€ãæ¿å ¥ã§ããŸãã ãã®æ¹æ³ã¯ãã¯ã©ã¹ã¿ãŒäžã®ãŠãŒã¶ãŒãã¢ã¯ã»ã¹ã§ãããããå®éã«ã¯ Kubernetes ã·ãŒã¯ã¬ãããçŽæ¥äœ¿çšãããããå®å šã§ãã
éä¿¡æããã³åŸ æ©æã®æå·å
ããŒã¿ãå®å šã«ä¿ã€ããšã¯ããã£ã¹ã¯äžã«ããããããŸããŸãªãµãŒãã¹éãééããŠãããã«é¢ä¿ãªãéèŠã§ãã ããŒã¿ãæŒæŽ©ããªãããã«ããæã广çãªæ¹æ³ã¯ãä»ã®ãŠãŒã¶ãŒãç°¡åã«èªãããšãã§ããªã圢åŒã«æå·åããããšã§ãã Azure ã§ã¯ãããŸããŸãªæå·åãªãã·ã§ã³ããµããŒããããŠããŸãã
茞éäž
Azure ã®ãããã¯ãŒã¯äžã®ãã©ãã£ãã¯ãæå·åããã«ã¯ãããã€ãã®æ¹æ³ããããŸãã éåžžãAzure ãµãŒãã¹ãžã®ã¢ã¯ã»ã¹ã¯ããã©ã³ã¹ããŒãå±€ã»ãã¥ãªã㣠(TLS) ã䜿çšããæ¥ç¶çµç±ã§è¡ãããŸãã ããšãã°ãAzure API ãžã®ãã¹ãŠã®æ¥ç¶ã«ã¯ TLS æ¥ç¶ãå¿ èŠã§ãã åæ§ã«ãAzure Storage å ã®ãšã³ããã€ã³ããžã®æ¥ç¶ã¯ãTLS ã§æå·åãããæ¥ç¶ã§ã®ã¿æ©èœããããã«å¶éã§ããŸãã
TLS ã¯è€éãªãããã³ã«ã§ãããæ¥ç¶ã TLS ã䜿çšããŠããããšãç¥ãã ãã§ã¯ãã»ãã¥ãªãã£ã確ä¿ããã«ã¯äžååã§ãã ããšãã°ãTLS 1.0 ã¯æ ¢æ§çã«å®å šã§ã¯ãªããTLS 1.1 ã¯ããŸãåªããæ©èœã§ã¯ãããŸããã TLS ã®ããŒãžã§ã³å ã§ããæ¥ç¶ã®æå·åè§£é€ã容æã«ããããŸããŸãªèšå®ããããŸãã æåã®æªçœ®ã¯ããµãŒããŒæ¥ç¶ã up-to-date ãšé©åã«æ§æããããããã³ã«ã䜿çšããŠãããã©ããã確èªããããšã§ãã
ãã®ãã§ãã¯ã¯ãSSL ã©ãã® SSL ãµãŒã㌠ãã¹ããªã©ã®å€éšãµãŒãã¹ã«ãã£ãŠå®è¡ã§ããŸãã äžè¬ç㪠Azure ãšã³ããã€ã³ã (ãã®å Žåã¯ãµãŒãã¹ ãã¹ ãšã³ããã€ã³ã) ã«å¯ŸããŠãã¹ããå®è¡ãããšãã»ãŒå®å šãªã¹ã³ã¢ã® A ãçæãããŸãã
Azure SQL ããŒã¿ããŒã¹ãªã©ã®ãµãŒãã¹ã§ããTLS æå·åã䜿çšããŠããŒã¿ãé衚瀺ã«ä¿ã¡ãŸãã TLS ã䜿çšããŠè»¢éäžã®ããŒã¿ãæå·åããããšã«é¢ããè峿·±ãç¹ã¯ãMicrosoft ã TLS ãå®è¡ããŠããã³ã³ãã¥ãŒã¿ãŒéã®æ¥ç¶ããªãã¹ã³ã§ããªããšããããšã§ãã ããã«ãããããŒã¿ã Microsoft èªäœãæšæºçãªæ»æè ãããå€ãã®ãªãœãŒã¹ãæã€åœå®¶äž»äœã®è åšã«ãããããå¯èœæ§ãæžå¿µããäŒæ¥ã«å®å¿æãæäŸããããšãæåŸ ãããŠããŸãã
å³ 9-5. Service Bus ãšã³ããã€ã³ãã®ã¹ã³ã¢ A ã瀺ã SSL ã©ã ã¬ããŒãã
ãã®ã¬ãã«ã®æå·åã¯åžžã«ååã§ã¯ãããŸããããAzure TLS æ¥ç¶ãéåžžã«å®å šã§ãããšãã確信ãåŸãå¿ èŠããããŸãã Azure ã¯ãæå·åã®åäžã«äŒŽããã»ãã¥ãªãã£æšæºãåŒãç¶ãé²åãããŸãã ã»ãã¥ãªãã£æšæºãç£èŠããAzure ã®æ¹åã«åã£ãæŽæ°ãè¡ã£ãŠãã人ãããããšãç¥ã£ãŠè¯ãã§ããã
ä¿åäž
ã©ã®ã¢ããªã±ãŒã·ã§ã³ã§ããããŒã¿ããã£ã¹ã¯äžã«çœ®ãããŠããå Žæã倿°ãããŸãã ã¢ããªã±ãŒã·ã§ã³ ã³ãŒãèªäœã¯ãããã€ãã®ã¹ãã¬ãŒãž ã¡ã«ããºã ããèªã¿èŸŒãŸããŸãã ãŸããã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãSQL ServerãCosmos DBãé©ãã»ã©äŸ¡æ Œå¹çã®é«ã Table Storage ãªã©ãäœããã®çš®é¡ã®ããŒã¿ããŒã¹ã䜿çšãããŸãã ãããã®ããŒã¿ããŒã¹ã¯ãã¹ãŠãé »ç¹ã«æå·åãããã¹ãã¬ãŒãžã䜿çšããŠãé©åãªã¢ã¯ã»ã¹èš±å¯ãæã€ã¢ããªã±ãŒã·ã§ã³ä»¥å€ã®ãŠãŒã¶ãŒãããŒã¿ãèªã¿åããªãããã«ããŸãã ã·ã¹ãã æŒç®åã§ããæå·åãããããŒã¿ãèªã¿åãããšã¯ã§ããŸããã ãã®ããã顧客ã¯èªåã®æ©å¯æ å ±ãç§å¯ã®ãŸãŸã§ãããšç¢ºä¿¡ã§ããŸãã
ã¹ãã¬ãŒãž
Azure ã®å€§éšåã®åºç€ãšãªãã®ã¯ãAzure Storage ãšã³ãžã³ã§ãã ä»®æ³ãã·ã³ ãã£ã¹ã¯ã¯ãAzure Storage ã®äžã«ããŠã³ããããŸãã Azure Kubernetes Service ã¯ãããèªäœã Azure Storage ã§ãã¹ããããŠããä»®æ³ãã·ã³äžã§å®è¡ãããŸãã Azure Functions Apps ã Azure Container Instances ãªã©ã®ãµãŒããŒã¬ã¹ ãã¯ãããžã§ããAzure Storage ã®äžéšã§ãããã£ã¹ã¯ãäžè¶³ããŸãã
Azure Storage ãé©åã«æå·åãããŠããå Žåã¯ãä»ã®ã»ãšãã©ã®ãã®ãæå·åããããã®åºç€ãæäŸãããŸãã Azure Storage ã¯ãFIPS 140-2 æºæ ã®256 ããã AES ã§æå·åãããŸãã ããã¯ãéå» 20 幎ã»ã©ã«ããã£ãŠåºç¯ãªåŠè¡èª¿æ»ã®å¯Ÿè±¡ãšãªã£ãŠãããããè©äŸ¡ãããŠããæå·åãã¯ãããžã§ãã çŸæç¹ã§ã¯ãããŒãç¥ããªã人ã AES ã«ãã£ãŠæå·åãããããŒã¿ãèªã¿åãããšãå¯èœã«ããæ¢ç¥ã®å®çšçãªæ»æã¯ãããŸããã
æ¢å®ã§ã¯ãAzure Storage ã®æå·åã«äœ¿çšãããããŒã¯ Microsoft ã«ãã£ãŠç®¡çãããŸãã ãããã®ããŒãžã®æªæã®ããã¢ã¯ã»ã¹ãé²ãããã«ãåºç¯ãªä¿è·ã宿œãããŠããŸãã ãã ããç¹å®ã®æå·åèŠä»¶ãæã€ãŠãŒã¶ãŒã¯ãAzure Key Vault ã§ç®¡çããã ç¬èªã®ã¹ãã¬ãŒãž ããŒãæäŸ ããããšãã§ããŸãã ãããã®ããŒã¯ãã€ã§ãåãæ¶ãããšãã§ããåãæ¶ãããå Žåããããã䜿çšããŠããã¹ãã¬ãŒãž ã¢ã«ãŠã³ãã®å 容ã«ã¢ã¯ã»ã¹ããããšãã§ããªããªããŸãã
ä»®æ³ãã·ã³ã¯æå·åãããã¹ãã¬ãŒãžã䜿çšããŸãããWindows ã® BitLocker ã Linux äžã® DM-Crypt ãªã©ã®ãã¯ãããžã䜿çšããŠãå¥ã®æå·åã¬ã€ã€ãŒãæäŸã§ããŸãã ãããã®ãã¯ãããžã¯ããã£ã¹ã¯ ã€ã¡ãŒãžãã¹ãã¬ãŒãžãããªãŒã¯ãããå Žåã§ããèªã¿åãäžå¯èœãªãŸãŸã§ããããšãæå³ããŸãã
Azure SQL
Azure SQL ã§ãã¹ããããŠããããŒã¿ããŒã¹ã§ã¯ã Transparent Data Encryption (TDE) ãšåŒã°ãããã¯ãããžã䜿çšããŠãããŒã¿ãæå·åããããŸãŸã«ãªããŸãã æ°ããäœæããããã¹ãŠã® SQL ããŒã¿ããŒã¹ã§ã¯æ¢å®ã§æå¹ã«ãªã£ãŠããŸãããã¬ã¬ã· ããŒã¿ããŒã¹ã§ã¯æåã§æå¹ã«ããå¿ èŠããããŸãã TDE ã¯ãããŒã¿ããŒã¹ã ãã§ãªããããã¯ã¢ãããšãã©ã³ã¶ã¯ã·ã§ã³ ãã°ã®æå·åãšæå·åè§£é€ããªã¢ã«ã¿ã€ã ã§å®è¡ããŸãã
æå·åãã©ã¡ãŒã¿ãŒã¯ã master ããŒã¿ããŒã¹ã«æ ŒçŽãããèµ·åæã«æ®ãã®æäœã®ããã«ã¡ã¢ãªã«èªã¿èŸŒãŸããŸãã ã€ãŸãã master ããŒã¿ããŒã¹ã¯æå·åãããŠããªãç¶æ
ãç¶æããå¿
èŠããããŸãã å®éã®ããŒã¯ Microsoft ã«ãã£ãŠç®¡çãããŸãã ãã ããå³å¯ãªã»ãã¥ãªãã£èŠä»¶ãæã€ãŠãŒã¶ãŒã¯ãAzure Storage ã®å Žåãšã»ãŒåãæ¹æ³ã§ Key Vault ã«ç¬èªã®ããŒãæäŸã§ããŸãã Key Vault ã¯ãããŒã®ããŒããŒã·ã§ã³ã倱å¹ãªã©ã®ãµãŒãã¹ãæäŸããŸãã
TDS ã® "ééç" éšåã¯ãæå·åãããããŒã¿ããŒã¹ã䜿çšããããã«ã¯ã©ã€ã¢ã³ãã®å€æŽãå¿ èŠãªããšããäºå®ããçãŸããŸãã ãã®æ¹æ³ã¯åªããã»ãã¥ãªãã£ãæäŸããŸããããŠãŒã¶ãŒãããŒã¿ã®æå·åãè§£é€ããã«ã¯ãããŒã¿ããŒã¹ ãã¹ã¯ãŒããæŒããããã ãã§ååã§ãã ããŒã¿ããŒã¹å ã®åã ã®åãŸãã¯ããŒãã«ãæå·åãããã 1 ã€ã®æ¹æ³ããããŸãã Always Encrypted ã䜿çšãããšãæå·åãããããŒã¿ãããŒã¿ããŒã¹å ã®ãã¬ãŒã³ ããã¹ãã«è¡šç€ºãããªããªããŸãã
ãã®ã¬ãã«ã®æå·åãèšå®ããã«ã¯ãSQL Server Management Studio ã®ãŠã£ã¶ãŒãã䜿çšããŠãæå·åã®çš®é¡ãšãé¢é£ä»ããããŠããããŒãæ ŒçŽãã Key Vault å ã®å Žæãéžæããå¿ èŠããããŸãã
å³ 9-6 Always Encrypted ã䜿çšããŠæå·åããããŒãã«å ã®åãéžæããã
ãããã®æå·åãããåããæ
å ±ãèªã¿åãã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãæå·åãããããŒã¿ãèªã¿åãããã«ç¹å¥ãªå¶éãèšããå¿
èŠããããŸãã æ¥ç¶æåå㯠Column Encryption Setting=Enabled ã§æŽæ°ããå¿
èŠããããã¯ã©ã€ã¢ã³ãè³æ Œæ
å ±ã¯ Key Vault ããååŸããå¿
èŠããããŸãã ãã®åŸãSQL Server ã¯ã©ã€ã¢ã³ãã«åæå·åããŒãæºåããå¿
èŠããããŸãã ãããå®äºãããšãæ®ãã®ã¢ã¯ã·ã§ã³ã§ã¯ SQL ã¯ã©ã€ã¢ã³ããžã®æšæºã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšãããŸãã ã€ãŸããSQL ã¯ã©ã€ã¢ã³ãäžã«æ§ç¯ããã Dapper ã Entity Framework ãªã©ã®ããŒã«ã¯ã倿Žãªãã§åŒãç¶ãæ©èœããŸãã ãã¹ãŠã®èšèªã§ããã¹ãŠã® SQL Server ãã©ã€ããŒã§ Always Encrypted ããŸã 䜿çšã§ããªãå ŽåããããŸãã
TDE ãš Always Encrypted ã®äž¡æ¹ãã¯ã©ã€ã¢ã³ãåºæã®ããŒãšå ±ã«äœ¿çšã§ãããããæãå³å¯ãªæå·åèŠä»¶ããµããŒããããŸãã
Cosmos DBïŒã³ã¹ã¢ã¹ DBïŒ
Cosmos DB ã¯ãMicrosoft ã Azure ã§æäŸããææ°ã®ããŒã¿ããŒã¹ã§ãã ã»ãã¥ãªãã£ãšæå·åã念é ã«çœ®ããŠããŒãããæ§ç¯ãããŠããŸãã AES-256 ãããæå·åã¯ããã¹ãŠã® Cosmos DB ããŒã¿ããŒã¹ã®æšæºã§ãããç¡å¹ã«ããããšã¯ã§ããŸããã éä¿¡ã® TLS 1.2 èŠä»¶ãšçµã¿åãããŠãã¹ãã¬ãŒãž ãœãªã¥ãŒã·ã§ã³å šäœãæå·åãããŸãã
å³ 9-7 Cosmos DB å ã®ããŒã¿æå·åã®ãããŒã
Cosmos DB ã§ã¯ãé¡§å®¢ã®æå·åããŒãæäŸããæ©èœã¯ãããŸããããããŒã ã¯ããããªãã§ PCI-DSS æºæ ãç¶ããããã«éèŠãªäœæ¥ãè¡ã£ãŠããŸãã Cosmos DB ã§ã¯ãAzure SQL ã® Always Encrypted ãšåæ§ã®çš®é¡ã®åäžåæå·åããŸã ãµããŒããããŠããŸããã
ã»ãã¥ãªãã£ãç¶æãã
Azure ã«ã¯ãå®å šæ§ã®é«ã補åããªãªãŒã¹ããããã«å¿ èŠãªãã¹ãŠã®ããŒã«ããããŸãã ãã ããéã®åŒ·ãã¯æã匱ãéšåã«ããã£ãŠããŸãã Azure äžã«ãããã€ãããã¢ããªã±ãŒã·ã§ã³ãé©åãªã»ãã¥ãªãã£ã®èãæ¹ãšé©åãªã»ãã¥ãªãã£ç£æ»ã䜿çšããŠéçºãããŠããªãå Žåããããã¯ãã§ãŒã³ã®åŒ±ããªã³ã¯ã«ãªããŸãã 倿°ã®åªããéçåæããŒã«ãæå·åã©ã€ãã©ãªãããã³ã»ãã¥ãªã㣠ãã©ã¯ãã£ã¹ã䜿çšããŠãAzure ã«ã€ã³ã¹ããŒã«ãããŠãããœãããŠã§ã¢ã Azure èªäœãšåããããå®å šã§ããããšã確èªã§ããŸãã ããšãã°ã éçåæããŒã« ã æå·åã©ã€ãã©ãªãªã©ããããŸãã