
- TOP
- ã¿ã°äžèЧ
- Azure
Azure
Microsoft Azureãšã¯ãMicrosoftãæäŸããã¯ã©ãŠããµãŒãã¹ã®ç·ç§°ã§ãã
äŒæ¥ãéçºè
åãã«ãã³ã³ãã¥ãŒãã£ã³ã°ãåæãããŒã¿ã¹ãã¬ãŒãžããããã¯ãŒãã³ã°ãAIãµãŒãã¹ãªã©å€å²ã«ããããµãŒãã¹ãæäŸããŠããŸãã
ã¹ã±ãŒã©ãã«ã§æè»æ§ãé«ãããªã³ãã¬ãã¹ç°å¢ãšçµ±åããªãã䜿ãããã€ããªããã¯ã©ãŠããœãªã¥ãŒã·ã§ã³ãšããŠãè©äŸ¡ãããŠããŸãã
ã€ãã³ã

ãã¬ãžã³
æè¡ããã°
ããã«ã¡ã¯ãã¯ãã¹ã€ãããŒã·ã§ã³æ¬éšã®å¹³å²¡ã§ãã åŒç€Ÿã®Azureã¯ã©ãŠãSOCïŒä»¥äžAzure SOCïŒã§ã¯ãAzureç°å¢ã®ã»ãã¥ãªãã£èšå®ã®å¯èŠåãšæ¹åãããã³ã»ãã¥ãªãã£ã€ã³ã·ãã³ãã®æ©æçºèŠãšèª¿æ»æ¯æŽãè¡ã£ãŠããŸãã ç§ã¯Azure SOCéå¶ã¡ã³ããŒãšããŠäž»ã«Microsoft Defender for CloudãæŽ»çšããAzureç°å¢ã®ã»ãã¥ãªãã£èšå®ã®ç£èŠãè¡ã£ãŠããŸãã ååæžãã ããã° ã§ã¯ãAzure SOCã§æŽ»èºããŠãã䟿å©ãªãµãŒãã¹ã®äžéšãšããŠãMicrosoft Defender for Cloudã®CSPMæ©èœãšCWPæ©èœã®æŠèŠã玹ä»ããŸããã ä»åã¯CWPæ©èœã®äžã€ã§ããã»ãã¥ãªãã£ã¢ã©ãŒãããã¡ãŒã«ãããã¯Microsoft TeamsïŒä»¥äžTeamsïŒã®ä»»æã®ãã£ãã«ã«èªåéç¥ããæ¹æ³ã«ã€ããŠã玹ä»ããããšæããŸãã ã»ãã¥ãªãã£ã¢ã©ãŒããã¡ãŒã«ã§éç¥ãããå Žå Microsoft Defender for Cloudã®CWPïŒã¯ã©ãŠãã¯ãŒã¯ããŒãä¿è·ïŒãæå¹ã«ããããšã§ãã»ãã¥ãªãã£ã¢ã©ãŒãç»é¢äžã«ãã¯ã©ãŠãç°å¢å
ã§è
åšãæ€ç¥ãããããã«ãªããŸãã詳现㯠ååããã° ããäžèªãã ããã ã»ãã¥ãªãã£ã¢ã©ãŒãã¯Microsoft Defender for Cloudã®éç¥èšå®ãããã¯ãAzure Monitorã®ã¢ã©ãŒãèšå®ãè¡ãããšã§ãã¡ãŒã«ã§éç¥ã§ããŸãã ç¹ã«Microsoft Defender for Cloudã®éç¥èšå®ã¯éåžžã«ç°¡åã«èšå®ã§ãããããCWPãæŽ»çšããŠããå Žåã¯èšå®ããããšããå§ãããŸãã Microsoft Defender for Cloudã®ã¡ãŒã«éç¥èšå® ã¡ãŒã«ã®åä¿¡è
ã«ã¯Azure RBACã®äžéšããŒã«ãèšå®ããããçŽæ¥ã¡ãŒã«ã¢ãã¬ã¹ãèšå®ã§ããŸãã äŸãã°ãææè
ãããŒã«éžææã«ã¯ããææè
ãæš©éãå²ãåœãŠãããŠããå
šå¡å®ã«Microsoft Defender for Cloudããã¡ãŒã«ãåãåãããšãã§ããŸãã Azure Monitorã®ã¢ã©ãŒãèšå® Azure Monitorã®ã¢ã©ãŒãèšå®ã§ã¯ãããè©³çŽ°ã«æ¡ä»¶ãèšå®ã§ããŸãã ã»ãã¥ãªãã£ã¢ã©ãŒããTeamsã®ä»»æã®ãã£ãã«ã«éç¥ãããå Žå åäžãµãã¹ã¯ãªãã·ã§ã³ã管çããŠããå Žåã¯ã¡ãŒã«éç¥ã§ååã ãšæããŸãããAzure SOCã§ã¯Azure Lighthouseãå©çšããåŒç€Ÿå
ã®è€æ°ãããžã§ã¯ãã®ãµãã¹ã¯ãªãã·ã§ã³ã®ã»ãã¥ãªãã£æ
å ±ãéçŽããŠããŸãã ãã®ãããã»ãã¥ãªãã£ã¢ã©ãŒãçºåºæã«ã¯ããµãã¹ã¯ãªãã·ã§ã³ç®¡çè
ã«å³æã§å¯Ÿå¿ããŠãããããã«ãåã
ã®ãµãã¹ã¯ãªãã·ã§ã³é£çµ¡çšãã£ãã«ã«å³æã§Teamsã®éç¥ãé£ã°ããããšèããŸããã ããããããš Microsoft Defender for Cloudã®ã»ãã¥ãªãã£ã¢ã©ãŒãçºåºãããªã¬ãŒãšããŠãLogic Appsãèµ·åãã Excelãã¡ã€ã«å
ã®ããŒãã«æ
å ±ãååŸãã ã»ãã¥ãªãã£ã¢ã©ãŒãã«çŽã¥ããµãã¹ã¯ãªãã·ã§ã³IDãšãExcelãã¡ã€ã«å
ã®ãµãã¹ã¯ãªãã·ã§ã³IDãçªãåãããŠã該åœã®Teamsã®ã°ã«ãŒãIDãšãã£ãã«IDãååŸãã ååŸããã°ã«ãŒãIDãšãã£ãã«IDã«è©²åœããTeamsã®ãã£ãã«ã«éç¥ãã Microsoft Defender for Cloudã§ã¯ãŒã¯ãããŒã®èªååèšå®ãè¡ã ã»ãã¥ãªãã£ã¢ã©ãŒããæ³å®ã®ãã£ãã«ã«æçš¿ãããããšã確èªãã 1~4ã¯Azure Logic AppsïŒä»¥äžLogic AppsïŒã§èšå®ãã5ã¯Microsoft Defender for Cloudã§èšå®ããŸãã æåŸã«ãµã³ãã«ã¢ã©ãŒããåºããŠãæ³å®ãããã£ãã«ã«æçš¿ãããããšã確èªããŸãã Logic Appsã®èšå® Logic Appsã¯Azureäžã§æäŸãããã¯ã©ãŠãããŒã¹ã®ã¯ãŒã¯ãããŒã®èªååãµãŒãã¹ã§ãã ããŸããŸãªã¢ããªããµãŒãã¹ãã€ãªããæ¥åããã»ã¹ãèªååã§ããŸãã ç¹åŸŽ ããŒã³ãŒã/ããŒã³ãŒãã§æ§ç¯å¯èœ ããªã¬ãŒãšã¢ã¯ã·ã§ã³ã®çµã¿åããã§å®çŸ© å€çš®å€æ§ã®ã³ãã¯ã¿ãå©çšå¯èœ(TeamsãMicrosoft Defender for CloudãMicrosoft 365ãSalesforceãX(Twitter)ç) 1~4ã®ããããããšãããªã¬ãŒãšã¢ã¯ã·ã§ã³ãçµã¿åãããŠå®çŸ©ããŸãã 1. Microsoft Defender for Cloudã®ã»ãã¥ãªãã£ã¢ã©ãŒãçºåºãããªã¬ãŒãšããŠãLogic Appsãèµ·åãã ã¡ãã¥ãŒã®[ããžãã¯ã¢ããªãã¶ã€ããŒ]ãéžæãããšã[ããªã¬ãŒã®è¿œå ]ãã¿ã³ã衚瀺ãããŸããæ€çŽ¢æ¬ã«"Defender for Cloud"ãšå
¥åãããšãã»ãã¥ãªãã£ã¢ã©ãŒã以å€ã«ãã¬ã³ã¡ã³ããŒã·ã§ã³ïŒæšå¥šäºé
ïŒãèŠå¶ã³ã³ãã©ã€ã¢ã³ã¹ã®çºåºãããªã¬ãŒãšãªãã³ãã¯ã¿ãããããšãããããŸãã ä»åã¯ããMicrosoft Defender for Cloud ã®èŠåãäœæãŸãã¯ããªã¬ãŒãããå Žåãããªã¬ãŒãéžã³ãŸãã 2. Excelãã¡ã€ã«å
ã®ããŒãã«æ
å ±ãååŸãã ããªã¬ãŒãäœæãããšã¢ã¯ã·ã§ã³ã远å ã§ããããã«ãªããŸãã [ã¢ã¯ã·ã§ã³ã®è¿œå ]ãã¿ã³ãæŒäžããæ€çŽ¢æ¬ã«"Excel"ãšå
¥åãããšãããŸããŸãªçš®é¡ã®Excelã³ãã¯ã¿ã衚瀺ãããŸãã ä»åã¯ãã衚å
ã«ååšããè¡ãäžèŠ§è¡šç€ºãã¢ã¯ã·ã§ã³ãéžã³ãŸãã Teamså
ã«æ ŒçŽããŠããExcelãã¡ã€ã«ã«ã¢ã¯ã»ã¹ããŠãããŒãã«ã®æ
å ±ãååŸããŸãã Excelãã¡ã€ã«ã«ã¯ãµãã¹ã¯ãªãã·ã§ã³IDãTeamsã®ãã£ãã«åãTeamsã®ã°ã«ãŒãIDãTeamsã®ãã£ãã«IDãèšèŒããŠããŸããExcelå
ã®ããŒã¿ç¯å²ã¯ããããããããŒãã«ãšããŠæžåŒèšå®ããŠããå¿
èŠããããŸãã 3. ã»ãã¥ãªãã£ã¢ã©ãŒãã«çŽã¥ããµãã¹ã¯ãªãã·ã§ã³IDãšãExcelãã¡ã€ã«å
ã®ãµãã¹ã¯ãªãã·ã§ã³IDãçªãåãããŠã該åœã®Teamsã®ã°ã«ãŒãIDãšãã£ãã«IDãååŸãã [ã¢ã¯ã·ã§ã³ã®è¿œå ]ãã¿ã³ãæŒäžããæ€çŽ¢æ¬ã«"Filter array"ãšå
¥åãããšã玫ã®ã¢ã€ã³ã³ã®ãã«ãã€ã³ã¢ã¯ã·ã§ã³ã衚瀺ãããŸãã ïŒãã«ãã€ã³ã¢ã¯ã·ã§ã³ã¯ã¿ã€ãã«ã®å³æšªã«éåã§"Built-in"ãšè¡šç€ºãããŠããŸãïŒ ãã©ã¡ãŒã¿ã¿ãã§ã[FROM]ã«Excelãã¡ã€ã«ã®"Value"ãéžæããŸãã [Filter Query]ã®å·ŠèŸºã«ã¯åçãªã³ã³ãã³ãããExcelãã¡ã€ã«å
ã®ãµãã¹ã¯ãªãã·ã§ã³IDãå³èŸºã«ã¯ã»ãã¥ãªãã£ã¢ã©ãŒãã«çŽã¥ããµãã¹ã¯ãªãã·ã§ã³IDãéžæããŠãäžèŽããæ
å ±ãExcelãã¡ã€ã«ããååŸããããã«èšå®ããŸãã 4. ååŸããã°ã«ãŒãIDãšãã£ãã«IDã«è©²åœããTeamsã®ãã£ãã«ã«éç¥ãã [ã¢ã¯ã·ã§ã³ã®è¿œå ]ãã¿ã³ãæŒäžããæ€çŽ¢æ¬ã«"Teams"ãšå
¥åãã"ãã£ãããŸãã¯ãã£ãã«ã§ã¡ãã»ãŒãžãæçš¿ãã"ãã£ãã«ãéžæããŸãã ãã©ã¡ãŒã¿ã¿ãã§ã[æçš¿è
]ã¯"ãããŒããã"ã"ãŠãŒã¶"ãéžæã§ããŸãããã©ã€ããŒããã£ãã«ã«æçš¿ãããå Žåã¯"ãŠãŒã¶"ãéžæããªããšãšã©ãŒã«ãªããŸãã [æçš¿å
]ã¯"ã°ã«ãŒããã£ãã"ãŸãã¯"ãã£ãã«"ãéžæã§ããŸãã [ããŒã ]ã¯Excelãã¡ã€ã«å
ã®"group_id"ã[ãã£ãã«]ã¯Excelãã¡ã€ã«ã®"channel_id"ãéžæããŸããâ»"group_id"ãéžæããããšã§ãèªåçã«ã«ãŒãåŠçã远å ãããŸãã [ã¡ãã»ãŒãž]ã§ã¯æäŸãããæ
å ±ãèšèŒããããç¹å®ã®çžæã«ã¡ã³ã·ã§ã³ããããšãã§ããŸãã For eachåŠçã®ãã©ã¡ãŒã¿ã«ã¯"Filter array"ã®"Body"ãéžæããŸãã 以äžã§Logic Appsã®èšå®ã¯å®äºã§ãã 5. Microsoft Defender for Cloudã§ã¯ãŒã¯ãããŒã®èªååèšå®ãè¡ã Microsoft Defender for Cloudã§ã¯ãŒã¯ãããŒã®èªååèšå®ãè¡ããŸãã ã¡ãã¥ãŒã§[ã¯ãŒã¯ãããŒã®èªåå]ãéžæãã[ïŒã¯ãŒã¯ãããŒèªååã®è¿œå ]ãæŒäžããŸãã [ã¯ãŒã¯ãããŒã®èªååã®ç·šé]ç»é¢ã衚瀺ããããããããªã¬ãŒã®æ¡ä»¶ãLogic AppsãéžæããŠä¿åããŸãã 6. ã»ãã¥ãªãã£ã¢ã©ãŒããæ³å®ã®ãã£ãã«ã«æçš¿ãããããšã確èªãã æåŸã«ã»ãã¥ãªãã£ã¢ã©ãŒããæ³å®ã®ãã£ãã«ã«æçš¿ãããããšã確èªããŸãã å®éã«ã»ãã¥ãªãã£ã¢ã©ãŒããåºãã®ã¯ãªã¹ã¯ããããããä»åã¯Microsoft Defender for Cloudã®æšæºæ©èœã§ãããµã³ãã«ã¢ã©ãŒããåºããŠãã¹ãããŸãã ãµãã¹ã¯ãªãã·ã§ã³Bã®ãµã³ãã«ã¢ã©ãŒããåºããŠã¿ãŸãã ãµãã¹ã¯ãªãã·ã§ã³Bãã£ãã«ã確èªãããšãç¡äºéç¥ãæçš¿ãããŠããŸããã ãŸãšã ä»åã¯Microsoft Defender for Cloudã®ã»ãã¥ãªãã£ã¢ã©ãŒãããã¡ãŒã«ãŸãã¯Teamsã®ãã£ãã«ã«æçš¿ããæ¹æ³ããŸãšããŸããã ããŒã³ãŒã/ããŒã³ãŒãã§å©çšã§ããLogic Appsã§ãä»ã«ã䟿å©ãªèªååããŒã«ãäœæã§ãããã§ãã ã¿ãªãããæ¯éLogic AppsãšMicrosoft Defender for Cloudãçµã¿åãããŠæŽ»çšããŠã¿ãŠãã ããïŒ ç§ãã¡ã¯äžç·ã«åããŠããã仲éãåéããŠããŸãïŒ é»éç·ç ãã£ãªã¢æ¡çšãµã€ã å·çïŒ @hiraoka.eri2 ã¬ãã¥ãŒïŒ @ozaki.hisanori ïŒ Shodo ã§å·çãããŸãã ïŒ
ã¯ããã« ããã«ã¡ã¯ãã³ãŒãã¬ãŒããšã³ãžãã¢ãªã³ã°éšITãµãŒãã¹ãããã¯ã®é«å¡©ã§ãã2026幎2æã«å
¥ç€Ÿãã瀟å
ã®å
±éã·ã¹ãã ãIdPãSaaSã®ç®¡çãæ¥ã
ã®ãªãã¬ãŒã·ã§ã³èªååãªã©ãæ
åœããŠããŸãã ZOZOã§ã¯å
¥ç€Ÿè
ã®ãã¹ã¿ããŒã¿ãkintoneã§ç®¡çããŠããŸããå
¥ç€Ÿã®ãã³ã«ãActive DirectoryïŒä»¥äžãADïŒãèµ·ç¹ã«Microsoft 365ã»Google Workspaceã»Boxãªã©ã§ã¢ã«ãŠã³ããäœæããå©çšã§ããç¶æ
ãŸã§æŽããŠããŸãããã®äœæ¥ã¯é·ããæäœæ¥ã§éçšããŠããŸããããå·¥æ°ãå±äººåããããŠCSVã®åãæž¡ãã«èª²é¡ãæ±ããŠããŸããã ãªã³ãã¬ADãLDAPãµãŒããŒãé·ãéçšããŠããçµç¹ã§ã¯ããããèªååã®è¶³æ·ã«ãªã£ãŠããã±ãŒã¹ãå°ãªããªããšæããŸããããšãã£ãŠããã¹ãŠãã¯ã©ãŠããžããã«å¯ãããããšãéããŸãããæ¬èšäºã§ã¯ããã®äžé£ã®ã¢ã«ãŠã³ãäœæããkintoneãèµ·ç¹ã«GitHub ActionsïŒself-hosted runnerïŒã§èªååããåãçµã¿ã玹ä»ããŸããéåã«ãããªã³ãã¬ADã®æäœãŸã§GitHub Actionsã«èŒããã³ãŒãã¬ãã¥ãŒã»å®è¡ãã°ã»åçŸæ§ãšãã£ãCI/CDã®å©ç¹ãã¢ã«ãŠã³ãéçšã«æã¡èŸŒã¿ãŸããã ç®æ¬¡ ã¯ããã« ç®æ¬¡ èæ¯ïŒæäœæ¥æä»£ã®ãããŒãšèª²é¡ å
šäœã¢ãŒããã¯ã㣠ãªã³ãã¬ADãGitHub Actionsããæäœãã kintoneããç¿æã®å
¥ç€Ÿäºå®è
ãååŸããæ¥åããžãã¯ã§å€å®ããŠADã«äœæãã åæåŸ
ã¡ãèœåçã«æœ°ããŠå³æåæ ãã AD â Entra IDïŒãã«ã¿åæãèŠæ±ããŠå®äºãŸã§ããŒãªã³ã° Entra ID â SaaSïŒGraph APIã®ãªã³ããã³ãããããžã§ãã³ã° éçšïŒåæ¥ã«dry-runã§äºå®ãæµããç¿æ¥ã«æ¬çªã§äœæãã å°å
¥ã®å¹æ ãŸãšã èæ¯ïŒæäœæ¥æä»£ã®ãããŒãšèª²é¡ èªåååã®ã¢ã«ãŠã³ãäœæã¯ãããããæ¬¡ã®ãããªæµãã§ããã GASã§kintoneããå
¥ç€Ÿè
ã®ã¬ã³ãŒããååŸãã ã¹ãã¬ããã·ãŒãã«è»¢èšãã颿°ã§è¡šç€ºåãã°ã«ãŒããªã©ã®å€ãå å·¥ãã å å·¥ããçµæãCSVã§ãšã¯ã¹ããŒããããªã³ãã¬ãã¹ã®äœæ¥ãµãŒããŒãžæåã§è»¢éãã äœæ¥ãµãŒããŒäžã§è€æ°ã®PowerShellã¹ã¯ãªããã«CSVãèªã¿èŸŒãŸããé æ¬¡å®è¡ããŠã¢ã«ãŠã³ããäœæãã éäžãMicrosoft Entra Connectã®ãã«ã¿åæãæåã§å®è¡ããåSaaSãžã®åæ ãåŸ
ã€ åæ åŸãåSaaSã®åå¥èšå®ããèšå®çšã¹ã¯ãªããã®å®è¡ãæäœæ¥ã§æå
¥ãã äžèŠãããšåã£ãŠããããã«èŠããŸãããéçšãç¶ãããã¡ã«æ¬¡ã®ãããªèª²é¡ãç©ã¿éãªã£ãŠããŸããã æ¥åããžãã¯ãæ£åšããŠãã ïŒèª°ãã»ã©ã®éçšåœ¢æ
ã§ã»ã©ã®ã°ã«ãŒãã«å
¥ãã®ãããã®å€æããžãã¯ãã¹ãã¬ããã·ãŒãã®é¢æ°ãšäœæ¥ãµãŒããŒäžã®ã¹ã¯ãªããã«åæ£ããŠããŸããããã®ããå
šäœåã®ææ¡ãå°é£ã§ããã æäœæ¥ã§ã®CSV転é ïŒã¹ãã¬ããã·ãŒãããCSVããšã¯ã¹ããŒãããäœæ¥ãµãŒããŒãžäººæã§è»¢éããŠããŸããã ãã°ã®èŠèªæ§ãäœã ïŒå®è¡ã¯äœæ¥ãµãŒããŒã®ã³ã³ãœãŒã«ã§è¡ãããããã€ã»èª°ãã»äœãæµããã®ããåŸãã远ãã«ããç¶æ
ã§ããã ã¹ã¯ãªããã®ããªãã ïŒGitãªããžããªäžã®ã¹ã¯ãªãããšãäœæ¥ãµãŒããŒã«çœ®ãããå®éã«åãã¹ã¯ãªãããå°ããã€ä¹é¢ããŠãããããªããžããªã®ã³ãŒãïŒå®éã«åããŠããã³ãŒãããšèšãåããªããªã£ãŠããŸããã ãããããŸãšããŠè§£æ±ºããããã«ããããŒå
šäœãäœãçŽãããšã«ããŸããã å
šäœã¢ãŒããã¯ã㣠æ°ããä»çµã¿ã§ã¯ãããŒã¿ã¯kintoneããçŽæ¥åããå
šå·¥çšãGitHub Actionsããåããããšã«ããŸããã æäœæ¥ã®ãããã倧ããå€ããã®ã¯ã次ã®3ã€ã§ãã CSVã®åãæž¡ãããããkintone APIãçŽæ¥åŒã³åºã ïŒäººã®æã«ãããšã¯ã¹ããŒããšå å·¥ãæé€ããŸããã æ£åšããŠããæ¥åããžãã¯ãã³ãŒãã«éçŽãã ïŒå€æããžãã¯ããã¹ãŠPowerShellã¹ã¯ãªããã«ãŸãšããGitãªããžããªã§ç®¡çããããã«ããŸããã ãªã³ãã¬ADã®æäœã«self-hosted runnerã䜿ã ïŒGitHub Actionsã®ä»çµã¿ã«ä¹ããªããããªã³ãã¬ãã¹ã®ADã³ãã³ãã¬ããããã®ãŸãŸå®è¡ã§ããããã«ããŸããã ã¯ãŒã¯ãããŒã¯ schedule ã«ããcronå®è¡ã§åããŸããkintoneããã¯ããã©ã«ãã§ç¿æã®å
¥ç€Ÿè
ãååŸããã®ã§ãæ¯ææ±ºãŸã£ãæ¥ã«ç¿æåã®äœæäºå®ãSlackãžèªåæçš¿ãããã®ç¿æ¥ã«ãŸãšããŠäœæããããšããéçšã«ããŸããã ããããã¯ãåå°ãšãªãself-hosted runnerãkintoneããã®ã¢ã«ãŠã³ãäœæãã¯ã©ãŠããžã®å³æåæ ããé ã«èŠãŠãããŸãã ãªã³ãã¬ADãGitHub Actionsããæäœãã ãã®ä»çµã¿ã§äžçªé ãæ©ãŸããã®ãããªã³ãã¬ãã¹ã®ADãã©ãèªååã«çµã¿èŸŒããã§ããã ADã¯ãªã³ãã¬ãã¹ã®éãããããã¯ãŒã¯ã®äžã«ãããŸããæäœããã«ã¯ã次ã®3ã€ãå¿
èŠã§ãã ãã¡ã€ã³ã³ã³ãããŒã©ãžéä¿¡ã§ãããããã¯ãŒã¯ïŒãªã³ãã¬å
ïŒã«ããããš ãªã¢ãŒã ãµãŒããŒç®¡çããŒã«ïŒ RSAT ïŒã® ActiveDirectory ã¢ãžã¥ãŒã«ãå
¥ã£ãå®è¡ç°å¢ 察象OUã§ãŠãŒã¶ãŒäœæãšã°ã«ãŒã远å ãã§ãããã¡ã€ã³æš©é æåã«æ€èšããã®ã¯ããã®åŠçãèªåã§ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãããEntra ID Governanceã®ãããªãããŒãžãæ©èœã«å¯ãã圢ã§ãããããšãã°ãªã³ãã¬ADãžã®ãŠãŒã¶ãŒäœæã¯ã API é§ååã€ã³ããŠã³ã ããããžã§ãã³ã° ã«ä»»ããããŸãã ãã ãä»åã®èŠä»¶ã«ã¯åããŸããã§ãããã¢ã«ãŠã³ãäœæã«ã¯ãªã³ãã¬ADã®ã°ã«ãŒãæäœãå«ãŸããŸããã屿§ããŒã¹ã®åçã°ã«ãŒããæ±ãã®ã¯ã¯ã©ãŠãã®ã°ã«ãŒãã§ããªã³ãã¬ADã®ã°ã«ãŒãã¡ã³ããŒã·ãããŸã§ã¯ç®¡çããŸãããããã¯ãããŒãžãæ©èœã ãã§ã¯å®çŸã§ããŸããã ããã«ãåºãåãã®æ¥åããžãã¯ã¯ãæäœæ¥æä»£ã®PowerShellã¹ã¯ãªãããžããçšåºŠäœã蟌ãŸããŠããŸããããããäžããçµã¿çŽããããæ¢åã®è³ç£ããã®ãŸãŸæµçšãããäºæ
ããããŸãããããã§ä»åã¯ãèªåã§ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ããæ¹éã«ããŸããã èªåã§çµããªããADãæäœããæ¹æ³ã¯ããã€ããããŸããæ€èšããéžæè¢ã®é·æãšçæããæ¬¡ã®è¡šã«ãŸãšããŸããã å®è¡æ¹åŒ é·æ çæã»èŠéãçç± ã¿ã¹ã¯ã¹ã±ãžã¥ãŒã©ïŒã¹ã¯ãªãã 远å ã€ã³ãã©ãäžèŠ æå»èµ·åã®ã¿ã»ã³ãŒãããµãŒããŒã«æ®ãããªããåçºã»ãã°ãSecretsãã¬ãã¥ãŒã匱ã èªåã§APIã建ãŠã ãªã³ããã³ãå®è¡ã»èªç±åºŠãé«ã çä¿¡ããŒãã®éæŸãå¿
èŠã»èªèšŒãå¯çšæ§ãç£èŠãèªåéçš Azure AutomationïŒHybrid Runbook WorkerïŒ Power Automate/Microsoft Formsããèµ·åããããã»Azure/M365äžå¿ã®çµç¹ã«éŠŽæã Gitã®PR/CIãšäžäœåãã«ããã»å¥åºç€ã®åŠç¿/éçšã³ã¹ã self-hosted runnerïŒæ¡çšïŒ æ¢åã®GitHubã»PRã»CIã«ãã®ãŸãŸä¹ãã»ãã§ãã¯ã¢ãŠãã§ããªãããªãã»æå/宿ã®äž¡å¯Ÿå¿ runnerã®ä¿å®ãå¿
èŠã»ä¿¡é Œã§ããã³ãŒãã®ã¿å®è¡ããé
æ
®ãèŠã èªåAPI以å€ã®3æ¹åŒã¯ããªã³ãã¬ããã®ã¢ãŠãããŠã³ãéä¿¡ã ãã§åäœããå€éšã«çä¿¡ããŒããéããå¿
èŠããããŸããã æçµçã« self-hosted runner ãéžã³ãŸãããADãã¡ã€ã³ã«åå ããWindows Serveräžã§runnerãåãããPowerShellãå®è¡ããŠããŸãã ã³ãŒãã»ããªã¬ãŒã»ãã°ããã¹ãŠGitHubåŽãžç§»ãããµãŒããŒäžã§ã¯å®è¡æã«ãã§ãã¯ã¢ãŠããããææ°ã®ã¹ã¯ãªãããåãã ãã§ããèæ¯ã§æããããªããã¯ãããã§èªç¶ã«æ¶ããŸãã ã»ãŒåãä»çµã¿ã¯ãAzureã®Hybrid Runbook Workerã§ãå®çŸã§ããŸããç§ãã¡ã¯GitHubã䜿ã£ãæ¥åãããŒãæ ¹ä»ããŠãããããself-hosted runnerãéžã³ãŸããã ãã ãããã®æ§æã§ã¯åŒ·ãæš©éãæã€runnerèªäœãæ»æå¯Ÿè±¡ã«ãªããŸããrunnerã䟵害ãããªãããšãšãäžäžäŸµå®³ãããŠã被害ãåºããªãããšã®äž¡æ¹ã«æ³šæãæãå¿
èŠããããŸãã runnerã«ä»»æã®ã³ãŒããå®è¡ãããå
¥å£ã¯GitHubãªã®ã§ã次ã®ãããªåºæ¬çãªå¶åŸ¡ãå
¥ããŠããŸãã ãªããžããªãprivateã«ããæš©éã¯å¿
èŠãªã¡ã³ããŒã ãã«éå®ãã ãã°ã€ã³ã¯SSOãå¿
é ãšããMFAã®ç»é²ã矩åã¥ãã mainã¯branch protection ruleã§CODEOWNERã®ã¬ãã¥ãŒæ¿èªãå¿
é ã«ãã èªèšŒã¯ååOIDCïŒWorkload Identity飿ºïŒã䜿ãããããåŸãã·ãŒã¯ã¬ããã䜿ãå ŽåãEnvironmentã·ãŒã¯ã¬ããã«çœ®ããŠmainã®ã¯ãŒã¯ãããŒããã®ã¿åç
§ã§ããããã«ãã self-hosted runnerã®ãµãŒãã¹ãåããã¢ã«ãŠã³ãã«éå°ãªæš©éãäžããªãããšãéèŠã§ããrunnerã¯ãªã³ãã¬ADããã¯ã©ãŠããŸã§è§Šãã匷ãå®è¡äž»äœãªã®ã§ãäžäžäŸµå®³ããããšãã®åœ±é¿ç¯å²ãæãããããã¢ã¯ã»ã¹ã§ããOUãçµããªã©ãå¿
èŠæäœéã®æš©éã ããäžããŠããŸãã kintoneããç¿æã®å
¥ç€Ÿäºå®è
ãååŸããæ¥åããžãã¯ã§å€å®ããŠADã«äœæãã åå°ãã§ããããæ¬¡ã¯ã¢ã«ãŠã³ããäœãåŠçã§ãã ãŸãååŸã§ããkintoneã® Cursor API ã䜿ããã¯ãšãªã§å¯Ÿè±¡è
ãçµã蟌ã¿ãŸããæ¡ä»¶ã¯3ã€ã§ãå
¥ç€Ÿæã»å
¥ç€ŸåºåïŒäžéãæ°åãªã©ïŒã»éçšåœ¢æ
ïŒç€Ÿå¡ãã¢ã«ãã€ããªã©ïŒã§ãã察象æã¯ã宿å®è¡ã§ã¯ NEXT_MONTH() ã§ç¿æåãèªåçã«å¯Ÿè±¡ã«ããŸãã # å
¥ç€Ÿåºåã»éçšåœ¢æ
ã»å
¥ç€Ÿæã§å¯Ÿè±¡è
ãçµã蟌ã $categoryFilter = 'Category in ("äžé", "æ°å", "瀟å¡ç»çš", ...)' $contractFilter = 'Contract in ("瀟å¡", "åºå", "CSã¢ã«ãã€ã", ...)' $query = " $categoryFilter and $contractFilter and Date = NEXT_MONTH() order by Date desc" # ã«ãŒãœã«ãäœæããã¬ã³ãŒããååŸãåããŸã§ç¹°ãè¿ã $cursorId = ( Invoke-RestMethod -Uri $cursorEndpoint -Method Post -Headers $headers -Body $utf8Body ).id $nextCursorId = $cursorId while ( $nextCursorId ) { $res = Invoke-RestMethod -Uri " $cursorEndpoint `? id= $nextCursorId " -Method Get -Headers $getHeaders $allRecords += $res .records $nextCursorId = $res .next } CSVã®ãšã¯ã¹ããŒããšæå転éããªããªãããã©ããªæ¡ä»¶ã§å¯Ÿè±¡è
ãæœåºããŠãããããã¯ãšãªãèŠãã°åããããã«ãªããŸããã ãã ãååŸããããŒã¿ããã®ãŸãŸADã«æµã蟌ããããã§ã¯ãããŸãããéçšåœ¢æ
ãæå±ã«ãã£ãŠãã©ã®OUã«äœããã©ã®ã°ã«ãŒãã«å
¥ããããå€ãããŸãã以åã¯ãã®åºãåããã¹ãã¬ããã·ãŒãã®é¢æ°ã«åãããŠããŸããããä»åã³ãŒãåŽã®åå²ã«ç§»ããŸãããå€å®ããŠããã®ã¯ãããšãã°æ¬¡ã®ãããªå
容ã§ãã éçšåœ¢æ
ã«å¿ãããã¢ã«ãŠã³ãã®é
眮å
OUã®æ±ºå® æå±ã«å¿ãããåçš®ã°ã«ãŒããžã®è¿œå ãã®ä»ã®ãŠãŒã¶ãŒã¢ã«ãŠã³ã屿§ã®èšå® å€å®ãçµãã£ãããself-hosted runnerã®äžã§ ActiveDirectory ã¢ãžã¥ãŒã«ã®ã³ãã³ãã¬ãããå®è¡ããADã«ã¢ã«ãŠã³ããäœæããŸããããšã¯æ¬¡ã«è¿°ã¹ãåæã§ãã¯ã©ãŠãåŽãžåæ ãããŠãããŸãã åæåŸ
ã¡ãèœåçã«æœ°ããŠå³æåæ ãã ADã«ãŠãŒã¶ãŒãäœã£ãã ãã§ã¯ãã¯ã©ãŠãåŽã®ã¢ã«ãŠã³ãã¯ããã«ã¯äœ¿ããŸãããéã«2ã€ã®åæãæãŸãããã§ãã 1ã€ç®ã¯AD â Entra IDã§ãããªã³ãã¬ADã®ãŠãŒã¶ãŒã¯ãMicrosoft Entra ConnectãåæããŠåããŠEntra IDåŽã«çŸããŸãããã®åæã¯éåžžã30åééã®ãµã€ã¯ã«ã§ããèµ°ããŸããã 2ã€ç®ã¯Entra ID â åSaaSã§ããEntra IDããGoogle WorkspaceãBoxãžã¯ããšã³ã¿ãŒãã©ã€ãºã¢ããªã®ããããžã§ãã³ã°ã§é£æºãããŸãããã®èªåããããžã§ãã³ã°ã®ãµã€ã¯ã«ã¯æå€§40ååŸ
ã€ããšããããŸãã æäœæ¥ã®ããã¯ããã®åŸ
ã¡ã人ãããªããŠããŸãããåæãµã€ã¯ã«ãåãã®ãåŸ
ã€ããåŸ
ã¡ãããªããã°ãã«ã¿åæãæåã§å©ããã¯ã©ãŠãã«ã¢ã«ãŠã³ããçŸããã®ã確èªããŠããæ¬¡ã®èšå®ã«é²ãããšããå
·åã§ãã ãšããããããããã®ãŸãŸèªååã«æã¡èŸŒããšåä»ã§ãããADäœæã®å
ã«ã¯ãEntra IDã®ã©ã€ã»ã³ã¹ãã°ã«ãŒãèšå®ãGoogle WorkspaceãBoxãžã®ããããžã§ãã³ã°ããã®åŸã®åSaaSåå¥ã®èšå®ãç¶ããŸããã©ããåã®çµæãåæã«ããåŠçã§ãã宿ãµã€ã¯ã«ä»»ãã ãšå
šéšçµãããŸã§ã«1æéè¿ããããããããŸã ååšããªãã¢ã«ãŠã³ããè§Šã£ãŠç©ºæ¯ãããã¹ããããåºãŠããŸãã ããã§ã2ã€ã®åæãã¯ãŒã¯ãããŒããèªåã§ããªã¬ãŒããå®äºãèŠå±ããŠããæ¬¡ãžé²ãããã«ããŸããã AD â Entra IDïŒãã«ã¿åæãèŠæ±ããŠå®äºãŸã§ããŒãªã³ã° 1ã€ç®ã®åæã¯ãMicrosoft Entra Connectã®åæãµãŒããŒã«å¯ŸããŠãã«ã¿åæãèŠæ±ããå®äºãããŸã§åŸ
ã¡ãŸããrunnerãã Invoke-Command ã§åæãµãŒããŒã«å
¥ãã Start-ADSyncSyncCycle ã§ãã«ã¿åæãéå§ããããšãåæãé²è¡äžã§ãªããªããŸã§ããŒãªã³ã°ããŸãã Invoke-Command -ComputerName $syncServer -ScriptBlock { Import-Module ADSync Start-ADSyncSyncCycle -PolicyType Delta | Out-Null # åæãå®äºãããŸã§åŸ
〠do { Start-Sleep -Seconds 10 $inProgress = ( Get-ADSyncScheduler ).SyncCycleInProgress } while ( $inProgress ) } ããŒãªã³ã°ã§å®äºãåŸ
ã€ã®ã§ãåŸç¶ã®åŠçã«é²ãæç¹ã§ã¯ãæ°å
¥ç€Ÿå¡ãå¿
ãEntra IDåŽã«ååšããŸãã ãã® Invoke-Command ã«ããPowerShell Remotingã¯ãrunnerã䟵害ããããšãã«åæãµãŒããŒãžã®æšªç§»åã®è¶³ãããã«ãªããããŸãããããã§ãåæãµãŒããŒãžæ¥ç¶ã§ããå
ãrunnerã«éå®ããæ¥ç¶ã«äœ¿ãã¢ã«ãŠã³ãã®æš©éãåæã®å®è¡ã«å¿
èŠãªåã ãã«çµã£ãŠããŸãã Entra ID â SaaSïŒGraph APIã®ãªã³ããã³ãããããžã§ãã³ã° 2ã€ç®ã®åæã¯ãEntra IDã®èªåããããžã§ãã³ã°ã®ãµã€ã¯ã«ãåŸ
ãããGraph APIã® provisionOnDemand ã䜿ã£ãŠãŠãŒã¶ãŒåäœã§å³åº§ã«ããããžã§ãã³ã°ãããªã¬ãŒããŸãã ãã®ãªã¯ãšã¹ãã«ã¯ã察象ã¢ããªã®ãµãŒãã¹ããªã³ã·ãã«IDïŒ $spId ïŒã»åæãžã§ãIDïŒ $jobId ïŒã»åæã«ãŒã«IDïŒ $ruleId ïŒã®3ã€ãå¿
èŠã§ãããã ããã¡ãã§çšæããã®ã¯1ã€ç®ã ãã§ãã $spId ã¯ãšã³ã¿ãŒãã©ã€ãºã¢ããªã®ããªããžã§ã¯ãIDãã§ãEntra管çã»ã³ã¿ãŒã®ã¢ããªã®ããããã£ç»é¢ã«è¡šç€ºãããŸãã æ®ãã® $jobId ãš $ruleId ã¯ãå®è¡æã« $spId ããGraphã§ååŸããŸãããŠãŒã¶ãŒã®åæã«ãŒã«ã¯ã¢ããªããšã«1ã€ãããªãã®ã§ãåæãžã§ãã®ã¹ããŒããèŠãã°ãããããã®ãŸãŸäœ¿ãã«ãŒã«ã§ããIDãæã§ç®¡çããå¿
èŠã¯ãããŸããã # $spId ããåæãžã§ããååŸïŒQuarantine以å€ãåªå
ïŒ $jobs = Invoke-MgGraphRequest -Method GET ` -Uri "https://graph.microsoft.com/v1.0/servicePrincipals/ $spId /synchronization/jobs" $jobId = ( $jobs .value | Where-Object { $_ .status.code -ne "Quarantine" } | Select-Object -First 1 ).id # ãžã§ãã®ã¹ããŒãããããŠãŒã¶ãŒã察象ã®åæã«ãŒã«ãéžã¶ $schema = Invoke-MgGraphRequest -Method GET ` -Uri "https://graph.microsoft.com/v1.0/servicePrincipals/ $spId /synchronization/jobs/ $jobId /schema" $ruleId = ( $schema .synchronizationRules | Where-Object { $_ .objectMappings.sourceObjectName -contains "User" } | Select-Object -First 1 ).id ããšã¯ãååŸãã $jobId ãš $ruleId ããããŠããããžã§ãã³ã°å¯Ÿè±¡ã®ãŠãŒã¶ãŒãæå®ããŠãªã¯ãšã¹ããæããŸãã $body = @{ parameters = @( @{ ruleId = $ruleId subjects = @(@{ objectId = $userObjectId ; objectTypeName = "User" }) } ) } Invoke-MgGraphRequest -Method POST ` -Uri "https://graph.microsoft.com/v1.0/servicePrincipals/ $spId /synchronization/jobs/ $jobId /provisionOnDemand" ` -Body ( $body | ConvertTo-Json -Depth 10 ) ` -ContentType "application/json" ãã®2ã€ã§åæåŸ
ã¡ã朰ããšãADäœæã»åSaaSãžã®ããããžã§ãã³ã°ã»ãã®åŸã®SaaSããšã®èšå®ãŸã§ãäžæ¬ã«ã€ãªãããŸããããããžã§ãã³ã°ã®ãµã€ã¯ã«ãåŸ
ããã«æžãã®ã§ãåŸç¶ã®èšå®ãåãå®è¡ã®äžã§æµã蟌ããŸããçµãã£ãæç¹ã§ãçµæãSlackãšãžã§ããã°ã«æ®ããŸãã éçšïŒåæ¥ã«dry-runã§äºå®ãæµããç¿æ¥ã«æ¬çªã§äœæãã æ¯æã®äœæã¯ãdry-runãšæ¬çªã®2段éã§åããŠããŸãã 忥ã«èµ°ãã®ã¯dry-runã§ããADäœæãããããžã§ãã³ã°ãšãã£ã倿Žã¯å®éã«ã¯è¡ããããäœãããããïŒç¿æå
¥ç€Ÿè
ã®äœæäºå®ïŒãSlackã«æµããŸããããŒã ã¯ãã®éç¥ã§å¯Ÿè±¡è
ã確èªã§ããã®ã§ãkintoneã®ããŒã¿ã«äžåããã£ãŠããæ¬çªã®åã«æ°ã¥ããŸãã ç¿æ¥ã«æ¬çªãèµ°ããŸããåŠçã®éå§ããåã¹ããããå®äºãŸã§ã1æ¬ã®Slackã¹ã¬ããã«æµããå®äºãµããªãŒãšã倱æãããšãã®ãšã©ãŒã ãã¯ãã£ã³ãã«ã«ããããŒããã£ã¹ãããŠæ°ã¥ããããã«ããŠããŸããäœæ¥ãµãŒããŒã®ã³ã³ãœãŒã«ãèŠããªããŠããSlackãšGitHub Actionsã®ãã°ã ãã§å®è¡ç¶æ³ã远ããŸããæäœæ¥æä»£ã«å°ã£ãŠããããã°ã®èŠèªæ§ã®äœããã¯ãããã§è§£æ¶ããŸããã ãã1ã€å¹ããŠããã®ãåªçæ§ã§ããã¢ã«ãŠã³ãäœæã¯æ¢åãŠãŒã¶ãŒãã¹ãããããã°ã«ãŒã远å ãããã§ã«ã¡ã³ããŒããç¡èŠããŸããéäžã®ã¹ãããã倱æããŠããçŽããŠåãã¯ãŒã¯ãããŒãæµãçŽãã°ãã§ããŠãããšããã¯ãã®ãŸãŸãè¶³ããªããšããã ããåãŸããŸãã ãŸããããããžã§ãã³ã°ã®åŸã«åSaaSã§è¡ãåå¥ã®èšå®ã¯ãSaaSåŽã®ç¶æ
ã«ãã£ãŠã¯å€±æããããšããããŸãããããã¯å€±æããŠãå
šäœãæ¢ãããçµæãSlackã«æ®ããŠå
ãžé²ãèšå®ã«ããŠããŸããæ°ã¥ãããããã®éšåã ãåŸã§æµãçŽãã°æžã¿ãŸãã å°å
¥ã®å¹æ äžçªå€§ããã®ã¯ãæ¯æã®æ°å
¥ç€Ÿå¡ã¢ã«ãŠã³ãäœæãã»ãŒç¡äººã§åãããã«ãªã£ãããšã§ãããããŸã§äººãCSVãåãæž¡ããã¹ã¯ãªãããæã§å®è¡ããåæãåŸ
ã£ãŠããäžé£ã®äœæ¥ãã1åã®ã¯ãŒã¯ãããŒå®è¡ã«ãŸãšãŸããŸããã æ¥åããžãã¯ãã³ãŒãã«éãŸãããã©ã®æ¡ä»¶ã§äœãä»äžãããããããªããžããªã§è¿œããŸãããªããžããªã®ã³ãŒããšå®éã«åãã³ãŒããäžèŽããã®ã§ãããªãããèµ·ããŸããã ãŸãšã æ¬èšäºã§ã¯ãæ°å
¥ç€Ÿå¡ã®ã¢ã«ãŠã³ãäœæããkintoneãèµ·ç¹ã«GitHub Actionsã§èªååããåãçµã¿ã玹ä»ããŸããããªã³ãã¬ADã®æäœã¯self-hosted runnerã§æ
ããæ£ãã°ã£ãŠããæ¥åããžãã¯ã¯ã³ãŒãã«ãŸãšããåæåŸ
ã¡ã¯Graph APIã®ãªã³ããã³ãããããžã§ãã³ã°ã§æœ°ããŸãããæäœæ¥ã§å±äººåããŠããéçšããã³ãŒãåããŠå®è¡ã远ãã圢ã«ã§ããŸããã ãªã³ãã¬ãã¹ãšã¯ã©ãŠããæ··åšããç°å¢ã§ã¢ã«ãŠã³ãéçšãèªååãããæ¹ã®åèã«ãªãã°å¹žãã§ããä»åŸã¯ãéè·æã®ã¢ã«ãŠã³ãç¡å¹åãªã©ãå
¥ç€Ÿããéè·ãŸã§ã®ã©ã€ããµã€ã¯ã«å
šäœãžèªååãåºããŠããäºå®ã§ãã ZOZOã§ã¯ãäžç·ã«ãµãŒãã¹ãäœãäžããŠãããæ¹ãåéäžã§ãããèå³ã®ããæ¹ã¯ã以äžã®ãªã³ã¯ãããã²ãå¿åãã ããã corp.zozo.com
 Linuxåå¿è
ãAzureä»®æ³ãã·ã³ã§HTTPãµãŒããŒãæ§ç¯ãã話 --> ããã«ã¡ã¯ïŒæ°åã§ãµã€ãªã¹ãã¯ãããžãŒã«å
¥ç€ŸããããŸãŸããã§ãã æ¬èšäºã§ã¯ãLinuxåå¿è
ãç ä¿®ã§åŸãåŠã³ã以äžã®æ§æã§ã玹ä»ããŸããLinuxã¯ITãã¹ããŒããªã©ã®è³æ Œå匷ã§å°ãç¥ã£ãŠããçšåºŠã ã£ãã®ã§ããããã®åºŠæ°åç ä¿®ã®äžç°ãšããŠLinuxä»®æ³ç°å¢ã§ã®ãµãŒãæ§ç¯ãè¡ããŸããã ããããLinuxãåŠã¶æ¹ã®åèã«ãªãã°å¹žãã§ãã Linuxã«ã€ã㊠Linuxãšã¯ Linuxã¯WindowsãMacã®ãããªOSïŒOperating SystemïŒã®äžçš®ã§ããOSSïŒOpen Source SoftwareïŒãšããŠå
¬éãããŠãããããäžçäžã®éçºè
ãèªç±ã«ããã°ã©ã ã®äžèº«ã確èªãããã«ã¹ã¿ãã€ãºã§ããŸãã å³å¯ã«ããã°ããLinuxããšã¯OSã®æ žå¿ã§ãããã«ãŒãã«ãã®ããšãæãããã§ãããããå®éã«ã¯ãã«ãŒãã«ã«ç¬èªã®ç®¡çããŒã«ãã¢ããªã±ãŒã·ã§ã³ãçµã¿åããããLinuxãã£ã¹ããªãã¥ãŒã·ã§ã³ãã®ããšãLinuxãšåŒã¶ããšãå€ãããã§ãã æåãªLinuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ã¯ä»¥äžã®ãã®ããããŸãã RedHatç³»ïŒ RHELãAlmaLinux ãªã© Debianç³»ïŒ DebianãUbuntu ãªã© Linuxã®ç¹åŸŽ Linuxã«ã¯ä»¥äžã®ãããªç¹åŸŽããããŸãã åºæ¬çã«æåããŒã¹ã§æäœãã ããŒã¿ããã£ã¬ã¯ããªãšãã¡ã€ã«ã®å
¥ãåæ§é ã§ç®¡çãã ãŠãŒã¶ããšã«æš©éãèšå®ã§ãã ç§ã®å Žåããã®ãããã®ç¹åŸŽãæŽãã®ã«æéãããããŸãããä»ãå®å
šã«çè§£ã§ããŠãããåãããªãã®ã§ãããç§ãªãã®èšèã§ç°¡åã«èª¬æããããšæããŸãã LPI-Japanãšããå£äœãååŠè
åãã« ãLinuxæšæºæç§æžã ãšããè³æãå
¬éããŠããã®ã§ãæ£ç¢ºãªæ
å ±ãç¥ãããæ¹ã¯ãã¡ããåç
§ããŠã¿ãŠãã ããã ïŒïŒåºæ¬çã«æåããŒã¹ã§æäœãã Linuxã§ã¯ãããŒããŒãã§åœä»€ïŒã³ãã³ãïŒãå
¥åããCUIïŒCharacter User InterfaceïŒã§ã®æäœãåºæ¬ã§ãã Linuxã®ã³ãã³ãã¯åºæ¬çã«ãã³ãã³ããããªãã·ã§ã³ããåŒæ°ãã§æ§æãããŸãã åãæäœã§ãããã£ã¹ããªãã¥ãŒã·ã§ã³ã«ãã£ãŠã¯å¥ã®ã³ãã³ãããªãã·ã§ã³ãååšããå Žåããããããæ³šæãå¿
èŠã§ãã ïŒïŒããŒã¿ããã£ã¬ã¯ããªãšãã¡ã€ã«ã®å
¥ãåæ§é ã§ç®¡çãã Linuxã§ã¯ãããŒã¿ã¯ãã£ã¬ã¯ããªãšãã¡ã€ã«ã®å
¥ãåæ§é ã§ç®¡çãããŸãã ãã£ã¬ã¯ããªã¯ãã©ã«ãã®ãããªãã®ã§ããã¡ã€ã«ãæŽçããããã®å
¥ãç©ã§ãããã£ã¬ã¯ããªã®äžã«ããã«ãã£ã¬ã¯ããªãäœãããšãã§ãããããå
¥ãåæ§é ãšåŒã³ãŸãã ãã¡ã€ã«ãæäœããæã«ã¯ããã¡ã€ã«ã®äœæïŒãã¹ïŒãæå®ããå¿
èŠããããŸãããã¹ã«ã¯ãæäžäœïŒ/ã«ãŒããã£ã¬ã¯ããªïŒããã®çµ¶å¯Ÿãã¹ãšãçŸåšã®ãã£ã¬ã¯ããªããã®çžå¯Ÿãã¹ããããŸãã 絶察ãã¹ïŒ /home/username/newdir/file1.txt çžå¯Ÿãã¹ïŒ(çŸåšã®äœçœ®ã/home/usernameã®å Žå) newdir/file1.txt ïŒïŒãŠãŒã¶ããšã«æš©éãèšå®ã§ãã Linuxã«ã¯ããŠãŒã¶ããšããæŠå¿µããããŸãããŠãŒã¶ã«ã¯ã人ããã°ã€ã³ããŠæäœãè¡ãããã®ãã®ã®ä»ã«ã人ããã°ã€ã³ã§ããå
éšã§ããã°ã©ã ãåããããã®ãã®ããããŸãã Linuxã§ã¯ããŠãŒã¶ããšã«æš©éãèšå®ã§ããŸããæš©éã«ã¯ãèªã¿åãïŒrïŒãæžã蟌ã¿ïŒwïŒãå®è¡ïŒxïŒã®3çš®é¡ããããŸãã äŸãã°ããã¡ã€ã«ã«äœãæžã蟌ã¿ãããšæã£ãŠããèªèº«ãæäœãããŠãŒã¶ã«ãã®æš©éããªããã°æžã蟌ãããšã¯ã§ããŸããã æš©éãèšå®ããã³ãã³ãããããããå¿
èŠã«å¿ããŠå²ãåœãŠãã倿Žããå¿
èŠããããŸãã æ¬ç« ã®å
容ã¯ä»¥äžã§ãã æ¬¡ç« ã§ã¯ãå®éã«Linuxä»®æ³ç°å¢ãçšæããŠãµãŒãæ§ç¯ãè¡ã£ãæé ãã玹ä»ããŸãã Linuxä»®æ³ç°å¢ã§ã®ãµãŒãæ§ç¯ ä»®æ³ãã·ã³(AzureVM)ã®çšæ Linuxã¯ãã³ã³ãã¥ãŒã¿ïŒããŒããŠã§ã¢ïŒã®æ©èœã管çãããã»ã¹ãšã®ä»²ç«ã¡ãè¡ãã«ãŒãã«ãšãã«ãŒãã«ã«äººéã®åºããåœä»€ïŒã³ãã³ãïŒã翻蚳ãäŒããã·ã§ã«ã§æ§æãããŠããŸãã å®éã«LinuxãåãããŠåŠã¶ã«ã¯ãã³ãã³ããåºã察象ãšãªãã³ã³ãã¥ãŒã¿ãå¿
èŠã§ãã ãããç§ãçŸåšäœ¿ã£ãŠããã³ã³ãã¥ãŒã¿ã¯Windowsãšããå¥ã®ã·ã¹ãã ã管çããŠãããããLinuxã®ã³ãã³ããæžããŠãéããŸããã ãã®ããä»åã¯ä»®æ³åãããã³ã³ãã¥ãŒã¿ã§ãããAzure VMïŒVirtual MachinesïŒããšããã¯ã©ãŠããµãŒãã¹ãå©çšããŠä»®æ³ç°å¢ãæ§ç¯ããŸããã ä»®æ³ãã·ã³OSã«ã¯ããRed Hat Enterprise Linux (RHEL) 9.4ããéžæããŸããã Windowsç°å¢ãç¶æãããŸãŸLinuxãå®éã«æäœããæ¹æ³ã¯ä»ã«ãããããããã®ã§ããèªèº«ã®ããœã³ã³ããã®ä»æ¡ä»¶ã«å¿ããŠéžæããããšãããããããŸãã ä»®æ³ãã·ã³ã«SSHæ¥ç¶ ä»®æ³ãã·ã³ãäœæããããæ¬¡ã¯ããã«æ¥ç¶ããå¿
èŠããããŸãã ä»åã¯SSHãšããéä¿¡ãããã³ã«ã䜿ã£ãŠæ¥ç¶ããŸããã SSHã¯æå·åãããéä¿¡ãè¡ãããã®ãããã³ã«ã§ãä»åã®ããã«ã³ã³ãã¥ãŒã¿ãæå
ã«ãªãïŒãªã¢ãŒãïŒå Žåã§ãå®å
šã«æ¥ç¶ããããšãã§ããŸãã SSHæ¥ç¶ã®æé ã¯ä»¥äžã®éãã§ãã ä»®æ³ãã·ã³äœææã«çæãããç§å¯éµãèªåã®ããœã³ã³ã«ä¿åãã ã¿ãŒããã«ïŒã³ãã³ãããã³ããïŒãéãã以äžã®ã³ãã³ããå®è¡ããŠæ¥ç¶ãã ssh -i ç§å¯éµã®ãã¹ ãŠãŒã¶ãŒå@IPã¢ãã¬ã¹ ååæ¥ç¶æã«ã¯ããã¹ãããŒã®ç¢ºèªãæ±ããããã®ã§ãyesããšå
¥å HTTPéä¿¡ã«å¿
èŠãªãã®ã®ã€ã³ã¹ããŒã«ãšèšå® äœæããä»®æ³ãã·ã³ã«ã¯æäœéã®æ©èœãããªããããç®çã«å¿ããŠå¿
èŠãªéšåãèšå®ã远å ããå¿
èŠããããŸãã ä»åã¯ãWebãã©ãŠã¶ã«ã¢ãã¬ã¹ãå
¥åãããšWebããŒãžã衚瀺ãããããã«ãããã£ãã®ã§ãApacheãšãããã®ãã€ã³ã¹ããŒã«ããŸããã ïŒïŒAzure Portalã§åä¿¡ããŒãèŠåã®å€æŽ èªèšŒã®ããåä¿¡ããŒã22çªïŒSSHïŒãèš±å¯ãã ãœãŒã¹ã¯å®å
šã®ããèªåã®IPã¢ãã¬ã¹ã«éå®ãã ïŒïŒä»®æ³ãã·ã³äžã§Apacheã®ã€ã³ã¹ããŒã« sudo dnf install httpd ïŒïŒApacheã®èµ·åãšèªåèµ·åèšå® ã»ãµãŒãã¹ã®èµ·å sudo systemctl start httpd ã»èªåèµ·åã®æå¹å sudo systemctl enable httpd ïŒïŒRHELã®å
éšãã¡ã€ã¢ãŠã©ãŒã«ã§HTTPãã©ãã£ãã¯ã®èš±å¯ ã»HTTPã®èš±å¯ sudo firewall-cmd --add-service=http --permanent ã»èšå®ã®åæ sudo firewall-cmd --reload ïŒïŒAzure Portalã§åä¿¡ããŒãèŠåã®å€æŽ WebããŒãžãé²èЧããããåä¿¡ããŒã80çªïŒHTTPïŒãèš±å¯ãã ãœãŒã¹ã¯èªåã®IPã¢ãã¬ã¹ã«éå®ãã 衚瀺ããã³ã³ãã³ãã®äœæ Apacheã®ããã©ã«ãèšå®ã§ã¯ãã/var/www/htmlããã£ã¬ã¯ããªã«HTMLãã¡ã€ã«ã眮ãããšã§ãWebããŒãžãšããŠè¡šç€ºãããã³ã³ãã³ããäœæã§ããŸãã ä»åã¯ã以äžã®ã³ãã³ãã§ãindex.htmlããäœæããŸããã sudo vi /var/www/html/index.html Linuxã§ãã¡ã€ã«ãç·šéããã«ã¯ãviãšãã£ã¿ãªã©ã®ããã¹ããšãã£ã¿ã䜿çšããŸãã viãšãã£ã¿ã«ã¯å®éã«äžèº«ãç·šéããã€ã³ãµãŒãã¢ãŒããšããã¡ã€ã«ã®ä¿åãçµäºãªã©ã®æäœãè¡ãã³ãã³ãã¢ãŒãããããŸãã æ
£ããªããã¡ã¯æäœãé£ãããäœåºŠããããã¯ã«ãªããŸããã WebããŒãžã®è¡šç€ºç¢ºèª Webãã©ãŠã¶ã«ä»®æ³ãã·ã³ã®IPã¢ãã¬ã¹ãå
¥åãããšãäœæããWebããŒãžã衚瀺ãããŸãã Azure Portalã®åä¿¡ããŒãèŠåã§ãœãŒã¹ãèªåã®IPã¢ãã¬ã¹ã«éå®ããŠãããããä»ã®IPã¢ãã¬ã¹ããã¯ã¢ã¯ã»ã¹ã§ããŸããã ææ³ãšãŸãšã 以äžãä»åã®ãµãŒãæ§ç¯ã§è¡ã£ãå
容ã§ãããå
šãã®åå¿è
ã®ç§ã«ãšã£ãŠã¯éåžžã«å
å®ããçµéšãšãªããŸããã å®ã¯ãã®åŸãæ§ã
ãªåŠç¿ãç¶ããŠãããçŸåšã¯èªèšŒèªå¯ãšãããã£ãšé«åºŠãªèšå®ã«ææŠããŠããŸããäœè£ãããã°çŸåšåãçµãã§ããå
容ããŸãšããããšæã£ãŠããããããŸãæ©äŒãããã°ãããããé¡ãããŸãã é·ãã€ããªãæç« ãæåŸãŸã§ãèªã¿ããã ããããããšãããããŸããã ã芧ããã ãããããšãããããŸãïŒ ãã®æçš¿ã¯ã圹ã«ç«ã¡ãŸãããïŒ åœ¹ã«ç«ã£ã 圹ã«ç«ããªãã£ã 1人ããã®æçš¿ã¯åœ¹ã«ç«ã£ããšèšã£ãŠããŸãã The post Linuxåå¿è
ãAzureä»®æ³ãã·ã³ã§HTTPãµãŒããæ§ç¯ãã話 first appeared on SIOS Tech Lab .





















