ãµã³ãããã¯ã¹
Claude Code ã®ãµã³ãããã¯ã¹åããã bash ããŒã«ããã¡ã€ã«ã·ã¹ãã ãšãããã¯ãŒã¯ã®åé¢ãæäŸããããå®å šã§èªåŸçãªãšãŒãžã§ã³ãå®è¡ãå®çŸããæ¹æ³ã«ã€ããŠåŠã³ãŸãã
æŠèŠ
Claude Code ã¯ãã€ãã£ããµã³ãããã¯ã¹æ©èœãåããŠããããšãŒãžã§ã³ãå®è¡ã®ããã®ããå®å šãªç°å¢ãæäŸããªãããç¶ç¶çãªèš±å¯ããã³ããã®å¿ èŠæ§ã軜æžããŸããå bash ã³ãã³ãã®å®è¡èš±å¯ãæ±ãã代ããã«ããµã³ãããã¯ã¹åã«ããäºåã«å®çŸ©ãããå¢çãäœæãããClaude Code ã¯ãªã¹ã¯ã軜æžããªããããèªç±ã«åäœã§ããŸãã
ãµã³ãããã¯ã¹åããã bash ããŒã«ã¯ OS ã¬ãã«ã®ããªããã£ãã䜿çšããŠããã¡ã€ã«ã·ã¹ãã ãšãããã¯ãŒã¯ã®äž¡æ¹ã®åé¢ã宿œããŸãã
ãµã³ãããã¯ã¹åãéèŠãªçç±
åŸæ¥ã®èš±å¯ããŒã¹ã®ã»ãã¥ãªãã£ã§ã¯ãbash ã³ãã³ãããšã«ç¶ç¶çãªãŠãŒã¶ãŒæ¿èªãå¿ èŠã§ããããã¯å¶åŸ¡ãæäŸããŸããã以äžã®åé¡ã«ã€ãªããå¯èœæ§ããããŸãã
- æ¿èªç²ãïŒãæ¿èªããç¹°ãè¿ãã¯ãªãã¯ãããšããŠãŒã¶ãŒãæ¿èªå å®¹ã«æ³šæãæããªããªãå¯èœæ§ããããŸã
- çç£æ§ã®äœäžïŒç¶ç¶çãªäžæã«ããéçºã¯ãŒã¯ãããŒãé ããªããŸã
- èªåŸæ§ã®å¶éïŒClaude Code ã¯æ¿èªãåŸ ã€éã«å¹ççã«åäœã§ããŸãã
ãµã³ãããã¯ã¹åã¯ãããã®èª²é¡ã«ä»¥äžã®æ¹æ³ã§å¯ŸåŠããŸãã
- æç¢ºãªå¢çãå®çŸ©ïŒClaude Code ãã¢ã¯ã»ã¹ã§ãããã£ã¬ã¯ããªãšãããã¯ãŒã¯ãã¹ããæ£ç¢ºã«æå®ããŸã
- èš±å¯ããã³ãããåæžïŒãµã³ãããã¯ã¹å ã®å®å šãªã³ãã³ãã¯æ¿èªãå¿ èŠãšããŸãã
- ã»ãã¥ãªãã£ãç¶æïŒãµã³ãããã¯ã¹å€ã®ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹è©Šè¡ã¯å³åº§ã«éç¥ãããªã¬ãŒããŸã
- èªåŸæ§ãæå¹åïŒClaude Code ã¯å®çŸ©ãããå¶éå ã§ããç¬ç«ããŠå®è¡ã§ããŸã
广çãªãµã³ãããã¯ã¹åã«ã¯ããã¡ã€ã«ã·ã¹ãã ãšãããã¯ãŒã¯ã®äž¡æ¹ã®åé¢ãå¿ èŠã§ãããããã¯ãŒã¯åé¢ããªãå Žåã䟵害ããããšãŒãžã§ã³ã㯠SSH ããŒãªã©ã®æ©å¯ãã¡ã€ã«ãæµåºãããå¯èœæ§ããããŸãããã¡ã€ã«ã·ã¹ãã åé¢ããªãå Žåã䟵害ããããšãŒãžã§ã³ãã¯ã·ã¹ãã ãªãœãŒã¹ã«ããã¯ãã¢ã仿ããŠãããã¯ãŒã¯ã¢ã¯ã»ã¹ãååŸããå¯èœæ§ããããŸãããµã³ãããã¯ã¹åãèšå®ããéã¯ãèšå®ããããã®ã·ã¹ãã ã®ãã€ãã¹ãäœæããªãããšã確èªããããšãéèŠã§ãã
ä»çµã¿
ãã¡ã€ã«ã·ã¹ãã åé¢
ãµã³ãããã¯ã¹åããã bash ããŒã«ã¯ãã¡ã€ã«ã·ã¹ãã ã¢ã¯ã»ã¹ãç¹å®ã®ãã£ã¬ã¯ããªã«å¶éããŸãã
- ããã©ã«ãã®æžã蟌ã¿åäœïŒçŸåšã®äœæ¥ãã£ã¬ã¯ããªãšãã®ãµããã£ã¬ã¯ããªãžã®èªã¿åãããã³æžã蟌ã¿ã¢ã¯ã»ã¹
- ããã©ã«ãã®èªã¿åãåäœïŒç¹å®ã®æåŠãã£ã¬ã¯ããªãé€ããã³ã³ãã¥ãŒã¿å šäœãžã®èªã¿åãã¢ã¯ã»ã¹
- ãããã¯ãããã¢ã¯ã»ã¹ïŒæç€ºçãªèš±å¯ãªãã«çŸåšã®äœæ¥ãã£ã¬ã¯ããªå€ã®ãã¡ã€ã«ã倿Žã§ããŸãã
- èšå®å¯èœïŒèšå®ãéããŠã«ã¹ã¿ã èš±å¯ãã¹ãšæåŠãã¹ãå®çŸ©ããŸã
sandbox.filesystem.allowWrite ãèšå®ã§äœ¿çšããŠã远å ã®ãã¹ãžã®æžã蟌ã¿ã¢ã¯ã»ã¹ãä»äžã§ããŸãããããã®å¶é㯠OS ã¬ãã«ïŒmacOS ã® SeatbeltãLinux ã® bubblewrapïŒã§å®æœããããããClaude ã®ãã¡ã€ã«ããŒã«ã ãã§ãªããkubectlãterraformãnpm ãªã©ã®ããŒã«ãå«ããã¹ãŠã®ãµãããã»ã¹ã³ãã³ãã«é©çšãããŸãã
ãããã¯ãŒã¯åé¢
ãããã¯ãŒã¯ã¢ã¯ã»ã¹ã¯ãµã³ãããã¯ã¹å€ã§å®è¡ããããããã·ãµãŒããŒãéããŠå¶åŸ¡ãããŸãã
- ãã¡ã€ã³å¶éïŒæ¿èªããããã¡ã€ã³ã®ã¿ã«ã¢ã¯ã»ã¹ã§ããŸã
- ãŠãŒã¶ãŒç¢ºèªïŒæ°ãããã¡ã€ã³ãªã¯ãšã¹ãã¯èš±å¯ããã³ãããããªã¬ãŒããŸãïŒ
allowManagedDomainsOnlyãæå¹ãªå Žåãé€ããèš±å¯ãããŠããªããã¡ã€ã³ãèªåçã«ãããã¯ããŸãïŒ - ã«ã¹ã¿ã ãããã·ãµããŒãïŒé«åºŠãªãŠãŒã¶ãŒã¯çºä¿¡ãã©ãã£ãã¯ã«ã«ã¹ã¿ã ã«ãŒã«ãå®è£ ã§ããŸã
- å æ¬çãªã«ãã¬ããžïŒå¶éã¯ãã¹ãŠã®ã¹ã¯ãªãããããã°ã©ã ãããã³ã³ãã³ãã«ãã£ãŠçæããããµãããã»ã¹ã«é©çšãããŸã
OS ã¬ãã«ã®å®æœ
ãµã³ãããã¯ã¹åããã bash ããŒã«ã¯ OS ã»ãã¥ãªãã£ããªããã£ããæŽ»çšããŸãã
- macOSïŒSeatbelt ããµã³ãããã¯ã¹å®æœã«äœ¿çšããŸã
- LinuxïŒåé¢ã« bubblewrap ã䜿çšããŸã
- WSL2ïŒLinux ãšåãã bubblewrap ã䜿çšããŸã
WSL1 㯠bubblewrap ã WSL2 ã§ã®ã¿å©çšå¯èœãªã«ãŒãã«æ©èœãå¿ èŠãšããããããµããŒããããŠããŸããã
ãããã® OS ã¬ãã«ã®å¶éã«ãããClaude Code ã®ã³ãã³ãã«ãã£ãŠçæããããã¹ãŠã®åããã»ã¹ãåãã»ãã¥ãªãã£å¢çãç¶æ¿ããããšãä¿èšŒãããŸãã
éå§æ¹æ³
åææ¡ä»¶
macOS ã§ã¯ããµã³ãããã¯ã¹åã¯çµã¿èŸŒã¿ã® Seatbelt ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠããã«åäœããŸãã
Linux ãš WSL2 ã§ã¯ããŸãå¿ èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããŠãã ããã
sudo apt-get install bubblewrap socat
sudo dnf install bubblewrap socat
WSL1 ã¯å¿
èŠãª Linux åå空éããªããã£ããäžè¶³ããŠããããããµã³ãããã¯ã¹åããµããŒãããŠããŸãããSandboxing requires WSL2 ã衚瀺ãããå Žåã¯ããã£ã¹ããªãã¥ãŒã·ã§ã³ã WSL2 ã«ã¢ããã°ã¬ãŒãããããClaude Code ããµã³ãããã¯ã¹åãªãã§å®è¡ããŠãã ããã
WSL2 ã§ã¯ããµã³ãããã¯ã¹åãããã³ãã³ã㯠cmd.exeãpowershell.exeããŸã㯠/mnt/c/ äžã®ãã®ãªã©ã® Windows ãã€ããªãèµ·åã§ããŸãããWSL ã¯ãããã Unix ãœã±ããçµç±ã§ Windows ãã¹ãã«æž¡ããŸããããµã³ãããã¯ã¹ã¯ããããããã¯ããŸããã³ãã³ãã Windows ãã€ããªãåŒã³åºãå¿
èŠãããå Žåã¯ãexcludedCommands ã«è¿œå ããŠããµã³ãããã¯ã¹å€ã§å®è¡ããããã«ããŠãã ããã
ãµã³ãããã¯ã¹åãæå¹å
/sandbox ã³ãã³ããå®è¡ããŠãµã³ãããã¯ã¹åãæå¹åã§ããŸãã
/sandbox
ããã¯ãµã³ãããã¯ã¹ã¢ãŒããéžæã§ããã¡ãã¥ãŒãéããŸããå¿
èŠãªäŸåé¢ä¿ïŒLinux ã® bubblewrap ã socat ãªã©ïŒãäžè¶³ããŠããå Žåãã¡ãã¥ãŒã¯ãã©ãããã©ãŒã ã®ã€ã³ã¹ããŒã«æé ã衚瀺ããŸãã
ããã©ã«ãã§ã¯ããµã³ãããã¯ã¹ãèµ·åã§ããªãå ŽåïŒäŸåé¢ä¿ã®äžè¶³ãŸãã¯ãµããŒããããŠããªããã©ãããã©ãŒã ïŒãClaude Code ã¯èŠåã衚瀺ããŠãµã³ãããã¯ã¹åãªãã§ã³ãã³ããå®è¡ããŸãããããããŒã倱æã«ããã«ã¯ãsandbox.failIfUnavailable ã true ã«èšå®ããŸããããã¯ãã»ãã¥ãªãã£ã²ãŒããšããŠãµã³ãããã¯ã¹åãå¿
èŠãšãã管çãããã€ã¡ã³ãåãã§ãã
ãµã³ãããã¯ã¹ã¢ãŒã
Claude Code 㯠2 ã€ã®ãµã³ãããã¯ã¹ã¢ãŒããæäŸããŸãã
èªåèš±å¯ã¢ãŒãïŒBash ã³ãã³ãã¯ãµã³ãããã¯ã¹å
ã§å®è¡ã詊ã¿ãããèš±å¯ãªãã«èªåçã«èš±å¯ãããŸãããµã³ãããã¯ã¹åã§ããªãã³ãã³ãïŒèš±å¯ãããŠããªããã¹ããžã®ãããã¯ãŒã¯ã¢ã¯ã»ã¹ãå¿
èŠãªã³ãã³ããªã©ïŒã¯éåžžã®èš±å¯ãããŒã«ãã©ãŒã«ããã¯ããŸããæç€ºçãªæåŠã«ãŒã«ã¯åžžã«å°éãããŸãããŸããrm ãŸã㯠rmdir ã³ãã³ãã /ãããŒã ãã£ã¬ã¯ããªããŸãã¯ä»ã®éèŠãªã·ã¹ãã ãã¹ãã¿ãŒã²ããã«ããŠããå Žåã§ããèš±å¯ããã³ãããããªã¬ãŒãããŸããAsk ã«ãŒã«ã¯éåžžã®èš±å¯ãããŒã«ãã©ãŒã«ããã¯ããã³ãã³ãã«ã®ã¿é©çšãããŸãã
éåžžã®èš±å¯ã¢ãŒãïŒãã¹ãŠã® bash ã³ãã³ãã¯ããµã³ãããã¯ã¹åãããŠããå Žåã§ãæšæºçãªèš±å¯ãããŒãéããŸããããã¯ããå€ãã®å¶åŸ¡ãæäŸããŸãããããå€ãã®æ¿èªãå¿ èŠã§ãã
äž¡æ¹ã®ã¢ãŒãã§ããµã³ãããã¯ã¹ã¯åããã¡ã€ã«ã·ã¹ãã ãšãããã¯ãŒã¯å¶éã宿œããŸããéãã¯ããµã³ãããã¯ã¹åãããã³ãã³ããèªåæ¿èªããããæç€ºçãªèš±å¯ãå¿ èŠãã ãã§ãã
èªåèš±å¯ã¢ãŒãã¯èš±å¯ã¢ãŒãèšå®ãšã¯ç¬ç«ããŠåäœããŸãããç·šéãåãå ¥ãããã¢ãŒãã§ãªãå Žåã§ããèªåèš±å¯ãæå¹ãªå Žåããµã³ãããã¯ã¹åããã bash ã³ãã³ãã¯èªåçã«å®è¡ãããŸããããã¯ããã¡ã€ã«ç·šéããŒã«ãéåžžã¯æ¿èªãå¿ èŠãšããå Žåã§ãããµã³ãããã¯ã¹å¢çå ã®ãã¡ã€ã«ã倿Žãã bash ã³ãã³ãã¯ããã³ãããªãã«å®è¡ãããããšãæå³ããŸãã
ãµã³ãããã¯ã¹åãèšå®
settings.json ãã¡ã€ã«ãéããŠãµã³ãããã¯ã¹åäœãã«ã¹ã¿ãã€ãºããŸããå®å
šãªèšå®ãªãã¡ã¬ã³ã¹ã«ã€ããŠã¯ Settings ãåç
§ããŠãã ããã
ç¹å®ã®ãã¹ãžã®ãµãããã»ã¹æžã蟌ã¿ã¢ã¯ã»ã¹ã®ä»äž
ããã©ã«ãã§ã¯ããµã³ãããã¯ã¹åãããã³ãã³ãã¯çŸåšã®äœæ¥ãã£ã¬ã¯ããªã«ã®ã¿æžã蟌ã¿ã§ããŸããkubectlãterraformãnpm ãªã©ã®ãµãããã»ã¹ã³ãã³ãããããžã§ã¯ããã£ã¬ã¯ããªå€ã«æžã蟌ãå¿
èŠãããå Žåãsandbox.filesystem.allowWrite ã䜿çšããŠç¹å®ã®ãã¹ãžã®ã¢ã¯ã»ã¹ãä»äžããŸãã
{
"sandbox": {
"enabled": true,
"filesystem": {
"allowWrite": ["~/.kube", "/tmp/build"]
}
}
}
ãããã®ãã¹ã¯ OS ã¬ãã«ã§å®æœãããããããµã³ãããã¯ã¹å
ã§å®è¡ããããã¹ãŠã®ã³ãã³ãïŒãã®åããã»ã¹ãå«ãïŒãããããå°éããŸããããã¯ãexcludedCommands ã§ããŒã«ããµã³ãããã¯ã¹ããé€å€ããã®ã§ã¯ãªããããŒã«ãç¹å®ã®å Žæãžã®æžã蟌ã¿ã¢ã¯ã»ã¹ãå¿
èŠãšããå Žåã®æšå¥šã¢ãããŒãã§ãã
allowWriteïŒãŸã㯠denyWrite/denyRead/allowReadïŒãè€æ°ã® èšå®ã¹ã³ãŒã ã§å®çŸ©ãããŠããå Žåãé
åã¯ããŒãžãããŸããã€ãŸãããã¹ãŠã®ã¹ã³ãŒãããã®ãã¹ãçµåããã眮ãæããããŸãããããšãã°ã管çèšå®ã /opt/company-tools ãžã®æžã蟌ã¿ãèš±å¯ãããŠãŒã¶ãŒãå人èšå®ã§ ~/.kube ã远å ããå Žåãäž¡æ¹ã®ãã¹ãæçµçãªãµã³ãããã¯ã¹èšå®ã«å«ãŸããŸããããã¯ããŠãŒã¶ãŒãšãããžã§ã¯ãããããé«ãåªå
床ã®ã¹ã³ãŒãã§èšå®ããããã¹ãè€è£œãŸãã¯äžæžãããããšãªãããªã¹ããæ¡åŒµã§ããããšãæå³ããŸãã
ãã¹ãã¬ãã£ãã¯ã¹ã¯ãã¹ã®è§£æ±ºæ¹æ³ãå¶åŸ¡ããŸãã
| ãã¬ãã£ãã¯ã¹ | æå³ | äŸ |
|---|---|---|
/ |
ãã¡ã€ã«ã·ã¹ãã ã«ãŒãããã®çµ¶å¯Ÿãã¹ | /tmp/build 㯠/tmp/build ã®ãŸãŸã§ã |
~/ |
ããŒã ãã£ã¬ã¯ããªããã®çžå¯Ÿãã¹ | ~/.kube 㯠$HOME/.kube ã«ãªããŸã |
./ ãŸãã¯ãã¬ãã£ãã¯ã¹ãªã |
ãããžã§ã¯ãèšå®ã®å Žåã¯ãããžã§ã¯ãã«ãŒãããã®çžå¯Ÿãã¹ããŸãã¯ãŠãŒã¶ãŒèšå®ã®å Žå㯠~/.claude ããã®çžå¯Ÿãã¹ |
.claude/settings.json ã® ./output 㯠<project-root>/output ã«è§£æ±ºãããŸã |
å€ã //path ãã¬ãã£ãã¯ã¹ã¯çµ¶å¯Ÿãã¹ã®å Žåã§ãæ©èœããŸãã以åã«åäžã¹ã©ãã·ã¥ /path ã䜿çšããŠãããžã§ã¯ãçžå¯Ÿè§£æ±ºãæåŸ
ããŠããå Žåã¯ã./path ã«åãæ¿ããŠãã ããããã®æ§æã¯ Read ãš Edit èš±å¯ã«ãŒã« ãšã¯ç°ãªããŸãããããã¯çµ¶å¯Ÿãã¹ã« //path ã䜿çšãããããžã§ã¯ãçžå¯Ÿã« /path ã䜿çšããŸãããµã³ãããã¯ã¹ãã¡ã€ã«ã·ã¹ãã ãã¹ã¯æšæºçãªèŠåã䜿çšããŸãã/tmp/build ã¯çµ¶å¯Ÿãã¹ã§ãã
sandbox.filesystem.denyWrite ãš sandbox.filesystem.denyRead ã䜿çšããŠæžã蟌ã¿ãŸãã¯èªã¿åãã¢ã¯ã»ã¹ãæåŠããããšãã§ããŸããããã㯠Edit(...) ãš Read(...) èš±å¯ã«ãŒã«ããã®ãã¹ãšããŒãžãããŸããæåŠãããé åå
ã®ç¹å®ã®ãã¹ã®èªã¿åããå床蚱å¯ããã«ã¯ãsandbox.filesystem.allowRead ã䜿çšããŸãããã㯠denyRead ããåªå
ãããŸãã管çèšå®ã§ allowManagedReadPathsOnly ãæå¹ãªå Žåã管ç allowRead ãšã³ããªã®ã¿ãå°éãããŸãããŠãŒã¶ãŒããããžã§ã¯ããããŒã«ã«ã® allowRead ãšã³ããªã¯ç¡èŠãããŸããdenyRead ã¯ãã¹ãŠã®ãœãŒã¹ããããŒãžãããŸãã
ããšãã°ãããŒã ãã£ã¬ã¯ããªå
šäœããã®èªã¿åãããããã¯ããªãããçŸåšã®ãããžã§ã¯ãããã®èªã¿åããèš±å¯ããã«ã¯ããããžã§ã¯ãã® .claude/settings.json ã«ä»¥äžã远å ããŸãã
{
"sandbox": {
"enabled": true,
"filesystem": {
"denyRead": ["~/"],
"allowRead": ["."]
}
}
}
ãã®èšå®ããããžã§ã¯ãèšå®ã«ååšãããããallowRead ã® . ã¯ãããžã§ã¯ãã«ãŒãã«è§£æ±ºãããŸããåãèšå®ã ~/.claude/settings.json ã«é
眮ããå Žåã. 㯠~/.claude ã«è§£æ±ºããããããžã§ã¯ããã¡ã€ã«ã¯ denyRead ã«ãŒã«ã«ãã£ãŠãããã¯ããããŸãŸã«ãªããŸãã
ãã¹ãŠã®ã³ãã³ãããµã³ãããã¯ã¹åãšäºææ§ãããããã§ã¯ãããŸããããµã³ãããã¯ã¹ãæå€§éã«æŽ»çšããã®ã«åœ¹ç«ã€å¯èœæ§ã®ããããã€ãã®ã¡ã¢ïŒ
- å€ãã® CLI ããŒã«ã¯ç¹å®ã®ãã¹ããžã®ã¢ã¯ã»ã¹ãå¿ èŠãšããŸãããããã®ããŒã«ã䜿çšãããšãç¹å®ã®ãã¹ããžã®ã¢ã¯ã»ã¹èš±å¯ããªã¯ãšã¹ãããŸããèš±å¯ãä»äžãããšããããã®ãã¹ãã«ä»åŸã¢ã¯ã»ã¹ã§ãããµã³ãããã¯ã¹å ã§å®å šã«å®è¡ã§ããããã«ãªããŸãã
watchmanã¯ãµã³ãããã¯ã¹å ã§ã®å®è¡ãšäºææ§ããããŸãããjestãå®è¡ããŠããå Žåã¯ãjest --no-watchmanã®äœ¿çšãæ€èšããŠãã ããdockerã¯ãµã³ãããã¯ã¹å ã§ã®å®è¡ãšäºææ§ããããŸãããexcludedCommandsã§docker *ãæå®ããŠããµã³ãããã¯ã¹å€ã§å®è¡ããããã«åŒ·å¶ããããšãæ€èšããŠãã ããã
Claude Code ã«ã¯ãå¿
èŠã«å¿ããŠã³ãã³ãããµã³ãããã¯ã¹å€ã§å®è¡ã§ããããã«ããæå³çãªãšã¹ã±ãŒããããã¡ã«ããºã ãå«ãŸããŠããŸããã³ãã³ãããµã³ãããã¯ã¹å¶éïŒãããã¯ãŒã¯æ¥ç¶ã®åé¡ãäºææ§ã®ãªãããŒã«ãªã©ïŒã«ãã倱æããå ŽåãClaude ã¯å€±æãåæããããä¿ãããdangerouslyDisableSandbox ãã©ã¡ãŒã¿ã§ã³ãã³ããå詊è¡ããå¯èœæ§ããããŸãããã®ãã©ã¡ãŒã¿ã䜿çšããã³ãã³ãã¯ãå®è¡ãããŠãŒã¶ãŒèš±å¯ãå¿
èŠãšããéåžžã® Claude Code èš±å¯ãããŒãéããŸããããã«ãããClaude Code ã¯ç¹å®ã®ããŒã«ãŸãã¯ãããã¯ãŒã¯æäœããµã³ãããã¯ã¹å¶çŽå
ã§æ©èœã§ããªããšããžã±ãŒã¹ãåŠçã§ããŸãã
ãã®ãšã¹ã±ãŒããããã¯ããµã³ãããã¯ã¹èšå® ã§ "allowUnsandboxedCommands": false ãèšå®ããããšã§ç¡å¹åã§ããŸããç¡å¹åããããšãdangerouslyDisableSandbox ãã©ã¡ãŒã¿ã¯å®å
šã«ç¡èŠããããã¹ãŠã®ã³ãã³ãã¯ãµã³ãããã¯ã¹åãããããexcludedCommands ã«æç€ºçã«ãªã¹ããããŠããå¿
èŠããããŸãã
ã»ãã¥ãªãã£äžã®å©ç¹
ããã³ããã€ã³ãžã§ã¯ã·ã§ã³ããã®ä¿è·
æ»æè ãããã³ããã€ã³ãžã§ã¯ã·ã§ã³ãéã㊠Claude Code ã®åäœãæ£åžžã«æäœããå Žåã§ãããµã³ãããã¯ã¹ã¯ã·ã¹ãã ã®ã»ãã¥ãªãã£ã確ä¿ããŸãã
ãã¡ã€ã«ã·ã¹ãã ä¿è·ïŒ
~/.bashrcãªã©ã®éèŠãªèšå®ãã¡ã€ã«ã倿Žã§ããŸãã/bin/ã®ã·ã¹ãã ã¬ãã«ãã¡ã€ã«ã倿Žã§ããŸãã- Claude èš±å¯èšå® ã§æåŠããããã¡ã€ã«ãèªã¿åãããšãã§ããŸãã
ãããã¯ãŒã¯ä¿è·ïŒ
- æ»æè ãå¶åŸ¡ãããµãŒããŒãžã®ããŒã¿æµåºã¯ã§ããŸãã
- èš±å¯ãããŠããªããã¡ã€ã³ããæªæã®ããã¹ã¯ãªãããããŠã³ããŒãã§ããŸãã
- æ¿èªãããŠããªããµãŒãã¹ãžã®äºæããªã API åŒã³åºããè¡ãããšãã§ããŸãã
- æç€ºçã«èš±å¯ãããŠããªããã¡ã€ã³ã«é£çµ¡ããããšã¯ã§ããŸãã
ç£èŠãšå¶åŸ¡ïŒ
- ãµã³ãããã¯ã¹å€ã®ãã¹ãŠã®ã¢ã¯ã»ã¹è©Šè¡ã¯ OS ã¬ãã«ã§ãããã¯ãããŸã
- å¢çããã¹ãããããšãã«å³åº§ã«éç¥ãåãåããŸã
- ãªã¯ãšã¹ããæåŠã1 åã ãèš±å¯ããŸãã¯èšå®ãæ°žç¶çã«æŽæ°ããããšãéžæã§ããŸã
æ»æé¢ã®åæž
ãµã³ãããã¯ã¹åã¯ä»¥äžããã®æœåšçãªæå®³ãå¶éããŸãã
- æªæã®ããäŸåé¢ä¿ïŒæå®³ãªã³ãŒããå«ã NPM ããã±ãŒãžãŸãã¯ä»ã®äŸåé¢ä¿
- 䟵害ãããã¹ã¯ãªããïŒã»ãã¥ãªãã£è匱æ§ãæã€ãã«ãã¹ã¯ãªãããŸãã¯ããŒã«
- ãœãŒã·ã£ã«ãšã³ãžãã¢ãªã³ã°ïŒãŠãŒã¶ãŒã«å±éºãªã³ãã³ããå®è¡ãããããã®æ»æ
- ããã³ããã€ã³ãžã§ã¯ã·ã§ã³ïŒClaude ã«å±éºãªã³ãã³ããå®è¡ãããããã®æ»æ
ééçãªæäœ
Claude Code ããµã³ãããã¯ã¹å€ã®ãããã¯ãŒã¯ãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããããšããå ŽåïŒ
- æäœã¯ OS ã¬ãã«ã§ãããã¯ãããŸã
- å³åº§ã«éç¥ãåãåããŸã
- 以äžãéžæã§ããŸãã
- ãªã¯ãšã¹ããæåŠãã
- 1 åã ãèš±å¯ãã
- ãµã³ãããã¯ã¹èšå®ãæ°žç¶çã«æŽæ°ããŠèš±å¯ãã
ã»ãã¥ãªãã£äžã®å¶é
- ãããã¯ãŒã¯ãµã³ãããã¯ã¹åã®å¶éïŒãããã¯ãŒã¯ãã£ã«ã¿ãªã³ã°ã·ã¹ãã ã¯ãããã»ã¹ãæ¥ç¶ãèš±å¯ããããã¡ã€ã³ãå¶éããããšã§åäœããŸãããããã·ãéããŠæž¡ããããã©ãã£ãã¯ãæ€æ»ããããšã¯ãªãããŠãŒã¶ãŒã¯ããªã·ãŒã§èš±å¯ããããã¡ã€ã³ãä¿¡é Œã§ãããã¡ã€ã³ã®ã¿ã§ããããšã確èªãã責任ããããŸãã
ãŠãŒã¶ãŒã¯ãããŒã¿æµåºãèš±å¯ããå¯èœæ§ã®ãã github.com ãªã©ã®åºããã¡ã€ã³ãèš±å¯ããããšã«äŒŽãæœåšçãªãªã¹ã¯ã«æ³šæããå¿
èŠããããŸãããŸããå Žåã«ãã£ãŠã¯ ãã¡ã€ã³ããã³ãã£ã³ã° ãéããŠãããã¯ãŒã¯ãã£ã«ã¿ãªã³ã°ããã€ãã¹ããããšãå¯èœãªå ŽåããããŸãã
- Unix ãœã±ãããéããæš©éææ ŒïŒ
allowUnixSocketsèšå®ã¯ããµã³ãããã¯ã¹ãã€ãã¹ã«ã€ãªããå¯èœæ§ã®ãã匷åãªã·ã¹ãã ãµãŒãã¹ãžã®ã¢ã¯ã»ã¹ãäžæ³šæã«ä»äžããå¯èœæ§ããããŸããããšãã°ã/var/run/docker.sockãžã®ã¢ã¯ã»ã¹ãèš±å¯ããããã«äœ¿çšãããå Žåãdocker ãœã±ãããæªçšããŠãã¹ãã·ã¹ãã ãžã®ã¢ã¯ã»ã¹ã广çã«ä»äžããŸãããŠãŒã¶ãŒã¯ãµã³ãããã¯ã¹ãéããŠèš±å¯ãã Unix ãœã±ãããæ éã«æ€èšããããšããå§ãããŸãã - ãã¡ã€ã«ã·ã¹ãã èš±å¯ææ ŒïŒé床ã«åºããã¡ã€ã«ã·ã¹ãã æžã蟌ã¿èš±å¯ã¯æš©éææ Œæ»æãæå¹ã«ããå¯èœæ§ããããŸãã
$PATHã®å®è¡å¯èœãã¡ã€ã«ãå«ããã£ã¬ã¯ããªãã·ã¹ãã èšå®ãã£ã¬ã¯ããªããŸãã¯ãŠãŒã¶ãŒã·ã§ã«èšå®ãã¡ã€ã«ïŒ.bashrcã.zshrcïŒãžã®æžã蟌ã¿ãèš±å¯ãããšãä»ã®ãŠãŒã¶ãŒãŸãã¯ã·ã¹ãã ããã»ã¹ããããã®ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ãããšãã«ç°ãªãã»ãã¥ãªãã£ã³ã³ããã¹ãã§ã³ãŒãå®è¡ã«ã€ãªããå¯èœæ§ããããŸãã - Linux ãµã³ãããã¯ã¹åŒ·åºŠïŒLinux å®è£
ã¯åŒ·åãªãã¡ã€ã«ã·ã¹ãã ãšãããã¯ãŒã¯åé¢ãæäŸããŸãããç¹æš©ã®ãªãåå空éãªãã§ Docker ç°å¢å
ã§åäœã§ããããã«ãã
enableWeakerNestedSandboxã¢ãŒããå«ãŸããŠããŸãããã®ãªãã·ã§ã³ã¯ã»ãã¥ãªãã£ãå€§å¹ ã«åŒ±ãã远å ã®åé¢ãå¥ã®æ¹æ³ã§å®æœãããå Žåã«ã®ã¿äœ¿çšããå¿ èŠããããŸãã
ãµã³ãããã¯ã¹åãèš±å¯ãšã©ã®ããã«é¢é£ããã
ãµã³ãããã¯ã¹åãš èš±å¯ ã¯ãäžç·ã«åäœããè£å®çãªã»ãã¥ãªãã£ã¬ã€ã€ãŒã§ãã
- èš±å¯ ã¯ Claude Code ã䜿çšã§ããããŒã«ãå¶åŸ¡ããä»»æã®ããŒã«ãå®è¡ãããåã«è©äŸ¡ãããŸããããã㯠BashãReadãEditãWebFetchãMCP ãªã©ãã¹ãŠã®ããŒã«ã«é©çšãããŸãã
- ãµã³ãããã¯ã¹å ã¯ãBash ã³ãã³ãããã¡ã€ã«ã·ã¹ãã ãšãããã¯ãŒã¯ã¬ãã«ã§ã¢ã¯ã»ã¹ã§ãããã®ãå¶éãã OS ã¬ãã«ã®å®æœãæäŸããŸãããã㯠Bash ã³ãã³ããšãã®åããã»ã¹ã«ã®ã¿é©çšãããŸãã
ãã¡ã€ã«ã·ã¹ãã ãšãããã¯ãŒã¯å¶éã¯ããµã³ãããã¯ã¹èšå®ãšèš±å¯ã«ãŒã«ã®äž¡æ¹ãéããŠèšå®ãããŸãã
sandbox.filesystem.allowWriteã䜿çšããŠãäœæ¥ãã£ã¬ã¯ããªå€ã®ãã¹ãžã®ãµãããã»ã¹æžã蟌ã¿ã¢ã¯ã»ã¹ãä»äžããŸãsandbox.filesystem.denyWriteãšsandbox.filesystem.denyReadã䜿çšããŠãç¹å®ã®ãã¹ãžã®ãµãããã»ã¹ã¢ã¯ã»ã¹ããããã¯ããŸãsandbox.filesystem.allowReadã䜿çšããŠãdenyReadé åå ã®ç¹å®ã®ãã¹ã®èªã¿åããå床蚱å¯ããŸãReadãšEditæåŠã«ãŒã«ã䜿çšããŠãç¹å®ã®ãã¡ã€ã«ãŸãã¯ãã£ã¬ã¯ããªãžã®ã¢ã¯ã»ã¹ããããã¯ããŸãWebFetchèš±å¯/æåŠã«ãŒã«ã䜿çšããŠãã¡ã€ã³ã¢ã¯ã»ã¹ãå¶åŸ¡ããŸã- ãµã³ãããã¯ã¹
allowedDomainsã䜿çšããŠãBash ã³ãã³ããå°éã§ãããã¡ã€ã³ãå¶åŸ¡ããŸã - ãµã³ãããã¯ã¹
deniedDomainsã䜿çšããŠãããåºãallowedDomainsã¯ã€ã«ãã«ãŒããèš±å¯ããå Žåã§ããç¹å®ã®ãã¡ã€ã³ããããã¯ããŸã
sandbox.filesystem èšå®ãšèš±å¯ã«ãŒã«ããã®ãã¹ã¯ãæçµçãªãµã³ãããã¯ã¹èšå®ã«ããŒãžãããŸãã
ãã® ãªããžã㪠ã«ã¯ãäžè¬çãªãããã€ã¡ã³ãã·ããªãªïŒãµã³ãããã¯ã¹åºæã®äŸãå«ãïŒã®ã¹ã¿ãŒã¿ãŒèšå®ãå«ãŸããŠããŸããããããåºçºç¹ãšããŠäœ¿çšããããŒãºã«åãããŠèª¿æŽããŠãã ããã
é«åºŠãªäœ¿ç𿹿³
ã«ã¹ã¿ã ãããã·èšå®
é«åºŠãªãããã¯ãŒã¯ã»ãã¥ãªãã£ãå¿ èŠãšããçµç¹ã®å Žåãã«ã¹ã¿ã ãããã·ãå®è£ ããŠä»¥äžãè¡ãããšãã§ããŸãã
- HTTPS ãã©ãã£ãã¯ã埩å·åããŠæ€æ»ãã
- ã«ã¹ã¿ã ãã£ã«ã¿ãªã³ã°ã«ãŒã«ãé©çšãã
- ãã¹ãŠã®ãããã¯ãŒã¯ãªã¯ãšã¹ãããã°ã«èšé²ãã
- æ¢åã®ã»ãã¥ãªãã£ã€ã³ãã©ã¹ãã©ã¯ãã£ãšçµ±åãã
{
"sandbox": {
"network": {
"httpProxyPort": 8080,
"socksProxyPort": 8081
}
}
}
æ¢åã®ã»ãã¥ãªãã£ããŒã«ãšã®çµ±å
ãµã³ãããã¯ã¹åããã bash ããŒã«ã¯ä»¥äžãšé£æºããŸãã
- èš±å¯ã«ãŒã«ïŒèš±å¯èšå® ãšçµã¿åãããŠå€å±€é²åŸ¡ãå®çŸããŸã
- éçºã³ã³ããïŒdev containers ãšå ±ã«äœ¿çšããŠè¿œå ã®åé¢ãå®çŸããŸã
- ãšã³ã¿ãŒãã©ã€ãºããªã·ãŒïŒç®¡çèšå® ãéããŠãµã³ãããã¯ã¹èšå®ã宿œããŸã
ãã¹ããã©ã¯ãã£ã¹
- å¶éçã«éå§ïŒæå°éã®èš±å¯ã§éå§ããå¿ èŠã«å¿ããŠæ¡åŒµããŸã
- ãã°ãç£èŠïŒãµã³ãããã¯ã¹éåã®è©Šã¿ã確èªããŠãClaude Code ã®ããŒãºãçè§£ããŸã
- ç°å¢åºæã®èšå®ã䜿çšïŒéçºç°å¢ãšæ¬çªç°å¢ã§ç°ãªããµã³ãããã¯ã¹ã«ãŒã«ã䜿çšããŸã
- èš±å¯ãšçµã¿åãããïŒå æ¬çãªã»ãã¥ãªãã£ã®ããã«ãµã³ãããã¯ã¹åã IAM ããªã·ãŒãšå ±ã«äœ¿çšããŸã
- èšå®ããã¹ãïŒãµã³ãããã¯ã¹èšå®ãæ£åœãªã¯ãŒã¯ãããŒããããã¯ããªãããšã確èªããŸã
ãªãŒãã³ãœãŒã¹
ãµã³ãããã¯ã¹ã©ã³ã¿ã€ã ã¯ãç¬èªã®ãšãŒãžã§ã³ããããžã§ã¯ãã§äœ¿çšããããã®ãªãŒãã³ãœãŒã¹ npm ããã±ãŒãžãšããŠå©çšå¯èœã§ããããã«ãããããåºã AI ãšãŒãžã§ã³ãã³ãã¥ããã£ãããå®å šã§å®å šãªèªåŸã·ã¹ãã ãæ§ç¯ã§ããŸããããã¯ããµã³ãããã¯ã¹åãããä»ã®ããã°ã©ã ããµã³ãããã¯ã¹åããããã«ã䜿çšã§ããŸããããšãã°ãMCP ãµãŒããŒããµã³ãããã¯ã¹åããã«ã¯ã以äžãå®è¡ã§ããŸãã
npx @anthropic-ai/sandbox-runtime <command-to-sandbox>
å®è£ ã®è©³çްãšãœãŒã¹ã³ãŒãã«ã€ããŠã¯ãGitHub ãªããžã㪠ãåç §ããŠãã ããã
å¶éäºé
- ããã©ãŒãã³ã¹ãªãŒããŒãããïŒæå°éã§ãããäžéšã®ãã¡ã€ã«ã·ã¹ãã æäœã¯ãããã«é ããªãå¯èœæ§ããããŸã
- äºææ§ïŒç¹å®ã®ã·ã¹ãã ã¢ã¯ã»ã¹ãã¿ãŒã³ãå¿ èŠãšããããŒã«ã®äžã«ã¯ãèšå®èª¿æŽãå¿ èŠãªå Žåãããµã³ãããã¯ã¹å€ã§å®è¡ããå¿ èŠãããå ŽåããããŸã
- ãã©ãããã©ãŒã ãµããŒãïŒmacOSãLinuxãWSL2 ããµããŒãããŸããWSL1 ã¯ãµããŒããããŠããŸããããã€ãã£ã Windows ãµããŒãã¯èšç»äžã§ãã
ãµã³ãããã¯ã¹åãã«ããŒããŠããªããã®
ãµã³ãããã¯ã¹ã¯ Bash ãµãããã»ã¹ãåé¢ããŸããä»ã®ããŒã«ã¯ç°ãªãå¢çã®äžã§åäœããŸãã
- çµã¿èŸŒã¿ãã¡ã€ã«ããŒã«ïŒReadãEditãWrite ã¯ãµã³ãããã¯ã¹ãéããŠå®è¡ããã®ã§ã¯ãªããèš±å¯ã·ã¹ãã ãçŽæ¥äœ¿çšããŸããèš±å¯ ãåç §ããŠãã ããã
- ã³ã³ãã¥ãŒã¿äœ¿çšïŒClaude ã macOS ã§ã¢ããªãéããŠã¹ã¯ãªãŒã³ãå¶åŸ¡ããå Žåãåé¢ãããç°å¢ã§ã¯ãªãå®éã®ãã¹ã¯ãããã§å®è¡ãããŸããã¢ããªããšã®èš±å¯ããã³ãããåã¢ããªã±ãŒã·ã§ã³ãã²ãŒãããŸããCLI ã§ã®ã³ã³ãã¥ãŒã¿äœ¿çš ãŸã㯠Desktop ã§ã®ã³ã³ãã¥ãŒã¿äœ¿çš ãåç §ããŠãã ããã
é¢é£é ç®
- Security - å æ¬çãªã»ãã¥ãªãã£æ©èœãšãã¹ããã©ã¯ãã£ã¹
- Permissions - èš±å¯èšå®ãšã¢ã¯ã»ã¹å¶åŸ¡
- Settings - å®å šãªèšå®ãªãã¡ã¬ã³ã¹
- CLI reference - ã³ãã³ãã©ã€ã³ãªãã·ã§ã³