
CSS
ã€ãã³ã

ãã¬ãžã³
æè¡ããã°
ããã«ã¡ã¯ããœããã¯ãªãšã€ãã§ãšã³ãžãã¢ãããŠããã§ãã 以åã ãã¡ãã®ããã° ã§ãAI Challenge Dayããžåå ããææ³ãæçš¿ãã以æ¥ãä¹
ãã¶ãã®æçš¿ã«ãªããŸãïŒ æè¿ã¯ãäž»ã«AIãšãŒãžã§ã³ãåšãã®éçºãæ€èšŒã«åãçµãã§ããŸãã ã¯ããã«
ã¯ããã« ããã«ã¡ã¯ïŒ KINTOéçºéš KINTOã·ã¹ãã éçºG ãã¹ã¿ãŒã¡ã³ããã³ã¹ããŒã«éçºããŒã ãæè¡åºå ±éšå
ŒåãOsaka Tech Lab æå±ã® high-gïŒ @high_g_engineer ïŒã§ããããã³ããšã³ããšã³ãžãã¢ããã£ãŠããŸãã 以åã瀟å
ã§éå¬ããŠããããã³ããšã³ãå匷äŒã«ã€ããŠç޹ä»ããŸããã https://blog.kinto-technologies.com/posts/2025-06-30-frontend-study-group/ ããããå匷äŒã¯ç¶ãã2026幎10æã§ç¬¬91åãè¿ããŸããã ä»åã¯ãã®äžã§ã2026幎8æã9æã«å
š5åã§å®æœãã ãHTMLè§£äœæ°æžãã®èŒªèªäŒ ã«ã€ããŠç޹ä»ããŸãã æ£çŽãªãšãããæžç±ã®èŒªèªäŒã¯ããã³ããšã³ãå匷äŒã§ã¯åäŸããªãããšããããååãæè¡æžã®èŒªèªäŒãšãªããšããéäžã§å€±éããã¡ãããã èªã¿äžããã ãã®äŒã«ãªããã¡ããšããå°è±¡ããããå°ãããŒãã«ãé«ãæããŠããŸããã å®éãç§èªèº«ãåè·ã§åãæ¬ã®èŒªèªäŒãçµéšãããšããå
容ãçè§£ããªããŸãŸèªã¿é²ããã ãã®äŒã«ãªã£ãŠããŸã£ãèŠãæãåºããããŸãã ã§ãããä»åã¯æåŸãŸã§èµ°ãåããããã«ãåå è
å
šå¡ãåã®ããã«è°è«ããå Žã«ãªããŸããã ãã®èšäºã§ã¯ããã®çµç·¯ãšé²ãæ¹ãããŸããã£ãçç±ãªã©ããŸãšããŸãã 顿ã«ããæžç± https://www.borndigital.co.jp/book/25999/ ãHTMLè§£äœæ°æž â仿§ããçŽè§£ãæ¬æ Œå
¥éãã¯ãHTMLã®ä»æ§ïŒHTML StandardïŒãããŒã¹ã«ãåèŠçŽ ã®æå³ãäœ¿ãæ¹ãã¢ã¯ã»ã·ããªãã£ãšã®é¢ä¿ãäžå¯§ã«è§£èª¬ããæžç±ã§ãã ãªãHTMLã®èŒªèªäŒãããããšã«ãªã£ãã®ã ãæ¬¡ã«äœããããããã¿ããªã§è©±ãåã£ã 茪èªäŒãå§ããçŽåãå匷äŒã§ã¯TSKaigi 2026ã®ã»ãã·ã§ã³åç»ãã¿ããªã§èŠèŽããŠããŸããããã ãæè¿ã®ããã³ããšã³ãå匷äŒã¯TypeScriptã®åã®è©±ã«å¯ããã¡ãªå
容ã«ãªã£ãŠããŠãåç»ãèŠãã ãã®äŒãç¶ããŠããããšãããããããå°ãçŸå Žã«å¯ãæ·»ã£ãå匷äŒã«ãããããšèããŠããŸããã ããã§7æã«2åã»ã©æéãåããåå è
ãæå±ããåããŒã ã§å®éã«èµ·ããŠããããã³ããšã³ãã®èª²é¡ããã¢ãªã³ã°ããŸããã ãããšãããŒã ã¯éã£ãŠã次ã®ãããªæ©ã¿ãå
±éããŠæãããŸããã ãã¶ã€ããŒãšã®åæ¥ã®é²ãæ¹ã«èª²é¡ããã UI / UXã«é¢ããç¥èããã£ãšäŒžã°ããã ã¢ã¯ã»ã·ããªãã£ãæçµçã«ã³ãŒããžã©ãèœãšã蟌ãããã©ãåšå²ãå·»ã蟌ãã ããŒã¯ãŒãã¯ãæ
å ±èšèšã è°è«ãéãããã¡ã«èŠããŠããã®ããã æ
å ±èšèš ããšããããŒã¯ãŒãã§ããã å匷äŒã§ç«ãŠã仮説ã¯ããã§ãã æ£ããæ
å ±èšèšãããŠããUI â æ£ããããŒã¯ã¢ãããããŠãã â Webã¢ã¯ã»ã·ããªãã£ãæºãããŠãã ãã¶ã€ããŒãšåæ¥ããããã§ããã¢ã¯ã»ã·ããªãã£ãæºãããã³ã³ãã³ããäœãããã§ããåå°ã«ãªãã®ã¯HTMLã®æ£ããçè§£ã§ãã ãHTMLã®ç¥èã匷åããããšããæ
å ±èšèšã®çè§£ã«ã€ãªãããã²ããŠã¯ããã³ããšã³ãã®å
šããŒã ã«å
±éãã課é¡ã®è§£æ±ºã«ã€ãªãããããããªãããšèãããŸã㯠h1 ã h6 ãæ£ããé åºã§äœ¿ããšããåºç€çãªã¬ãã«ããçè§£ãçŽããããšããçµè«ã«ãªããŸããããã®ææãšããŠãã£ãŠã€ãã ã£ãã®ããHTMLè§£äœæ°æžãã§ãã ãããªãå§ãããæ¬ã玹ä»ããäŒããæãã ãšã¯ããããã®æ¬ã¯å
š352ããŒãžãšãããªããªãã®åãã§ãããããªããæ¥é±ãã茪èªäŒããããŸãããšèšããšãåå ã®ããŒãã«ãäžæ°ã«äžãã£ãŠããŸããŸãã äžæ¹ã§ãã¿ããªã®æºåãæŽã£ããããããã§ã¯ããã€ãŸã§ãå§ãŸããªãå¯èœæ§ãé«ãã§ãã ããã§ããŸã㯠ãã§ã«æ¬ãæã£ãŠããäººã«æåããŠããããã©ããªæ¬ãªã®ãã玹ä»ããäŒ ãäžåºŠæã¿ãŸããã ãã®äŒã§äžèº«ããã©ãã©ãšçºããããšã§ããšããããè²·ã£ãŠäžèªããŠã¿ãŸãããä»Kindleã§è²·ããŸããããšãã声ãåºãŠããã®å Žã§é²ãæ¹ã®ã«ãŒã«ã決ããããšãã§ããŸããã ãŸãããããŒãžã£ãŒã®æ¿èªãããããæ±äº¬ïŒå®€çºïŒãšå€§éªã®ãªãã£ã¹ã«1åãã€äŒç€Ÿã§æžç±ã賌å
¥ã§ããŸããã ãã ããµããéããŠã¿ããšå€ãã®åå è
ãèªåã§è³Œå
¥ããŠããŠããäŒç€Ÿã§è²·ããªããŠããã¿ããªæã£ãŠãããããããªãããšãããããã§ããã 茪èªäŒã®é²ãæ¹ ã«ãŒã« ã«ãŒã«ã¯ã·ã³ãã«ã«ããŸããã åå è
ã¯ã§ããéãäºåã«èªãã§ããïŒ ãã¡ãããèªããªããŠã倧äžå€« ïŒ èª¬ææ
åœã¯æ
åœç®æãäºåã«ç²Ÿèªããåœæ¥ã«èª¬æããïŒ èª¬ææ¹æ³ã¯ããŸãã ïŒ æžç±ã¯äŒç€Ÿè³Œå
¥åã貞ãåºãå¯ïŒå人ã§ã®çšæãOKïŒ ãèªããªããŠã倧äžå€«ããšæèšããŠããããšã§ãæ
åœä»¥å€ã®äººãæ°è»œã«åå ã§ããããã«ããŠããŸãã 1åïŒçŽ1æéïŒã®ã¿ã€ã ããŒãã« æé å
容 10ã30å æ
åœè
ãæ
åœç®æããã£ãã説æ 20ã30å å
šå¡ã§ææ³ãæ°ã«ãªã£ãããšã話ã 3å æ¬¡åã®æ
åœæ±ºãã«ãŒã¬ãã æ¬¡åã®æ
åœã¯ãClaude Artifactsã§äœã£ãã«ãŒã¬ããã§æ±ºããŸãããã¡ãã£ãšããã²ãŒã æèŠããããã誰ã«ãªãããªããšçãäžãããã€ã³ãã§ããããŸããã ç¯å²ã¯ãäž»èŠãªç¯ã ããã«çµã£ã å
šç« ãèªããšé·ææŠã«ãªã£ãŠããŸããããCHAPTER 3ã®èŠçŽ è§£èª¬ãããç¹ã«æ¥åã«é¢ãããæ·±ã5ã€ã®ç¯ã«çµããŸããã å é嬿¥ ç¯å² æ
åœ ç¬¬1å 8/7 ã»ã¯ã·ã§ã³ è±èŒªãã 第2å 8/28 ã°ã«ãŒãã³ã°ã³ã³ãã³ã äžäžãã 第3å 9/4 ããã¹ãã¬ãã«ã»ãã³ãã£ã¯ã¹ éœè€ãã 第4å 9/11 ãã©ãŒã ãã®1 high-g 第5å 9/18 ãã©ãŒã ãã®2 æºå£ãã ãçãç§ã®äŒæã§äœåºŠãã¹ããããæã¿ãŸããããåœåã®èŠèŸŒã¿ã©ãã5åã§å®èµ°ã§ããŸããã ã¢ã¯ã»ã·ããªãã£ã®æèè
ãåå ããŠããã ä»åã®èŒªèªäŒã§å€§ããã£ãã®ãã瀟å
ã®ã¢ã¯ã»ã·ããªãã£ã®æèè
ã§ãã 蟻ãã ã å®è°·ãã ãåå ããŠãããããšã§ãã æ¬ã«æžãããŠããå
容ã«å¯ŸããŠãå®éã®ã¹ã¯ãªãŒã³ãªãŒããŒã§ã¯ããèªã¿äžããããããæã¯ãã䜿ãããŠããããšãã£ãã æ¬ã®äžæ©å
ã®ç¥èŠ ããã®å Žã§è£è¶³ããŠããããããšã§ãè°è«ã®è³ªã倧ããäžãããŸããã ååã®æ§å ååãšããæ
åœè
ãæ¬ã®å
容ããªããã ãã§ãªããç¬èªã®åãå£ã§ããã¹ãããŒã¹ã®ãŸãšããäœã£ãŠããŠãããŸãããããã§ã¯ååã§å°è±¡ã«æ®ã£ããããã¯ãããã€ã玹ä»ããŸãã 第1åïŒã»ã¯ã·ã§ã³ section / article / aside / nav ãšãã£ãã»ã¯ã·ã§ãã³ã°ã³ã³ãã³ããã header / footer ãã©ã³ãããŒã¯ã«ãªãæ¡ä»¶ãªã©ãæ±ããŸããã å°è±¡çã ã£ãã®ã¯ãæžç±ã®åè¡ãšåã2022幎㫠ã¢ãŠãã©ã€ã³ã¢ã«ãŽãªãºã ãHTML Standardããåé€ãããŠãã ããšã§ãã https://github.com/whatwg/html/pull/7829 çŸåšã¯ã section ã§å²ãã§ãèŠåºãã¬ãã«ã¯äžãããã h1 ã h6 ã®æ°åã§æ±ºãŸããŸãã ãŸãããReactã¢ããªã±ãŒã·ã§ã³ã§ã¯ãæçµçã«ã¬ã³ããªã³ã°ãããHTMLå
šäœãç®ã«ããæ©äŒãã»ãšãã©ãããŸãããã»ã¯ã·ã§ã³æ§é ãæ£ããããšãæ¥ã
ã®éçºã§ã©ãæ€èšŒããã°ãããïŒããšãããã³ã³ããŒãã³ãéçºãªãã§ã¯ã®æ©ã¿ã話é¡ã«ãªããŸããã 第2åïŒã°ã«ãŒãã³ã°ã³ã³ãã³ã p ã ul ã ol ã dl ã figure ã main ãªã©ãæ¯æ¥æžããŠããèŠçŽ ããããŒãã§ããããæ
åœã®äžäžããã¯æå³ã®æ·±ã説æããããå人çã«ããããªãã ããšæããéšåãäžå¿ã«ãŸãšããŠãããŸããã ããšãã°ã p ã®äžã« ul ãæžããšãšã©ãŒã«ã¯ãªãããããŒãµãŒãé»ã£ãŠ p ãéããŠããŸããŸãã <!-- æžããã€ããã®HTML --> <p> <ul> <li>é
ç®</li> </ul> </p> <!-- ããŒã¹åŸã®DOM --> <p></p> <ul> <li>é
ç®</li> </ul> <p></p> ãã®çµæã p > ul ãåæã«ããCSSãå¹ããªããªã£ãããæ«å°Ÿã«çãã空㮠p ã§äœçœãå¢ãããããŸããSSRç°å¢ã§ã¯ãµãŒããŒã§çæããHTMLãšã¯ã©ã€ã¢ã³ãã®DOMãé£ãéããhydrationãšã©ãŒã®åå ã«ããªããŸãã ã»ãã«ããæ¬¡ã®ãããªè©±é¡ã§çãäžãããŸããã ol ã®çªå·ã¯DOMã«ååšããªããããã³ããŒïŒããŒã¹ããããšæ¶ãã main 㯠hidden 屿§ãä»ãããã®ãå«ããã°ã1ããŒãžã«è€æ°çœ®ãã hr ã¯ãç·ãã§ã¯ãªããæ®µèœã¬ãã«ã®ããŒãã®åºåããã¹ã¯ãªãŒã³ãªãŒããŒã§ã¯ãåºåãããšèªã¿äžãããã dl ã®èªã¿äžãã¯ãã©ãŠã¶ãšã¹ã¯ãªãŒã³ãªãŒããŒã®çµã¿åããã«ãã£ãŠå·®ãããããã»ãã³ãã£ã¯ã¹ãšããŠæ£ãããªã䜿ã䟡å€ããã ãã®åã§ç¹ã«å°è±¡ã«æ®ã£ãã®ãããã»ãã³ãã£ã¯ã¹ïŒã¹ã¯ãªãŒã³ãªãŒããŒã®ããããšãããã£ããã®çºèšã«å¯Ÿããã蟻ããã®ã²ãšèšã§ãã ãã¹ã¯ãªãŒã³ãªãŒããŒã®ãããã£ãŠã®ã¯ãã¶ãã¡ãã£ãšéããªãã¹ã¯ãªãŒã³ãªãŒããŒã¯HTMLã®ä»æ§ã«åãããŠè§£éããåŽãªã®ã§ã ã¹ã¯ãªãŒã³ãªãŒããŒã§æãã©ããã«èªãŸããããã«ã³ã³ãã³ããæ²ããã®ã§ã¯ãªãã仿§ã«æ²¿ã£ãŠæ£ããããŒã¯ã¢ããããã¹ã¯ãªãŒã³ãªãŒããŒåŽããããæ£ããè§£éãããã¢ã¯ã»ã·ããªãã£ãèããããã§ã®é åºããæ¹ããŠç¢ºèªã§ããŸããã 第3åïŒããã¹ãã¬ãã«ã»ãã³ãã£ã¯ã¹ em ãš strong ã small ã s ã time ã ruby ã bdi ã br ã wbr ãªã©ãæ±ããŸããã æ
åœã®éœè€ããããã¯ãæ®æ®µã¯ãã¬ãŒã ã¯ãŒã¯äžã§ã³ã³ããŒãã³ãåäœã§ããHTMLãæžããªãã®ã§ãèŠçŽ ãã®ãã®ãæèããããšããªãã£ãããšããççŽãªææ³ãããããŸãã«ãã®èŒªèªäŒã®çãã©ããã®æ°ã¥ããå
±æãããŸããã æžç±ã®åè¡åŸã«ä»æ§åŽã§å€ãã£ãç¹ã話é¡ã«ãªããŸãããããšãã°ãæžç±ã®æç¹ã§ã¯å¯Ÿå¿ããARIAããŒã«ããªãã£ãèŠçŽ ã«ããWAI-ARIA 1.2ã§ã¯ããŒã«ãå²ãåœãŠãããŠããŸãã HTMLèŠçŽ WAI-ARIA 1.2ã§ã®ããŒã« em emphasis strong strong del / ins deletion / insertion sub / sup subscript / superscript b / i / small / s / u generic ã»ãã«ãã <p>H<sub>2</sub>O</p> ãVoiceOverã§èªãŸãããšããšã€ãã»ããŒã»ãªãŒãã§ã¯ãªãããšã€ãããªãŒããšèªãŸãããæ¥æ¬èªã«ã¯ã€ã¿ãªãã¯äœã®æåããªãã®ã§ i èŠçŽ ã¯ããŒã¯ã¢ãããšèŠãç®ãäžèŽãã«ããããšãã£ãå®éã«è©ŠããŠã¿ãããããã®è©±ãåºãŸããã ãã£ããã§ã¯ãæäœ¿ã£ãŠããHTMLãšãã£ã¿ã®è©±ããã¬ã©ã±ãŒã§HTMLãæžããŠããæãåºè©±ã§äžä»£ãè¶
ããŠçãäžããäžå¹ããããŸããã 第4åïŒãã©ãŒã ãã®1 ç§ã®æ
åœåã§ãã form ã label ãåçš® input ã® type ãããªããŒã·ã§ã³å±æ§ã autocomplete ãªã©ãæ±ããŸããã ç¹ã«åŒ·èª¿ããã®ã¯ã label ã® for 屿§ã®èœãšã穎ã§ããååšããªã id ãæå®ãããšHTMLãã§ãã«ãŒã§ãšã©ãŒãšããŠæ€åºã§ããŸããã å¥ã®èŠçŽ ã® id ãæå®ããŠããŸã£ãå Žåã¯HTMLãã§ãã«ãŒã§ã¯æ€åºã§ããŸããã ã©ãã«ãã³ããŒïŒããŒã¹ãã㊠for ãçŽãå¿ãããšãã³ããŒããã©ãã«ãŸã§æåã®å
¥åæ¬ã«çŽã¥ããŠããŸãããšãã£ãäºæ
ãèµ·ããåŸãŸãã ããã¯ç®ã§èŠãŠãæ°ã¥ãã«ããäžæ¹ãã¹ã¯ãªãŒã³ãªãŒããŒã§èªã¿äžãããšããã«åããããšãã話ã蟻ãããããããŸããã ãã®ã»ãã«ããæ¬¡ã®ãããªè©±é¡ãåºãŸããã type="hidden" ã¯ãç§å¯ãã«ã¯ãªããªãïŒå€ã¯æ¹ããã§ããïŒ pattern 屿§ã¯ã»ãã¥ãªãã£ã®ããã®ãã®ã§ã¯ãªã placeholder ã¯ã©ãã«ã®ä»£ããã«ãªããªã é»è©±çªå·ãããã€ãã³ãªãããšæ³šéã㊠type="number" ã§åãåãã®ã¯é¿ããã KINTOã®ãµãŒãã¹ã«ã¯ç³èŸŒãã©ãŒã ãå€ãã®ã§ããã®ãŸãŸæ¥åã«çãããå
容ã ã£ããšæããŸãã 第5åïŒãã©ãŒã ãã®2 æçµåã¯æºå£ããã®æ
åœã§ã button ã select ã datalist ã progress / meter ã fieldset / legend ãªã©ãæ±ããŸããã æºå£ããã®åãå£ããšãŠãé¢çœãããä»ã¯ãŒããããã©ãŒã éšåãææžãããããšã¯å°ãªããUIã©ã€ãã©ãªã䜿ãããšãã»ãšãã©ããšããåæã«ç«ã£ãŠã MUIã»Ant Designã»Radix UIãããããã®èŠçŽ ãã©ãå®è£
ããŠããã ããæžç±ã®å
容ãšçªãåãããŠãããŸããã ããšãã°ã¹ã€ããïŒSwitchïŒã³ã³ããŒãã³ãã²ãšã€ãšã£ãŠããå®è£
æ¹éã¯ã©ã€ãã©ãªããšã«ç°ãªããŸãã ã©ã€ãã©ãª Switchã®å®è£
MUI èŠãç®çšã® span ãšãéæãª <input type="checkbox" role="switch"> Ant Design input ã䜿ãã <button type="button" role="switch" aria-checked> Radix UI <button role="switch" aria-checked> ã«å ãããã©ãŒã å
ã§ã®ã¿é衚瀺㮠input ã远å select ãåæ§ã§ããã€ãã£ãã® select ã䜿ããã« role="combobox" ãš role="listbox" ãçµã¿åãããŠåçŸããŠãããããã©ãŒã äºæã®ããã«èŠããªã select ã眮ããŠããããšãåã©ã€ãã©ãªã®å·¥å€«ãèŠããŠããŸããã ãã¢ã¯ã»ã·ãã«ãªè€æ°éžæUIãèªåã§å®è£
ããã®ã¯ããªã倧å€ãªã®ã§ãã©ã€ãã©ãªã䜿ãã®ãããããããšããçµè«ã«ã説åŸåããããŸããã ãŸããã¹ã€ããã¯ãæŒããç¬éã«åæ ããããã®ããªã®ã§ããä¿åããã¿ã³ãšçµã¿åãããããæé¡ïŒå¹Žé¡ã®ãããªäºæã«äœ¿ã£ããããã®ã¯æ¬æ¥ã®çšéãšãããããšããSwitchãšãã°ã«ãã¿ã³ã®äœ¿ãåãã®è©±ãçãäžãããŸããã ãµãããã å
š5åãçµããããšãå匷äŒã®1ååã䜿ã£ãŠãµãããããè¡ããŸããã ãã¬ãŒã ã¯ãŒã¯ã«ã¯ãKPTã§ã¯ãªã Fun / Done / Learn ãæ¡çšããŠããŸããKPTã ãšç¹ã«åé¡ããªããŠãProblemãæããå¿
èŠãããããã¬ãã£ããªç©ºæ°ã«ãªãããããšèããããã§ãã FunïŒæ¥œããã£ãã㚠茪èªäŒã¯è² è·ã®é«ããã©ãŒããããªã®ã«ãæ
åœè
ãçè§£ããããšãç©æ¥µçã«ã·ã§ã¢ããŠããã ãã èªãã§ããã ãã§ãªããæ
åœè
ãç¬èªã®è§£éãç¹ã亀ããŠãããé«åºŠãªå
容ã«ä»äžããŠãããïŒUIã©ã€ãã©ãªã®å¯Ÿå¿ç¶æ³ãªã©ïŒ çºè¡šè
ããšã«æ¬ã®ã©ãã«çç®ããŠããããè³æã«è¡šããŠããŠãä»ã®äººãã©ãæè¡æžãèªãã§ããã®ããç¥ãããšãã§ãã æèè
ã®ã¢ã¯ã»ã·ããªãã£ã®ç¥èŠãèžãŸããŠæ¬ãèªã¿é²ããäœéšãã§ãã çºè¡šåŸã®ãã£ã¹ã«ãã·ã§ã³ã§ãå
šå¡ãåã®ããã«å»ºèšçãªæèŠãåºãå Žã«ãªã£ã 蟻ããããã¯ããããªã³ã¡ã³ããããããŸããã æã®Webå¶äœè
ã¯ãHTMLè§£äœæ°æžã«æžããŠãããããã®ããšã¯æ®æ®µäœ¿ãããŠãããä»ã®æä»£ã¯ãããããç¥èããªããŠããããã¯ããäœããŠããŸããã ããããããã®èŒªèªäŒãéããŠã¿ãªãããç¥ãããšããŠãããŠããããšãããããã£ãã ããã«ããäžã®äžã®ç»å£ã«ã¯ãç»é¢ãèŠãŠããªããšçœ®ããŠãããããã®ãæå€ãšå€ãããã©ãä»åã®ã¿ãªããã®çºè¡šã¯ãç»é¢ãèŠãŠããªããŠã話ãšããŠçè§£ã§ããããšãããããããèšèãããã ããŸããã蟻ããããã®ç¹ã«ã€ããŠæžããèšäºã玹ä»ãããŠããã®ã§ãçºè¡šãããæ¹ã«ã¯ãã²èªãã§ã»ããã§ãã https://note.com/debugon/n/nae7f164bf8a7 DoneïŒããéããããš ããã³ããšã³ãå匷äŒã§æžç±ã茪èªããã¹ã¿ã€ã«ã¯åããŠã ã£ãããç¡äºã«å®èµ°ã§ãã 瀟å
ã«ãHTMLè§£äœæ°æžãã®ååšãåºãããã è€æ°åã«ããã£ãŠ1åã®æè¡æžãèªãããšããã¹ã¿ã€ã«ãå匷äŒãšããŠ1ã€ç¢ºç«ã§ãã äžäººã§èªãã®ãã€ããæ¬ã§ããå匷äŒã«æã¡èŸŒãã§ã¿ããªã§èªãããšããéžæè¢ãã§ããã®ã¯å€§ããªåç©«ã§ãã LearnïŒåŠãã ããš HTMLã®çŸè¡ä»æ§ã¯åžžã«æŽæ°ããç¶ããHTML Standardãªã®ã§ãæžç±ã®å
容ã¯ãã§ã«å€ããªã£ãŠããéšåããããã ãããã æžç±ã¯åã£ããããšããŠäœ¿ããæªãããšæã£ãã仿§ãåŒã ã»ã¯ã·ã§ãã³ã°ã³ã³ãã³ããã°ã«ãŒãã³ã°ã³ã³ãã³ããããã¹ãã¬ãã«ã»ãã³ãã£ã¯ã¹ãšãã£ãHTMLã®åç¹ãæ¹ããŠæãåºãã a èŠçŽ ã®å
容ã¢ãã«ã¯TransparentïŒééçïŒã§ã芪ããããŒã³ã³ãã³ããªã a ã®äžã« div ãªã©ã眮ãããšãã§ãã ã»ãã³ãã£ãã¯ãªHTMLãæžãã°ã¢ã¯ã»ã·ããªãã£ãç¶²çŸ
ã§ããããã§ã¯ãªãã çµå±ãèŠåºããã©ãã«ãé©åã«ä»ããããšããã¢ã¯ã»ã·ããªãã£çã«äžçªéèŠ èŠãç®ã«é Œã£ãŠããããŒã¯ã¢ããããèŠçŽ ã®æå³ããèãçŽããã£ããã«ãªã£ã æ
åœã«ãªã£ã人ã¯èª°ãçºè¡šãé¿ããã1é±éã§1æéåã®è°è«ãã§ããè³æãäœã£ãŠããŠãããã 1åãããã®é©åãªããªã¥ãŒã æ ãã€ããã ããŸããã£ãçç±ããµãããã£ãŠã¿ã ãµããããã®å
容ãèžãŸããŠãä»åã®èŒªèªäŒãããŸããã£ãçç±ãæŽçãããšã次ã®4ã€ã ãšæããŸãã çŸå Žã®èª²é¡ãã顿ãéžãã ããªããšãªãè¯ããããªæ¬ãã§ã¯ãªããåããŒã ãžã®ãã¢ãªã³ã°ã§èŠããå
±é課é¡ïŒæ
å ±èšèšã»ã¢ã¯ã»ã·ããªãã£ïŒããéç®ããŠæ¬ãéžã³ãŸããããã®ãããåå è
ã«ãšã£ãŠãèªåããšãã«ãªããããã£ãã®ã ãšæããŸãã å§ããããŒãã«ã培åºçã«äžãã 玹ä»ããäŒãæãããèªããªããŠã倧äžå€«ããšæèšãããç¯å²ãäž»èŠãªç¯ã«çµããæžç±ãäŒç€Ÿã§çšæããããšãã£ã工倫ã§ãåå ã®å¿ççãªããŒãã«ãäžããŸããã èª¬ææ¹æ³ãæ
åœè
ã«ä»»ãã æ¬ã®å
容ããªããã®ã§ã¯ãªããããããªãã ããšæããç¹ã«çµããUIã©ã€ãã©ãªãšçªãåãããããªã©æ
åœè
ããšã®åãå£ãçãŸããæ¯åéã£ãé¢çœãããããŸããã æèè
ãäžç·ã«èªãã§ããã æžç±ã®å
容ããçŸåšã®ä»æ§ãå®éã®ã¹ã¯ãªãŒã³ãªãŒããŒã®æåãšç
§ããåãããŠè£è¶³ããŠããããããšã§ããèªãã ãã®äŒããããçè§£ããŠè°è«ããäŒãã«ãªããŸããã ãããã« ä»åã®èŒªèªäŒãéããŠãHTMLã®ç¥èãã®ãã®ã¯ãã¡ããããå匷äŒã§1åã®æ¬ãèªã¿åãããšããæ°ããåãæã«å
¥ããããšãã§ããŸããã ãµããããã§ã¯ã次ã®é¡æãšããŠReactã®å
¬åŒããã¥ã¡ã³ãã®ãããªç¡æã§èªãããªãã¡ã¬ã³ã¹ãèªãã®ãè¯ãããããšãã声ããæžç±ã®å
容ãèµ·ç¹ã«ãçŸåšã®HTMLã®ä»æ§ãAIæä»£ã®ããŒã¯ã¢ããã«ã€ããŠããã«è°è«ãæ·±ããå Žãã€ãããªããããšããã¢ã€ãã¢ãåºãŠããŸãã å°äººæ°ã®ãµããããã§ã¯ãããŸãããããã®èŒªèªäŒãä¹ãè¶ããããšã§ãæ°ããããšãã§ããããªå¯èœæ§ãæããŠããŸãã 瀟å
ã§èŒªèªäŒãäŒç»ããããšããŠããæ¹ã®åèã«ãªãã°ããããã§ãã
æ¬ããã°ã¯ 2026 幎 8 æ 28 æ¥ã«å
¬éããã AWS Blog â Extend your data perimeter to the AWS Management Console with Private Access â ã翻蚳ãããã®ã§ãã éèãµãŒãã¹ãæ¿åºãé²è¡ããã«ã¹ã±ã¢ãªã©ã®èŠå¶å¯Ÿè±¡æ¥çã®çµç¹ã¯ãæ©å¯æ§ã®é«ãã¯ãŒã¯ããŒããããããªãã¯ã€ã³ã¿ãŒãããã«ã¢ã¯ã»ã¹ã§ããªãåé¢ããããããã¯ãŒã¯ç°å¢ã«éå®ããŠããŸãããããŸã§ããAWS ãããžã¡ã³ãã³ã³ãœãŒã«ãžã®ã¢ã¯ã»ã¹ãæ¿èªæžã¿ã® AWS ã¢ã«ãŠã³ããšäŒæ¥ãããã¯ãŒã¯ã«å¶éããããšã¯ã§ããŸããããã³ã³ãœãŒã«èªäœã«ã¯ã€ã³ã¿ãŒãããæ¥ç¶ãå¿
èŠã§ããããã®ãããéçšäžã®å©äŸ¿æ§ãšãããã¯ãŒã¯ã»ãã¥ãªãã£çµ±å¶ãçžåããç¶æ³ãçããŠããŸããã ãã®ãã³ãAWS ãããžã¡ã³ãã³ã³ãœãŒã« ãã©ã€ããŒãã¢ã¯ã»ã¹ ããã€ã³ã¿ãŒãããæ¥ç¶ã®ãªãä»®æ³ãã©ã€ããŒãã¯ã©ãŠã (VPC) ã«å¯Ÿå¿ããäžè¬æäŸãéå§ããããšããç¥ããããŸããã¯ãŒã¯ããŒããåé¢ããããããã¯ãŒã¯ç°å¢ã«éå®ããŠããèŠå¶å¯Ÿè±¡æ¥çã®çµç¹ã¯ããµããŒã察象ã®ãµãŒãã¹ã³ã³ãœãŒã«ã®ãã¹ãŠã®ãã©ãã£ãã¯ã AWS PrivateLink ã® VPC ãšã³ããã€ã³ãçµç±ã§ã«ãŒãã£ã³ã°ã§ããããã«ãªããŸããã察象ãšãªããã©ãã£ãã¯ã«ã¯ãèªèšŒãããŒãéçã¢ã»ãã (JavaScriptãCSSãç»å)ãã³ã³ãœãŒã«å°çš APIãAWS ãµãŒãã¹ã® API ã³ãŒã«ãå«ãŸããŸããããã«ãããã€ã³ã¿ãŒãããã²ãŒããŠã§ã€ãNAT ã²ãŒããŠã§ã€ããããªãã¯ã€ã³ã¿ãŒããããžã®ã«ãŒããäžåäžèŠã«ãªããŸãããã®æ©èœã¯ããã¹ãŠã® AWS åçšãªãŒãžã§ã³ ã«ãããŠãäžéšã® ãµããŒã察象ã®ãµãŒãã¹ã³ã³ãœãŒã« ã§å©çšã§ããŸãã AWS 㯠2023 幎㫠AWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ããªãªãŒã¹ããŸããããã®æ©èœã§ã¯ãã³ã³ãœãŒã«ããµã€ã³ã€ã³ããµãŒãã¹ã® API ã³ãŒã«ã VPC ãšã³ããã€ã³ãçµç±ã§ã«ãŒãã£ã³ã°ããŠãã³ã³ãœãŒã«ã«æ¥ç¶ã§ããŸãããã ããã³ã³ãœãŒã«ã«ã¢ã¯ã»ã¹ããéãéçã¢ã»ãããšã³ã³ãœãŒã«å°çš API ã«ã¯ã€ã³ã¿ãŒãããæ¥ç¶ãå¿
èŠã§ããããã®çµæãã»ãã¥ãªãã£ããŒã ã¯ãã³ã³ãœãŒã«ã䜿çšããããã«ã€ã³ã¿ãŒãããæ¥ç¶ãèš±å¯ãããããããã¯ãŒã¯ãåé¢ãããç°å¢ã§äœæ¥ãããªãã¬ãŒã¿ãŒã®ã³ã³ãœãŒã«ã¢ã¯ã»ã¹ãæåŠãããã®éžæãè¿«ãããŠããŸããã ä»åã®ãªãªãŒã¹ã«ãããAWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ã¯ã次㮠2 ã€ã®äžè¬çãªã·ããªãªã«å¯Ÿå¿ããŸãã ã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ãå¶éããããããã¯ãŒã¯ã§ã®ã³ã³ãœãŒã«ãã©ãã£ã㯠: ãµããŒã察象ã®ãµãŒãã¹ã³ã³ãœãŒã«ã®ãã©ãã£ãã¯ãããã¹ãŠ VPC ãšã³ããã€ã³ãçµç±ã§æµããããã«ãªããŸããããããã·ã®èš±å¯ãªã¹ããç¶æããå¿
èŠããTLS ã€ã³ã¿ãŒã»ãããããã·ãéçšããå¿
èŠããããŸããã劥åçãšã㊠CLI ã®ã¿ã®ã¯ãŒã¯ãããŒãåãå
¥ããå¿
èŠããããŸãããåãçµè·¯ã¯ã Amazon WorkSpaces ã Amazon Elastic Compute Cloud (Amazon EC2) ã€ã³ã¹ã¿ã³ã¹ãããã³ AWS Direct Connect ãŸã㯠AWS Site-to-Site VPN ã§æ¥ç¶ããããªã³ãã¬ãã¹ãããã¯ãŒã¯ãããã·ãŒã ã¬ã¹ã«å©çšã§ããŸãããµã€ã³ã€ã³çšã®ãªãœãŒã¹ã³ã³ãããŒã«ããªã·ãŒ (RCP) ãšãµã€ã³ã€ã³ãªãœãŒã¹ããªã·ãŒãçµã¿åããããšãæ³å®ããããããã¯ãŒã¯ããã®ã¿ã³ã³ãœãŒã«èªèšŒãæåããããã«èšå®ã§ããŸããæå¹ãªèªèšŒæ
å ±ãå¥ã®å Žæã§æç€ºãããŠãããã®ã»ãã·ã§ã³ã¯æåŠãããŸãããããŸã§å¶éä»ãã®ãšã°ã¬ã¹ã«ãŒã«ãæåã®ãã¡ã€ã³èš±å¯ãªã¹ãã«é Œã£ãŠããããŒã ããæ¢ã«ä¿¡é ŒããŠããåããããã¯ãŒã¯çµ±å¶ã®ããšã§ãã³ã³ãœãŒã«ã«å
šé¢çã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã ããŒã¿æµåºã®é²æ¢ : ãã©ã€ããŒãã¢ã¯ã»ã¹ã䜿çšãããšãVPC å
ãã AWS ãããžã¡ã³ãã³ã³ãœãŒã«ã䜿çšã§ãã AWS ã¢ã«ãŠã³ããšçµç¹ã®ã¢ã€ãã³ãã£ãã£ãå¶éã§ããŸããããã«ãããå人ã¢ã«ãŠã³ããçµç¹å€ã®ã¢ã«ãŠã³ãããã®ã¢ã¯ã»ã¹ã鲿¢ã§ããŸãã aws:ResourceOrgID æ¡ä»¶ãå«ã VPC ãšã³ããã€ã³ãããªã·ãŒãã¢ã¿ãããããšãã³ã³ãœãŒã«ã§å®è¡ããã¢ã¯ã·ã§ã³ã®å¯Ÿè±¡ãèªåçã«çµç¹å
ã®ãªãœãŒã¹ã«éå®ãããŸããããã«ãµã€ã³ã€ã³ RCP ã«ãã£ãŠãå¢çå
ã®ãããã¯ãŒã¯ããã®èªèšŒã®ã¿ãæåããããã«ãªãã2 ã€ç®ã®é²åŸ¡å±€ãå ãããŸãããããã®çµ±å¶ãçµã¿åãããããšã§ãè€éãªãããã¯ãŒã¯ã¬ã€ã€ãŒã®åé¿çãè¬ããªããŠãããµããŒã察象ã®ãµãŒãã¹ã³ã³ãœãŒã«ã䜿çšããŠå人ã¢ã«ãŠã³ããªã©çµç¹å€ã®ã¢ã«ãŠã³ãã®ãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããããšã鲿¢ã§ããŸãã ãã®èšäºã§ã¯ãã€ã³ã¿ãŒãããæ¥ç¶ã®ãªãç°å¢ã§ AWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ãã©ã®ããã«æ©èœãããã説æããŸãããŸããVPC ãšã³ããã€ã³ãããªã·ãŒãšãµã€ã³ã€ã³ RCP ã䜿çšããŠã¢ã¯ã»ã¹çµ±å¶ãå€å±€åããããŒã¿å¢çã匷åããæ¹æ³ã玹ä»ããŸãã ãœãªã¥ãŒã·ã§ã³ã®æŠèŠ AWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ãšãµã€ã³ã€ã³ RCP ã¯ãAPI ãã©ãã£ãã¯ã«æ¢ã«äœ¿çšããŠãããµãŒãã¹ã³ã³ãããŒã«ããªã·ãŒ (SCP)ãRCPãVPC ãšã³ããã€ã³ãããªã·ãŒãèªç¶ã«æ¡åŒµãããã®ã§ããããã®çµ±å¶ãã³ã³ãœãŒã«ã»ãã·ã§ã³èªäœã«ãé©çšããŸããããã°ã©ã ã«ããã¢ã¯ã»ã¹ãä¿è·ããŠããã¢ã€ãã³ãã£ãã£ããªãœãŒã¹ããããã¯ãŒã¯ã®ããŒã¿å¢çã®çµ±å¶ã«ãã£ãŠãã€ã³ã¿ã©ã¯ãã£ããªãã©ãŠã¶ã»ãã·ã§ã³ãåãããã«ä¿è·ãããŸãã å¢ç çµ±å¶ã®ç®ç ããªã·ãŒã®æ§æèŠçŽ å®è£
æé ã¢ã€ãã³ãã£ãã£ ä¿¡é Œã§ããã¢ã€ãã³ãã£ãã£ã®ã¿ãèªçµç¹ã®ãªãœãŒã¹ã«ã¢ã¯ã»ã¹ã§ãã ãµã€ã³ã€ã³ RCP ãšãªãœãŒã¹ããŒã¹ã®ããªã·ãŒ (RBP) ã³ã³ãœãŒã«ã«ãµã€ã³ã€ã³ã§ããããªã³ã·ãã«ãå¶éããŸããèªèšŒåã¯ã signin:PrincipalArn ãé€å€ã®æå®ã«ã®ã¿äœ¿çšã§ããŸããèªèšŒåŸã¯ãRCP ã§çµç¹ãã¢ã«ãŠã³ãããŸãã¯ããªã³ã·ãã«ã®ã¬ãã«ã§å¶éã ( aws:PrincipalOrgID ã aws:PrincipalAccount ã aws:PrincipalArn )ãRBP ã§ã¢ã«ãŠã³ããŸãã¯ããªã³ã·ãã«ã®ã¬ãã«ã§å¶éããŸãã ã¢ã€ãã³ãã£ã㣠èªçµç¹ã®ãããã¯ãŒã¯ããã¯ä¿¡é Œã§ããã¢ã€ãã³ãã£ãã£ã®ã¿ãèš±å¯ãã ã³ã³ãœãŒã«ã® VPC ãšã³ããã€ã³ãããªã·ãŒãšãµã€ã³ã€ã³ã® VPC ãšã³ããã€ã³ãããªã·ãŒ ã³ã³ãœãŒã«ãšã³ããã€ã³ã: ãµã€ã³ã€ã³æžã¿ã®ã¢ã€ãã³ãã£ãã£ã«å¯Ÿã㊠aws:PrincipalOrgID ãŸã㯠aws:PrincipalAccount ã䜿çšããŸãããµã€ã³ã€ã³ãšã³ããã€ã³ã: èªèšŒå㯠aws:ResourceOrgID ãŸã㯠aws:ResourceAccount ããèªèšŒåŸã¯ããªã³ã·ãã«ããŒãšãªãœãŒã¹ããŒã䜿çšããŸããããã«ãããèªçµç¹ã®ãããã¯ãŒã¯ããå人ã¢ã«ãŠã³ããªã©çµç¹å€ã®ã¢ã«ãŠã³ããžã®ãµã€ã³ã€ã³ããããã¯ããŸãã ãªãœãŒã¹ èªçµç¹ã®ã¢ã€ãã³ãã£ãã£ã¯ä¿¡é Œã§ãããªãœãŒã¹ã«ã®ã¿ã¢ã¯ã»ã¹ã§ãã SCP aws:ResourceOrgID ã䜿çšãããªãœãŒã¹å¢ç SCP ã¯ããã¹ãŠã®ã³ã³ãœãŒã«ã»ãã·ã§ã³ã§ããªã³ã·ãã«ã«é©çšãããŸããã³ã³ãœãŒã«ãããªã³ã·ãã«ã«ä»£ãã£ãŠè¡ãåãµãŒãã¹ API ã³ãŒã«ã¯ã察象ãªãœãŒã¹ãçµç¹å€ã«ããå Žåã«æåŠãããŸãã ãªãœãŒã¹ èªçµç¹ã®ãããã¯ãŒã¯ããã¯ä¿¡é Œã§ãããªãœãŒã¹ã«ã®ã¿ã¢ã¯ã»ã¹ã§ãã ã³ã³ãœãŒã«ã® VPC ãšã³ããã€ã³ãããªã·ãŒãšãµãŒãã¹ã® VPC ãšã³ããã€ã³ãããªã·ãŒ ã³ã³ãœãŒã«ãšã³ããã€ã³ãããªã·ãŒã§ aws:ResourceOrgID ãš aws:ResourceAccount ã䜿çšããŠããããã¯ãŒã¯çµç±ã§ã³ã³ãœãŒã«ãã¢ã¯ã»ã¹ã§ããç¯å²ãéå®ããŸãã ãããã¯ãŒã¯ èªçµç¹ã®ã¢ã€ãã³ãã£ãã£ã¯æ³å®ããããããã¯ãŒã¯ããã®ã¿ãªãœãŒã¹ã«ã¢ã¯ã»ã¹ã§ãã SCP aws:SourceVpc ã䜿çšãããããã¯ãŒã¯å¢ç SCP ã¯ãæ³å®ããããããã¯ãŒã¯ã®å€éšããè¡ãããããªã³ã·ãã«ã®ãµãŒãã¹åŒã³åºããæåŠããŸãããã©ã€ããŒãã¢ã¯ã»ã¹ã§ã¯ãã³ã³ãœãŒã«ããµããŒã察象ã®ãµãŒãã¹ã«ãããã·ãããªã¯ãšã¹ãã® aws:SourceVpc ã«ã¯ããã©ã€ããŒãã¢ã¯ã»ã¹ãšã³ããã€ã³ãããã¹ãããŠãã VPC ãèšå®ãããŸãããã©ãŠã¶ããã®çŽæ¥ãªã¯ãšã¹ãã« VPC ã³ã³ããã¹ããå«ãŸããã®ã¯ããã®ãµãŒãã¹ã«ç¬èªã® VPC ãšã³ããã€ã³ããããå Žåã«éãããŸãããã®ããã䜿çšãããã¹ãŠã®ãµãŒãã¹ã«ãšã³ããã€ã³ããèšå®ããŠãã ãããAWS ãæ¡ä»¶ã«äœ¿çšããããšãæšå¥šããŠããã®ã¯ aws:SourceVpc ã§ãããç¹å®ã® aws:SourceVpce ã®å€ã§ã¯ãããŸããã ãããã¯ãŒã¯ èªçµç¹ã®ãªãœãŒã¹ã«ã¯æ³å®ããããããã¯ãŒã¯ããã®ã¿ã¢ã¯ã»ã¹ã§ãã ãµã€ã³ã€ã³ RBP ãš RCPãããã³ãããã¯ãŒã¯å¢ç RCP ãµã€ã³ã€ã³ããªã·ãŒã¯ãèªèšŒåãšèªèšŒåŸã®äž¡æ¹ã®ã¹ããŒãã¡ã³ãã§ aws:SourceIp ã aws:SourceVpc ã aws:SourceVpce ã aws:VpcSourceIp ã䜿çšããŠãæ³å®å€ã®ãããã¯ãŒã¯ããã®ã³ã³ãœãŒã«èªèšŒãæåŠããŸãããããã¯ãŒã¯å¢ç RCP ã¯ãã¢ã¯ã»ã¹çµè·¯ã«ããããããããŒã¿ãªãœãŒã¹ã«åããããã¯ãŒã¯æ¡ä»¶ãé©çšããŸãã ä»åã®ãªãªãŒã¹ã«ãããã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ã¯ããµããŒã察象ã®ãµãŒãã¹ã³ã³ãœãŒã«ã®ãã©ãŠã¶ãã©ãã£ãã¯ã VPC ãšã³ããã€ã³ãçµç±ã§ã«ãŒãã£ã³ã°ããŸãã察象ãšãªããã©ãã£ãã¯ã¯æ¬¡ã®ãšããã§ãã èªèšŒãã㌠â ãµã€ã³ã€ã³ãèªèšŒæ
å ±ã®äº€æãã»ãã·ã§ã³ããŒã¯ã³ã®ãªã¯ãšã¹ã éçã¢ã»ãã â ã³ã³ãœãŒã« UI ãã¬ã³ããªã³ã°ãã JavaScriptãCSSãç»å ãµãŒãã¹ã³ã³ãœãŒã«ã® API ã³ãŒã« â ãŠãŒã¶ãŒããµãŒãã¹ã³ã³ãœãŒã«ãæäœãããšãã«çºçããããã¯ãšã³ããªã¯ãšã¹ã ãã©ã€ããŒã VPC å
ã®ã¯ãŒã¯ããŒãããã®ãã©ãã£ãã¯ã¯ããããªãã¯ã€ã³ã¿ãŒããããžã®çµè·¯ãäžå䜿çšããã«ã3 ã€ã®ãã©ã€ããŒãã¢ã¯ã»ã¹ãšã³ããã€ã³ããçµç±ããŸãããã®æµãã¯æ¬¡ã®ãšããã§ã (å³ 1 ãåç
§)ã ãªãã¬ãŒã¿ãŒã®ãã©ãŠã¶ã <region>.console.aws.amazon.com ããªã¯ãšã¹ãããŸãã äŒæ¥ã® DNS ãã©ã¯ãŒããŒããVPC å
ã«èšå®ããã Amazon Route 53 Resolver ã€ã³ããŠã³ããšã³ããã€ã³ãã«ã¯ãšãªã転éãããã®ãšã³ããã€ã³ãããã©ãã£ãã¯ãã³ã³ãœãŒã«ã® VPC ãšã³ããã€ã³ãã«è»¢éããŸãã ãã©ãŠã¶ãã©ãã£ãã¯ã¯ããªã³ãã¬ãã¹ãã Direct Connect (ãŸã㯠AWS Site-to-Site VPN ) ãçµç±ã㊠VPC ã«å°éããVPC ãšã³ããã€ã³ãã AWS ãã©ã€ããŒããããã¯ãŒã¯çµç±ã§ãã©ãã£ãã¯ãã³ã³ãœãŒã«ãµãŒãã¹ã«ã«ãŒãã£ã³ã°ããŸãã ã³ã³ãœãŒã«ãµãŒãã¹ã¯ããã©ãŠã¶ã»ãã·ã§ã³ã確ç«ããããã«ããµã€ã³ã€ã³ãšã³ããã€ã³ã <region>.signin.aws.amazon.com ã«ãªãã€ã¬ã¯ãããŸãã DNS ã«ãã£ãŠããµã€ã³ã€ã³ã®ãã¡ã€ã³ããµã€ã³ã€ã³ã® VPC ãšã³ããã€ã³ãã®ãã©ã€ããŒã IP ã¢ãã¬ã¹ã«è§£æ±ºããããã©ãŠã¶ãã©ãã£ãã¯ã¯ AWS ãã©ã€ããŒããããã¯ãŒã¯çµç±ã§ãµã€ã³ã€ã³ãµãŒãã¹ã«éä¿¡ãããŸãã èªèšŒæ
å ±ãå
¥åããããšããµã€ã³ã€ã³ãµãŒãã¹ã¯ RBP ãš RCP ã«å ã㊠VPC ãšã³ããã€ã³ãããªã·ãŒãè©äŸ¡ããã³ã³ãœãŒã«ã«æ»ããããªãã€ã¬ã¯ãããŸãã ã³ã³ãœãŒã«ã¯ VPC ãšã³ããã€ã³ãããªã·ãŒãè©äŸ¡ããã³ã³ãœãŒã« API ã® VPC ãšã³ããã€ã³ãããéçã³ã³ãã³ããèªã¿èŸŒã¿ãŸãããŸããAWS ãµãŒãã¹ API ãåŒã³åºãéã«ãã¢ã€ãã³ãã£ãã£ãšãªãœãŒã¹ã®å¶éãé©çšããŸãã ããã§ããŠãŒã¶ãŒã¯ãã©ã€ããŒãã¢ã¯ã»ã¹çµç±ã§ AWS ãããžã¡ã³ãã³ã³ãœãŒã«ã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã å³ 1: ãããã¯ãŒã¯åé¢ã¢ãŒããã¯ã㣠AWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ããã€ãããå°å
¥ãã ããã§ã¯ã1 ã€ã®çµç¹åäœ (OU) å
ã®åäžã® AWS ãªãŒãžã§ã³ã察象ã«ãAWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ãã»ããã¢ããããæé ã®æŠèŠã説æããŸããæ®µéçã«å±éããããšããå§ãããŸãã远å ã®ãªãŒãžã§ã³ã OU ã«æ¡å€§ããåã«ãåã¹ããããæ€èšŒããŠãã ããã å®å
šãªãœãªã¥ãŒã·ã§ã³ãæ§ç¯ããåã«ããã©ã€ããŒãã¢ã¯ã»ã¹ã®ãããã€ã®ä»çµã¿ãæ€èšŒãããå Žåã¯ã ããã¹ãç°å¢ã§ã®éå§æ¹æ³ãã¬ã€ã ãåç
§ããŠãã ããããã®ã¬ã€ãã§ã¯ãåäžã® VPC ã« 3 ã€ã®ãã©ã€ããŒãã¢ã¯ã»ã¹ãšã³ããã€ã³ããšå¶éã®ç·©ãããªã·ãŒãèšå®ããæå°éã®æ§æããé ã远ã£ãŠèª¬æããŠããŸãããã®èšäºã§åŸè¿°ãããããã€ãšã¯å¥ã«ãå®éã«åäœããç°å¢ã§è©Šãããšãã§ããŸãããŠãŒã¶ãŒãã³ã³ãœãŒã«ã«ã¢ã¯ã»ã¹ããéã«ããµã€ã³ã€ã³ããªã·ãŒã§ãŠãŒã¶ãŒã®ãããã¯ãŒã¯ãã±ãŒã·ã§ã³ãæ€èšŒããæ¹æ³ã«ã€ããŠã¯ã ããªãœãŒã¹ããŒã¹ã®ããªã·ãŒãšãªãœãŒã¹ã³ã³ãããŒã«ããªã·ãŒã«ããã³ã³ãœãŒã«ã¢ã¯ã»ã¹ã®å¶åŸ¡ã ãåç
§ããŠãã ããã åææ¡ä»¶ 次ã®åææ¡ä»¶ãæºãããŠããå¿
èŠããããŸãã AWS Organizations ã®çµç¹ã«æå±ããŠãã AWS ã¢ã«ãŠã³ã ãã¹ããã 6 ã® RCP ã®äŸã§ã¯ã管çã¢ã«ãŠã³ããžã®ã¢ã¯ã»ã¹ãå¿
èŠã§ãã éžæãã AWS ãªãŒãžã§ã³ã«ãã VPCãäŒæ¥ãããã¯ãŒã¯ããã®æ¥ç¶ã¯ä»»æã§ããVPC ãžã®ã¢ã¯ã»ã¹ææ®µãšããŠã¯ã AWS Direct Connect æ¥ç¶ã AWS Site-to-Site VPN ããŸã㯠VPC å
ã§çŽæ¥å®è¡ããã Amazon WorkSpaces ã Amazon EC2 ã®ãã©ãŠãžã³ã°çšã€ã³ã¹ã¿ã³ã¹ãªã©ã®ã¯ãŒã¯ããŒãã䜿çšã§ããŸãã AWS CloudTrail ãåããªãŒãžã§ã³ã§æå¹ã«ãªã£ãŠãããèšé²ããã ConsoleLogin ã€ãã³ãã確èªã§ããããšã AWS PrivateLink ã®ã€ã³ã¿ãŒãã§ã€ã¹ãšã³ããã€ã³ã ãš AWS Identity and Access Management (IAM) ã®ããªã·ãŒè©äŸ¡ ã«é¢ããç¥èã ã¹ããã 1: çŸåšã®ã³ã³ãœãŒã«ã¢ã¯ã»ã¹ã®ããŒã¹ã©ã€ã³ãææ¡ãã 倿Žãå ããåã«ãCloudTrail ã䜿çšããŠããŠãŒã¶ãŒãçŸåšã©ã®ããã«ã³ã³ãœãŒã«ã«ã¢ã¯ã»ã¹ããŠããããææ¡ããŸãã代衚çãªæé (30 æ¥ãæšå¥šããŸã) ã察象㫠eventName = ConsoleLogin ãæ€çŽ¢ãã sourceIPAddress ã vpcEndpointId ã awsRegion ã®åãã£ãŒã«ãã確èªããŸãã ã«ãŒããŠãŒã¶ãŒ ã IAM ãŠãŒã¶ãŒ ãSAML ãã§ãã¬ãŒã·ã§ã³ã AWS IAM Identity Center ã®ãã¡ãã©ã®ã¢ã€ãã³ãã£ãã£ã®çš®é¡ã䜿çšãããŠããããç¹å®ãããã€ãããã宿œãã OU ãŸãã¯ã¢ã«ãŠã³ããæ±ºå®ããŸãã æ³š : ãµã€ã³ã€ã³ããªã·ãŒã®èšå®ã誀ããšããŠãŒã¶ãŒãã³ã³ãœãŒã«ããããã¯ã¢ãŠããããå¯èœæ§ããããŸããæ¬çªã¢ã«ãŠã³ããå
±æã¢ã«ãŠã³ãã§ã®ãã€ãããã¯é¿ããå°çšã®ãã¹ãã¢ã«ãŠã³ãã䜿çšããŠãã ããããŸããã¢ã¯ã»ã¹å¶åŸ¡ã®é©çšãæå¹ã«ããåã«ããã¬ãŒã¯ã°ã©ã¹ (ç·æ¥ã¢ã¯ã»ã¹çš) ããªã³ã·ãã«ãèšå®ããŠãã ãã (ã¹ããã 6 ã§èª¬æããŸã)ã ã¹ããã 2: ãã©ã€ããŒãã¢ã¯ã»ã¹ã® VPC ãšã³ããã€ã³ããäœæãã éžæãããªãŒãžã§ã³ã§ããšã³ããã€ã³ãããã¹ããã VPC ãäœæããããæ¢åã® VPC ãéžæããŸããæ¬¡ã«ããã® VPC ã« 3 ã€ã® ã€ã³ã¿ãŒãã§ã€ã¹ VPC ãšã³ããã€ã³ã ãäœæããŸãã com.amazonaws.<region>.console ã¯ã³ã³ãœãŒã«çšã§ãã com.amazonaws.<region>.signin 㯠AWS ãµã€ã³ã€ã³çšã§ãã com.amazonaws.<region>.console-static ã¯ã³ã³ãœãŒã«å°çš API çšã§ãããã®ãšã³ããã€ã³ãã¯ãVPC ã«ã€ã³ã¿ãŒããããžã®çµè·¯ããªãå Žåã«ã®ã¿å¿
èŠã§ãã ã¹ããã 3: AWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹çšã«ãã©ã€ããŒã DNS ãèšå®ãã AWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ã䜿çšããã«ã¯ããã©ã€ããŒã DNS ãèšå®ããŠãã³ã³ãœãŒã«ãã¡ã€ã³ ( .console.aws.amazon.com ã .signin.aws.amazon.com ãããã³é¢é£ããéçã³ã³ãã³ããã¡ã€ã³) ã VPC å
ã«ããã€ã³ã¿ãŒãã§ã€ã¹ãšã³ããã€ã³ãã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã«è§£æ±ºãããããã«ããå¿
èŠããããŸãã VPC å
ã®ã¯ãŒã¯ããŒãã®å Žå : VPC å
ã®ã¯ãŒã¯ããŒããããã©ã«ãã® Amazon Route 53 Resolver ã䜿çšããŠããå Žåã远å ã® DNS èšå®ã¯å¿
èŠãããŸãããåã€ã³ã¿ãŒãã§ã€ã¹ãšã³ããã€ã³ãã®äœææã«ããã©ã€ããŒã DNS åã®ãªãã·ã§ã³ãæå¹ã«ããŸã (PrivateDnsEnabled = true ã«èšå®)ãããã«ããããããªãã¯ã®ã³ã³ãœãŒã«ãã¡ã€ã³ããVPC å
ã«ãããšã³ããã€ã³ãã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã«èªåçã«è§£æ±ºãããŸããã«ã¹ã¿ã DNS ãªãŸã«ããŒãŸãã¯ãã©ã€ããŒããã¹ããŸãŒã³ã䜿çšããå Žåã¯ãã³ã³ãœãŒã«ãã¡ã€ã³ããšã³ããã€ã³ãã¢ãã¬ã¹ã«ãããã³ã°ããããæç€ºçã«èšå®ããå¿
èŠããããŸãã詳现ã«ã€ããŠã¯ã ããã©ã€ããŒããã¹ããŸãŒã³ã®äœ¿çšã ãåç
§ããŠãã ããããã¡ã€ã³ã®å®å
šãªãªã¹ããš DNS èšå®ã®è©³çŽ°ãªæé ã«ã€ããŠã¯ã AWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ã«å¿
èŠãªãšã³ããã€ã³ãã«é¢ããããã¥ã¡ã³ã ãåç
§ããŠãã ããã VPC å€ã®ã¯ãŒã¯ããŒãã®å Žå : AWS Direct Connect ã AWS Site-to-Site VPN ã§æ¥ç¶ããäŒæ¥ãªãã£ã¹ãªã©ãVPC ã®å€éšãããšã³ããã€ã³ãã«ã¢ã¯ã»ã¹ããã¯ãŒã¯ããŒãã§ã¯ãäŒæ¥ã® DNS ãªãŸã«ããŒããããã®ãã¡ã€ã³ã«å¯ŸããŠãšã³ããã€ã³ãã¢ãã¬ã¹ãè¿ãããã«èšå®ããŠãã ããã詳现ã«ã€ããŠã¯ã ãRoute 53 Resolver ã§ãã«ãã¢ã«ãŠã³ãç°å¢ã® DNS 管çãç°¡çŽ åããã ãåç
§ããŠãã ããã ã¹ããã 4: ãã©ã€ããŒãæ¥ç¶ãæ€èšŒãã VPC å
ã®ã¯ãŒã¯ããŒãããã³ã³ãœãŒã«ã«ãµã€ã³ã€ã³ããŸããã³ã³ãœãŒã«ãéåžžã©ããèªã¿èŸŒãŸããã¯ãã§ãããã©ãã£ãã¯ã VPC ãšã³ããã€ã³ãçµç±ã§ã«ãŒãã£ã³ã°ãããŠããããšã確èªããã«ã¯ãã³ã³ãœãŒã«ã®ããã²ãŒã·ã§ã³ããŒã«éµã¢ã€ã³ã³ã衚瀺ãããŠãããã確èªããŸã (å³ 2 ãåç
§)ã å³ 2: ã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ CloudTrail ã§ãæè¿ã® ConsoleLogin ã€ãã³ãã® vpcEndpointId ãã£ãŒã«ãã«ãããããã®ãšã³ããã€ã³ã ID ãå
¥åãããŠããããšã確èªã§ããŸããæ¬¡ã«ç€ºãã®ã¯ãCloudTrail ã® ConsoleLogin ã€ãã³ãã®ã¹ããããã®äŸã§ã vpcEndpointId ãã£ãŒã«ããå«ãŸããŠããŸãã { "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROA3XFRBF23EXAMPLE:john.doe", "arn": "arn:aws:sts::123456789012:assumed-role/Admin/john.doe", "accountId": "123456789012" }, "eventTime": "2026-07-08T19:15:32Z", "eventSource": "signin.amazonaws.com", "eventName": "ConsoleLogin", "awsRegion": "us-east-1", "sourceIPAddress": "10.0.1.47", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...", "requestParameters": null, "responseElements": { "ConsoleLogin": "Success" }, "additionalEventData": { "LoginTo": "https://console.aws.amazon.com/console/home", "MobileVersion": "No", "MFAUsed": "Yes", "vpcEndpointId": "vpce-0abc123def456789a" }, "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "eventType": "AwsConsoleSignIn", "recipientAccountId": "123456789012" } AWS ãããžã¡ã³ãã³ã³ãœãŒã«ãèªã¿èŸŒãŸããªãå Žåã¯ã次ã®é
ç®ã確èªããŠãã ããã åã€ã³ã¿ãŒãã§ã€ã¹ãšã³ããã€ã³ãã§ãã©ã€ããŒã DNS ãæå¹ã«ãªã£ãŠãã (ãŸãã¯ã«ã¹ã¿ã ãªãŸã«ããŒããšã³ããã€ã³ãã¢ãã¬ã¹ãè¿ã) ãã©ã€ããŒã DNS ãæå¹ã«ãããšãAWS ã¯ããµãŒãã¹ãã¡ã€ã³ (äŸ: console.aws.amazon.com ) ã VPC ãšã³ããã€ã³ãã®ãã©ã€ããŒã IP ã¢ãã¬ã¹ã«è§£æ±ºãã DNS ãšã³ããªãèªåçã«äœæããŸãããã®èšå®ãç¡å¹ã®å Žåããã©ãŠã¶ã¯åŒãç¶ããããªãã¯ã® AWS ãšã³ããã€ã³ãã«ã«ãŒãã£ã³ã°ããããã©ã€ããŒãã¢ã¯ã»ã¹ã®èšå®ãå®å
šã«ãã€ãã¹ãããŸãã åãšã³ããã€ã³ãã§ PrivateDnsEnabled ãæå¹ã«ãªã£ãŠããããšã確èªããŸãã aws ec2 describe-vpc-endpoints \ --filters "Name=vpc-endpoint-type,Values=Interface" \ --query "VpcEndpoints[].{Id:VpcEndpointId,Service:ServiceName,PrivateDns:PrivateDnsEnabled}" \ --output table 次ã«ãVPC å
ããããã¡ã€ã³ããã©ã€ããŒãã¢ãã¬ã¹ã«è§£æ±ºãããããšã確èªããŸãã nslookup console.aws.amazon.com nslookup signin.aws.amazon.com # ãããªã㯠IP ã§ã¯ãªãããã©ã€ããŒã IP (äŸ: 10.x.x.x) ãè¿ãããã¯ãã§ã ãããã®ã¯ãšãªã§ããVPC ã® CIDR ç¯å²å
ã®ãã©ã€ããŒã IP ã¢ãã¬ã¹ãè¿ãããã¯ãã§ããAmazon æäŸã® DNS ã§ã¯ãªãã«ã¹ã¿ã DNS ãªãŸã«ããŒã䜿çšããŠããå Žåã¯ã転éã«ãŒã«ã§ AWS ãã¡ã€ã³ã®ã¯ãšãªã VPC å
ã® Route 53 Resolver ã€ã³ããŠã³ããšã³ããã€ã³ãã«è»¢éããããèšå®ããŠãã ããã ãšã³ããã€ã³ãã®ã»ãã¥ãªãã£ã°ã«ãŒãã§ãã¯ãŒã¯ããŒãã®ãµããããããã® HTTPS (TCP 443) ãèš±å¯ãããŠãã å VPC ãšã³ããã€ã³ãã¯ãµããããå
ã« Elastic Network Interface (ENI) ãäœæãããããã® ENI ã¯ã»ãã¥ãªãã£ã°ã«ãŒãã«ãã£ãŠå¶åŸ¡ãããŸããã»ãã¥ãªãã£ã°ã«ãŒãã§ã¯ãŒã¯ããŒãããã®ã€ã³ããŠã³ã HTTPS ãã©ãã£ãã¯ãèš±å¯ãããŠããªãå Žåãæ¥ç¶ã¯ãšã©ãŒã衚瀺ãããªããŸãŸå€±æããŸãã ãšã³ããã€ã³ãã«ã¢ã¿ãããããŠããã»ãã¥ãªãã£ã°ã«ãŒããç¹å®ããŸãã aws ec2 describe-vpc-endpoints --vpc-endpoint-ids vpce-0abc123def456789a \ --query "VpcEndpoints[].Groups[].GroupId" --output text 次ã«ãåã»ãã¥ãªãã£ã°ã«ãŒãã§ã¯ãŒã¯ããŒãã®ãµããããããã®ã€ã³ããŠã³ã TCP 443 ãèš±å¯ãããŠããããšã確èªããŸãã aws ec2 describe-security-groups --group-ids sg-xxxxxxxx \ --query "SecurityGroups[].IpPermissions[?ToPort==\`443\`]" \ --output json VPC ã®å€éšããã®ãã©ãã£ã㯠(Direct Connect ãŸã㯠Site-to-Site VPN) ã®å ŽåãäŒæ¥ã® DNS ããšã³ããã€ã³ãã® IP ãè¿ããã«ãŒããæ£ããäŒæãããŠãã AWS Direct Connect ãŸã㯠AWS Site-to-Site VPN ã§æ¥ç¶ããããªã³ãã¬ãã¹ã®ã¯ãŒã¯ã¹ããŒã·ã§ã³ããã³ã³ãœãŒã«ã«ã¢ã¯ã»ã¹ããå Žåã¯ãããã« 2 ã€ã®æ¡ä»¶ãæºããå¿
èŠããããŸãã 1 ã€ç®ã«ãäŒæ¥ã® DNS ã AWS ãã¡ã€ã³ã VPC ãšã³ããã€ã³ãã®ãã©ã€ããŒã IP ã«è§£æ±ºããå¿
èŠããããŸãããªã³ãã¬ãã¹ã®ãã·ã³ããæ¬¡ã®ã³ãã³ããå®è¡ããŸãã nslookup console.aws.amazon.com ãããªãã¯ã® AWS IP ãè¿ãããå ŽåãäŒæ¥ã® DNS 㯠Route 53 Resolver çµç±ã§ã¯ãšãªã転éããŠããŸããã aws.amazon.com ãš amazonaws.com ã®ãã¡ã€ã³ã«ã€ããŠãResolver ã€ã³ããŠã³ããšã³ããã€ã³ãã® IP ãžã®æ¡ä»¶ä»ã転éãèšå®ããŠãã ããã 2 ã€ç®ã«ããããã¯ãŒã¯ã«ãŒããæ£ããäŒæãããŠããå¿
èŠããããŸããæ»ãã®ãã©ãã£ãã¯ããªã³ãã¬ãã¹ãããã¯ãŒã¯ã«å°éã§ããããã«ããšã³ããã€ã³ãã®ãµããããã«é¢é£ä»ããããã«ãŒãããŒãã«ã«ãä»®æ³ãã©ã€ããŒãã²ãŒããŠã§ã€ (VGW) ãŸãã¯ãã©ã³ãžããã²ãŒããŠã§ã€ããã®ã«ãŒããäŒæãããŠããããšã確èªããŠãã ãããæ¬¡ã®ã³ãã³ãã§ç¢ºèªã§ããŸãã aws ec2 describe-route-tables \ --filters "Name=association.subnet-id,Values=subnet-xxxxx" \ --query "RouteTables[].PropagatingVgws" ç°¡åãªãšã³ãããŒãšã³ãã®æ€èšŒ : ã¯ãŒã¯ã¹ããŒã·ã§ã³ãã traceroute console.aws.amazon.com ãå®è¡ããçµè·¯ã«ãã©ã€ããŒããããã®ã¿ãå«ãŸãããããªãã¯ã€ã³ã¿ãŒããããçµç±ãããã©ãã£ãã¯ããªãããšã確èªããŸãã ã³ã³ãœãŒã«ã¯èªã¿èŸŒãŸãããéµã¢ã€ã³ã³ã衚瀺ãããªãå Žå ã³ã³ãœãŒã«ã¯èªã¿èŸŒãŸãããã®ã®æ¥ç¶ããã©ã€ããŒãã«ãªã£ãŠããªãå Žå (äŸãã°ãéµã¢ã€ã³ã³ã衚瀺ãããªãå Žå)ããã©ãŠã¶ã¯ VPC ãšã³ããã€ã³ãã§ã¯ãªãããããªãã¯ã€ã³ã¿ãŒãããçµç±ã§ã³ã³ãœãŒã«ã«ã¢ã¯ã»ã¹ããŠããŸãã VPC å
ã®ã¯ãŒã¯ããŒããã nslookup console.aws.amazon.com ãå®è¡ããŸããVPC ã® CIDR ç¯å²å
ã®ãã©ã€ããŒã IP ãè¿ãããã°æ£åžžã§ãããããªã㯠IP ãè¿ãããå Žåã¯ãDNS ããšã³ããã€ã³ãããã€ãã¹ããŠããŸããéåžžã¯ãã€ã³ã¿ãŒãã§ã€ã¹ãšã³ããã€ã³ãã§ãã©ã€ããŒã DNS ãæå¹ã«ãªã£ãŠããªãããšãåå ã§ãããã®å Žåã¯ã PrivateDnsEnabled = true ã«èšå®ããŠãã ããã VPC å€ã®ã¯ãŒã¯ããŒãã®å Žåã¯ãäŒæ¥ã® DNS ãã³ã³ãœãŒã«ãã¡ã€ã³ã®ã¯ãšãªã VPC å
ã«è»¢éããããã«èšå®ããŠãã ãããäŸãã°ã Amazon Route 53 Resolver ã€ã³ããŠã³ããšã³ããã€ã³ã ãçµç±ããŠè»¢éã§ããŸãã ã¹ããã 5: VPC ãšã³ããã€ã³ãããªã·ãŒãé©çšãã ã³ã³ãœãŒã«ãš AWS ãµã€ã³ã€ã³ã®ãšã³ããã€ã³ãã«ãã¢ã¯ã»ã¹ãçµç¹å
ã®ã¢ã€ãã³ãã£ãã£ã«å¶éãããšã³ããã€ã³ãããªã·ãŒãã¢ã¿ããããŸãããªããéçã³ã³ãã³ãã®ãšã³ããã€ã³ãã¯ãšã³ããã€ã³ãããªã·ãŒããµããŒãããŠããŸããã ãŸããå¶éã®ç·©ã Allow * ããªã·ãŒã䜿çšããŠããã©ãã£ãã¯ããšã³ããã€ã³ãçµç±ã§ã«ãŒãã£ã³ã°ãããŠããããšã確èªããŸã (CloudTrail ã®ã³ã³ãœãŒã«ã€ãã³ãã§ vpcEndpointId ãã£ãŒã«ãã«å€ãå
¥åãããŠããã°ç¢ºèªã§ããŸã)ãã«ãŒãã£ã³ã°ã確èªã§ããããVPC ãšã³ããã€ã³ãããªã·ãŒã«å¶éã远å ãããã©ãã£ãã¯ãç£èŠããŸãã åæããªã·ãŒã§ã¯ 2 ã€ã®æ¡ä»¶ããŒã䜿çšããŸãã aws:PrincipalOrgID ã§ã¢ã€ãã³ãã£ãã£ãçµç¹å
ã«å¶éãã aws:ResourceOrgID ã§ã³ã³ãœãŒã«ãã¢ã¯ã»ã¹ã§ãããªãœãŒã¹ãçµç¹ã®ãªãœãŒã¹ã«å¶éããŸãã远å ã®æ¡ä»¶ããŒããªãœãŒã¹å¶éã®ãã¿ãŒã³ãå«ãå®å
šãªãªãã¡ã¬ã³ã¹ã«ã€ããŠã¯ã AWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ã®ãŠãŒã¶ãŒã¬ã€ã ãåç
§ããŠãã ããã ãã€ããã以éã®ããªã·ãŒã«ã€ããŠã¯ã ãAWS ã®ããŒã¿å¢çã ãåç
§ããŠãã ããããŸãã ããŒã¿å¢çããªã·ãŒã®äŸ ãåé²ãã GitHub ãªããžããªã§ã¯ãç°å¢ã«ããŒã¿å¢çãå®è£
ããéã®ãµãŒãã¹åºæã®èæ
®äºé
ã玹ä»ããŠããŸãã ã¹ããã 6: ãµã€ã³ã€ã³ããªã·ãŒãé©çšãã ãµã€ã³ã€ã³ããªã·ãŒã¯ããããã¯ãŒã¯ãŸãã¯ããªã³ã·ãã«ã®æ¡ä»¶ã«äžèŽããªãã³ã³ãœãŒã«èªèšŒãªã¯ãšã¹ããæåŠããŸãããã®ããªã·ãŒã¯ã signin:Authenticate ã察象ãšããèªèšŒåã®ã¹ããŒãã¡ã³ããšã signin:AuthorizeOAuth2Access ããã³ signin:CreateOAuth2Token ã察象ãšããèªèšŒåŸã®ã¹ããŒãã¡ã³ãã§æ§æãããŸããå¿
ãäž¡æ¹ã®ã¹ããŒãã¡ã³ããå«ããŠãã ããã ãã€ãããã§ã¯ãAWS Organizations ã®ç®¡çã¢ã«ãŠã³ããããããªã·ãŒã RCP ãšããŠãããã€ããŸããRCP ãæå¹ã«ãããšçµç¹å
ã®ãã¹ãŠã®ã¢ã«ãŠã³ãã«é©çšããããããæ¬æ Œçã«å±éããåã«ãå°çšã®ãã¹ãçµç¹ã§ãã€ãããã宿œããããšããå§ãããŸããé©çšãæå¹ã«ããã«ã¯ãus-east-1 ãªãŒãžã§ã³ã§çµç¹ã察象㫠signin:PutConsoleAuthorizationConfiguration API ãåŒã³åºããŸã (AWS ãµã€ã³ã€ã³ã¯ããã®ãªãŒãžã§ã³ããããªã·ãŒãã°ããŒãã«ã«ã¬ããªã±ãŒãããŸã)ãã³ã³ãœãŒã«èªå¯ãæå¹ã«ãããŸã§ããªãœãŒã¹ã®ã¢ã¯ã»ã¹èš±å¯ã¹ããŒãã¡ã³ãã¯å¹åãæã¡ãŸããã éèŠ : RCP ãæå¹ã«ããåã«ããã¬ãŒã¯ã°ã©ã¹çšã®çµè·¯ãšããŠãé€å€ããªã³ã·ãã«ãå°ãªããšã 1 ã€èšå®ããŠãã ãããé€å€ããªã³ã·ãã«ã«ã¯ãå°çšã® IAM ããŒã«ã䜿çšããããšããå§ãããŸãã ãããã¯ãŒã¯æ¡ä»¶ãå®çŸ©ããã¢ã¯ã»ã¹èš±å¯ã¹ããŒãã¡ã³ããèšè¿°ããŸãã äŸ â ã¢ã¯ã»ã¹å
ãäŒæ¥ VPC ã«å¶éãã aws signin put-resource-permission-statement \ --source-vpc vpc-0abc123def456789 \ --requested-region us-west-2 \ --excluded-principal "arn:aws:iam::123456789012:user/EmergencyAdmin" \ --region us-east-1 äŸ â ã¢ã¯ã»ã¹å
ãç¹å®ã® IP ç¯å²ã«å¶éãã aws signin put-resource-permission-statement \ --source-ip "IP_ADDRESS" \ --excluded-principal "arn:aws:iam::123456789012:role/BreakGlassRole" \ --region us-east-1 çµç¹ã®ã³ã³ãœãŒã«èªå¯ãæå¹ã«ããŠãããªã·ãŒã®é©çšãéå§ããŸãã aws signin put-console-authorization-configuration \ --target-id <your-target-id> \ --region us-east-1 çŸåšæå¹ã«ãªã£ãŠããçµ±åããªã·ãŒã確èªããŸãã aws signin get-resource-policy --region us-east-1 ããªã·ãŒã®äŸã AWS ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ (AWS CLI) ã®ãªãã¡ã¬ã³ã¹ãããã¯ã¢ãŠãããã®åŸ©æ§æé ã«ã€ããŠã¯ã ãAWS ãããžã¡ã³ãã³ã³ãœãŒã«ãžã®ã¢ã¯ã»ã¹ãæ³å®ãããããã¯ãŒã¯ã«å¶éã ã®ããã°èšäºãš ããªãœãŒã¹ããŒã¹ã®ããªã·ãŒã«ããã³ã³ãœãŒã«ã¢ã¯ã»ã¹ã®å¶åŸ¡ã ã®ããã¥ã¡ã³ããåç
§ããŠãã ããããã®ããã¥ã¡ã³ãã§ã¯ãçµç¹å
šäœã® RCP ã®ä»£ããã«ãåäžã®ã¢ã«ãŠã³ãã«ã¢ã¿ãããã RBP ã䜿çšãããã¢ã«ãŠã³ãåäœã®ä»£æ¿æ¹æ³ã«ã€ããŠã説æããŠããŸãã ã¹ããã 7: ãµãŒãã¹ã® VPC ãšã³ããã€ã³ãã远å ãã ãããŸã§ã§ãã³ã³ãœãŒã«ã·ã§ã«ãèªã¿èŸŒãŸããéµã¢ã€ã³ã³ã衚瀺ããããµã€ã³ã€ã³ããªã·ãŒã«ãã£ãŠæ¿èªãããã¢ã€ãã³ãã£ãã£ã®ã¿ããµã€ã³ã€ã³ã§ããããã«ãªããŸããããããã AWS Key Management Service (AWS KMS) ã³ã³ãœãŒã«ãªã©ã®ãµãŒãã¹ã³ã³ãœãŒã«ãéããšããªãœãŒã¹ã®èªã¿èŸŒã¿ã«å€±æããããããŒãžãå¿çããªããªã£ããããå ŽåããããŸãããã©ã€ããŒãã¢ã¯ã»ã¹ãšã³ããã€ã³ããäŒéããã®ã¯ã³ã³ãœãŒã«ã·ã§ã«ã®ãã©ãã£ãã¯ã§ãããã³ã³ãœãŒã«ããŠãŒã¶ãŒã«ä»£ãã£ãŠè¡ããµãŒãã¹ API ã³ãŒã«ã¯å«ãŸããªãããã§ããã€ã³ã¿ãŒãããã²ãŒããŠã§ã€ã®ãªã VPC ã§ã¯ããããã®åŒã³åºãããµãŒãã¹ã«å°éããçµè·¯ããããŸããã ããã§ããµãŒãã¹èªäœã® VPC ãšã³ããã€ã³ãã远å ããŸãããã€ãããã§ã¯ã AWS KMS ã€ã³ã¿ãŒãã§ã€ã¹ãšã³ããã€ã³ã ( com.amazonaws.<region>.kms ) ãåã VPC ã«äœæãããã©ã€ããŒã DNS ãæå¹ã«ããŸããVPC å
ãã AWS KMS ã³ã³ãœãŒã«ãéããããŒã®ãªã¹ããèªã¿èŸŒãŸããããšã確èªããŸãããŠãŒã¶ãŒã忥ããå¿
èŠãšãããµãŒãã¹ããšã«ããã®æé ãç¹°ãè¿ããŸãããªãã1 ã€ã®ãµãŒãã¹ã³ã³ãœãŒã«ãè€æ°ã® AWS ãµãŒãã¹ API ãåŒã³åºãããšã¯ãããããŸããã³ã³ãœãŒã«ã¯èªã¿èŸŒãŸãããã®ã®ãããŒãžã®äžéšã«ãšã©ãŒã衚瀺ããããã空ã®ãŸãŸã«ãªã£ããããå Žåãäž»ãªåå ã¯ããã®ã³ã³ãœãŒã«ãäŸåããããããã®ãµãŒãã¹ã®ãšã³ããã€ã³ããäžè¶³ããŠããããšã§ãã PrivateLink ããµããŒããããµãŒãã¹ã®ææ°ã®ãªã¹ãã¯ã AWS PrivateLink ã®ããã¥ã¡ã³ã ã«èšèŒãããŠããŸããPrivateLink ããµããŒãããŠããªããµãŒãã¹ã®ã³ã³ãœãŒã«ã¯ãã€ã³ã¿ãŒãããã«æ¥ç¶ãããŠããªã VPC ã§ã¯æ©èœããªããããå¥é察åŠããå¿
èŠããããŸãã ã¹ããã 8: èšå®ããŠããªããªãŒãžã§ã³ãšãµãŒãã¹ãé衚瀺ã«ãã (ãªãã·ã§ã³) ãšã³ããã€ã³ããçšæããŠããªããµãŒãã¹ããªãŒãžã§ã³ãžã®ã³ã³ãœãŒã«ãªã³ã¯ã¯ãVPC å
ã§ã¯æ©èœããŸããããŠãŒã¶ãŒãæ©èœããªãããŒãžã«ç§»åããªãããã«ããã«ã¯ã User Experience Customization (UXC) ã䜿çšããŠããã©ã€ããŒãã¢ã¯ã»ã¹ã®ãããã€ã«å«ãŸããŠããªããªãŒãžã§ã³ãšãµãŒãã¹ãé衚瀺ã«ããŸããUXC ã¯ã¢ã«ãŠã³ãã¬ãã«ã§èšå®ããããã²ãŒã·ã§ã³ãæ€çŽ¢çµæããµãŒãã¹éžæã®ããããããŠã³ã«é©çšãããŸãã ã¹ããã 9: æ€èšŒããŠããæ¡å€§ãã 1 ã€ã®ãã€ãããã¢ã«ãŠã³ãã«ãšã³ããã€ã³ãããªã·ãŒãšãµã€ã³ã€ã³ RCP ãé©çšããããæ¬¡ã®æé ãå®è¡ããŸãã äŒæ¥ãããã¯ãŒã¯å
ãããµã€ã³ã€ã³ããŸããã»ãã·ã§ã³ãæ£åžžã«ç¢ºç«ãããããšã確èªããŸãã äŒæ¥ãããã¯ãŒã¯å€ãããµã€ã³ã€ã³ããŸããã³ã³ãœãŒã«ã«å°éããåã«ããµã€ã³ã€ã³ã®ã¹ãããã§ã»ãã·ã§ã³ãæåŠãããããšã確èªããŸãã CloudTrail ã§ããããã¯ãŒã¯å
ããã®ãã©ãã£ãã¯ã® ConsoleLogin ã€ãã³ãã« vpcEndpointId ãå
¥åãããŠããããšã確èªããŸãã æ³å®å€ã®æåŠãçºçããå Žåã¯ãCloudTrail ã§ ConsoleLogin ã€ãã³ãã®ãã¡ããšã©ãŒã¡ãã»ãŒãžã« Authorization denied because of a resource-based policy (ãªãœãŒã¹ããŒã¹ã®ããªã·ãŒã«ããèªå¯ãæåŠãããŸãã) ãŸã㯠Authorization denied because of a resource control policy (ãªãœãŒã¹ã³ã³ãããŒã«ããªã·ãŒã«ããèªå¯ãæåŠãããŸãã) ãå«ãŸãããã®ãæ¢ããåå ãšãªã£ãã¹ããŒãã¡ã³ããç¹å®ããŸãã èæ
®äºé
ãã®èšèšãæ¡çšããåã«ã次ã®ç¹ã«æ³šæããŠãã ããã AWS IAM Identity Center: IAM Identity Center ã®ãµã€ã³ã€ã³ã¯ãçŸæç¹ã§ã¯ VPC ãšã³ããã€ã³ãçµç±ã§ã¯ãµããŒããããŠããŸãããæåã®ã·ã³ã°ã«ãµã€ã³ãªã³ (SSO) èªèšŒã¯ãåŒãç¶ãã€ã³ã¿ãŒãããçµç±ã§è¡ãå¿
èŠããããŸãã ããã°ã©ã ã«ããã¢ã¯ã»ã¹: ãµã€ã³ã€ã³ RBP ãš RCP ãå¶åŸ¡ããã®ã¯ãã€ã³ã¿ã©ã¯ãã£ããªã³ã³ãœãŒã«ãµã€ã³ã€ã³ã§ããSigV4 ã§çœ²åããã AWS SDK ãš AWS CLI ã®ãªã¯ãšã¹ãã¯åœ±é¿ãåããŸãããããã¯åŸ©æ§çµè·¯ãšããŠãå©çšã§ããŸããã³ã³ãœãŒã«èªå¯ã®èšå®ã誀ã£ãå Žåã§ãã signin:DeleteConsoleAuthorizationConfiguration ã¢ã¯ã»ã¹èš±å¯ãæã€ããªã³ã·ãã«ã§ããã°ãããã°ã©ã ã«ãã£ãŠé©çšãç¡å¹ã«ã§ããŸãã AWS ãµã€ã³ã€ã³ãšçµ±åãããã¢ããª: Amazon Connect ã Amazon WorkSpaces ã Amazon QuickSight ã AWS Health Dashboard ã Amazon AppStream 2.0 ã Amazon Lightsail ãèªèšŒã« AWS ãµã€ã³ã€ã³ã䜿çšããå Žåããµã€ã³ã€ã³ããªã·ãŒã¯ãããã®ã¢ããªã±ãŒã·ã§ã³ã«ãé©çšãããŸãã AWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ã¯ãã¹ãŠã® AWS åçšãªãŒãžã§ã³ã§å©çšã§ããŸããããµããŒãããŠããã®ã¯ AWS ãµãŒãã¹ã³ã³ãœãŒã«ã®äžéšã®ã¿ã§ãã詳现ã«ã€ããŠã¯ã ããã©ã€ããŒãã¢ã¯ã»ã¹ã§ãµããŒããããŠãã AWS ãªãŒãžã§ã³ããµãŒãã¹ã³ã³ãœãŒã«ãæ©èœã ã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãµããŒããããŠããªããµãŒãã¹ããã£ãŠããä»ã®ã³ã³ãœãŒã«ã«ã¯åŒãç¶ãç§»åã§ããŸãããã ãããµããŒããããŠããªããµãŒãã¹ã³ã³ãœãŒã«ãšã³ã³ãœãŒã«å°çš API ã«ã¯ãã€ã³ã¿ãŒãããæ¥ç¶ãå¿
èŠã§ãã ã³ã¹ã: ãããã€ãããšã³ããã€ã³ããšãªãŒãžã§ã³ããšã«ãéåžžã® AWS PrivateLink ãšã³ããã€ã³ãæé ãšããŒã¿åŠçæéãçºçããŸãã察象ãšãªãæéé
ç®ã¯ã3 ã€ã®ãã©ã€ããŒãã¢ã¯ã»ã¹ãšã³ããã€ã³ã ( console ã signin ã console-static ) ãšãæ¢ã«äœ¿çšããŠãããµãŒãã¹ãšã³ããã€ã³ãã§ãã ãŸãšã ãã®èšäºã§ã¯ãAWS ã®ããŒã¿å¢çãã¬ãŒã ã¯ãŒã¯ã AWS ãããžã¡ã³ãã³ã³ãœãŒã«ã«æ¡åŒµããæ¹æ³ã説æããŸãããAWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ã䜿çšããŠãVPC ãšã³ããã€ã³ãçµç±ã§ã³ã³ãœãŒã«ãã©ãã£ãã¯ãã«ãŒãã£ã³ã°ãããµã€ã³ã€ã³ RBP ãš RCP ã䜿çšããŠããããã¯ãŒã¯ãšçµç¹ã«åºã¥ããŠã³ã³ãœãŒã«ãµã€ã³ã€ã³ãå¶éããŸãããããã«ãã€ã³ã¿ãŒãããã²ãŒããŠã§ã€ã®ãªã VPC ã§ã³ã³ãœãŒã«ãåäœããããã«èšå®ããŸãããããã«ãããAPI ãã©ãã£ãã¯ã«æ¢ã«é©çšããŠãã 4 ã€ã®çµ±å¶ç®çããã³ã³ãœãŒã«ã«ãé©çšãããããã«ãªããŸãã 䜿çšãéå§ããã«ã¯ã AWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ã®ããã¥ã¡ã³ã ãåç
§ããŠãã ããããããã€ãã¿ãŒã³ãšãªãŒãžã§ã³ããšã®èæ
®äºé
ã«ã€ããŠã¯ã AWS ãããžã¡ã³ãã³ã³ãœãŒã«ãã©ã€ããŒãã¢ã¯ã»ã¹ã®ãªãã¡ã¬ã³ã¹ã¢ãŒããã¯ã㣠ãåç
§ããŠãã ãããããŒã¿å¢çã®å
šäœåã«ã€ããŠã¯ã ãAWS ã§ã®ããŒã¿å¢çã®ç¢ºç«ã ãåç
§ããŠãã ããã ãã®èšäºã«é¢ããã質åã¯ã AWS re:Post ã® IAM ãã©ãŒã©ã ã§æ°ããã¹ã¬ãããäœæãããã AWS ãµããŒãã«ãåãåãã ãã ããã Madhur Kulkarni Madhur 㯠AWS ã® Sr. Customer Solutions Manager ã§ããStrategic Accounts ã®ã客æ§ãšååããã¯ã©ãŠãå°å
¥ã®å éãšããžãã¹ææã®åµåºã«åãçµãã§ããŸããã«ã¹ã¿ããŒãšã³ãžãã¢ãªã³ã°ãAWS ãµãŒãã¹ããŒã ãã¹ãã·ã£ãªã¹ãçµç¹ã«ãŸãããéšé暪æçãªããŒã ãšé£æºãããšã³ã¿ãŒãã©ã€ãºèŠæš¡ã®ã¯ã©ãŠããœãªã¥ãŒã·ã§ã³ãæäŸããŠããŸãã Mateusz Jaworski Mateusz 㯠AWS ã® Principal Engineer ã§ãAWS ãããžã¡ã³ãã³ã³ãœãŒã«ã®éçºã«æºãã£ãŠããŸãã Sujay Ghosh Sujay 㯠AWS ã® Software Development Manager ã§ãAWS ãããžã¡ã³ãã³ã³ãœãŒã«ãžã®å®å
šã§ä¿¡é Œæ§ã®é«ãã¢ã¯ã»ã¹ãå®çŸããããŒã ãçããŠããŸããäœçŸäžãã®ã客æ§ãã¯ã©ãŠããªãœãŒã¹ãå®å
šãã€å¹ççã«ç®¡çã§ãããããã¹ã±ãŒã©ãã«ãªã€ã³ãã©ã¹ãã©ã¯ãã£ã®æ§ç¯ã«æ
ç±ã泚ãã§ããŸãã Abhijit Barde Abhijit 㯠AWS ã® Principal Product Manager ã§ããAWS ãå©çšãããã¹ãŠã®ã客æ§ã察話åã¢ã·ã¹ã¿ã³ããšçæ AI ã䜿çšããŠãAWS ã€ã³ãã©ã¹ãã©ã¯ãã£ãç°¡åã«æ€åºãã¢ãã¿ãªã³ã°ãéçšã§ããããã«ããããšã«æ³šåããŠããŸãã æ¬ããã°ã¯ Security Solutions Architect ã® äžå³¶ ç« å ã翻蚳ããŸããã
åç»
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã















