מדריך קלוד קוד בעברית

תיעוד 136

בחירת סביבת ארגז חול

השוו בין אפשרויות ארגז החול של Claude Code: כלי Bash עם ארגז חול מובנה, sandbox runtime, dev containers, Docker ומכונות וירטואליות. בחרו את הבידוד המתאים למודל האיום שלכם.

בידוד של Claude Code מגביל את מה שסשן יכול לקרוא, לכתוב ולהגיע אליו ברשת. זה חשוב במיוחד כשאתם נותנים ל-Claude לעבוד עם פחות בקשות הרשאה, מריצים אותו בלי השגחה, או מפנים אותו לקוד שאתם לא סומכים עליו במלואו.

Claude Code יכול לרוץ בכמה סוגים של סביבות מבודדות, מארגז חול קל לכל פקודה ועד מכונה וירטואלית נפרדת לגמרי. הדף הזה משווה ביניהן לפי מה שהן מבודדות ומה שהן דורשות, עוזר לבחור אחת למודל האיום שלכם, ומראה איך לאכוף את הבחירה הזו בארגון.

[!NOTE]

למודל האבטחה הרחב יותר, ראו אבטחה. לפריסות Agent SDK, ראו פריסה מאובטחת.

#השוואת גישות לארגז חול

שתי הגישות הראשונות בטבלה למטה רצות על מערכת ההפעלה המארחת בלי קונטיינרים. השאר ממקמות את Claude Code בתוך קונטיינר או מכונה וירטואלית.

גישהמה מבודדדורש Dockerמאמץ הקמה
כלי Bash עם ארגז חולפקודות של כלי Bash, PowerShell ו-Monitor ותהליכי הבן שלהןלאמינימלי ב-macOS, נמוך ב-Linux וב-WSL2
sandbox runtimeכל תהליך Claude Code, כולל כלי קבצים, שרתי MCP ו-hooksלאנמוך
קונטיינר פיתוחסביבת פיתוח מלאהכןבינוני
קונטיינר מותאםסביבת פיתוח מלאהכןבינוני עד גבוה
מכונה וירטואליתמערכת הפעלה מלאהלאגבוה
סשנים בענןמערכת הפעלה מלאה, באירוח של Anthropicלאאין. דורש מנוי Claude, וחשבון GitHub מחובר אלא אם מפעילים עם claude --cloud

כלי Bash עם ארגז חול מובנה ב-Claude Code ומגביל פקודות Bash. כלי הקבצים המובנים, שרתי MCP ו-hooks עדיין רצים ישירות על המארח. כל גישה אחרת בטבלה שמה את כל תהליך Claude Code בתוך גבול הבידוד, ולכן גם כלי הקבצים, שרתי MCP ו-hooks מוגבלים.

[!WARNING]

בידוד בארגז חול מצמצם את ההשפעה של פריצה, אבל הוא לא מבטל את הסיכון. כל גישה שמאפשרת יציאת רשת עדיין יכולה להדליף נתונים שהסוכן יכול לקרוא, וכל גישה שמחברת את תיקיית הפרויקט שלכם לכתיבה עדיין יכולה לשנות את הקוד הזה. עיינו במגבלות האבטחה לפני שאתם נשענים על ארגז חול כבקרה קשיחה.

הבידוד גם לא משנה את מה שנשלח למודל. ההנחיות שלכם והקבצים ש-Claude קורא מועברים ל-API של Anthropic או לספק שהגדרתם, בין אם יש ארגז חול ובין אם אין. ראו שימוש בנתונים לגבי מה ש-Claude Code שולח ואיך לצמצם את זה.

#בחירת גישה

התאימו את המטרה שלכם לשורה למטה, ואז קראו את מקטע הפירוט שאחריה.

אתם רוציםהתחילו עם
להפחית בקשות הרשאה במהלך עבודה יומיומית על המחשב שלכםכלי Bash עם ארגז חול, מוגדר עם /sandbox
לתת ל-Claude לעבוד בלי השגחה עם --dangerously-skip-permissions או מצב autoקונטיינר הפיתוח המוגדר מראש, כל קונטיינר או מכונה וירטואלית, או sandbox runtime
לבודד שרתי MCP ו-hooks בנוסף ל-Bash, בלי Dockersandbox runtime
לעבוד על מאגר לא מהימןמכונה וירטואלית ייעודית, או סשן בענן אם יש לכם מנוי Claude. GitHub לא נדרש כשמפעילים עם claude --cloud
לתקנן סביבת ארגז חול בצוותקונטיינר הפיתוח המוגדר מראש, מועתק אל המאגר שלכם
להשתמש ב-Claude Code ממכשיר בלי הקמה מקומיתסשן בענן, שדורש מנוי Claude וחשבון GitHub מחובר
לחייב בידוד לכל מפתח בארגוןאכיפת בידוד בארגון
לעבוד על מארח Windows מקוריקונטיינר או מכונה וירטואלית, או להריץ את ארגז החול של Bash בתוך WSL2

#איך הבידוד קשור למצבי הרשאה

מצבי הרשאה קובעים אם קריאת כלי רצה ואם אתם נשאלים קודם. בידוד מגביל את מה שפקודה יכולה לגשת אליו אחרי שהיא רצה. השניים עובדים יחד: כשמצב הרשאה מאפשר לפעולות לרוץ בלי לשאול אתכם, גבול בידוד מגביל את מה שהפעולות האלה יכולות להגיע אליו.

כשאתם מעבירים את --dangerously-skip-permissions, Claude פועל בלי לשאול אתכם קודם. הפעולות שאף מצב לא מאשר אוטומטית עדיין חלות.

בלי בקשות שתופסות טעויות, גבול הבידוד שאתם בוחרים הוא מה שמגן על המערכת. תמיד הריצו סשנים עם --dangerously-skip-permissions בתוך קונטיינר, מכונה וירטואלית, או sandbox runtime, כדי שגם כלי הקבצים, שרתי MCP ו-hooks יהיו בתוך הגבול. ב-Linux וב-macOS, Claude Code מסרב להתחיל עם הדגל הזה כשהוא רץ כ-root, אז הריצו את הקונטיינר, המכונה הווירטואלית או את sandbox runtime כמשתמש שאינו root.

מצב auto מחליף את הבקשה במסווג שבודק פעולות. המסווג הוא בקרה לכל פעולה, לא גבול בידוד, ולכן גבול בידוד עדיין מוסיף הגנה לעומק להרצות בלי השגחה, והוא לא נדרש באותו אופן כמו עבור --dangerously-skip-permissions.

כלי Bash עם ארגז חול לבדו מגביל רק פקודות מעטפת, ולכן הוא לא מספיק להרצות בלי השגחה מלאה באף אחד משני המצבים. אפשר לשלב גישות: הרצת כלי Bash עם ארגז חול בתוך קונטיינר או מכונה וירטואלית נותנת מגבלות פקודה ברמת מערכת ההפעלה מעל גבול הסביבה החיצוני. לאופן שבו ארגז החול של Bash עצמו מקיים יחס עם כללי הרשאה ומצבי הרשאה, ראו איך ארגז החול קשור להרשאות ולמצבי הרשאה.

#כלי Bash עם ארגז חול

[!NOTE]

האפשרות הזו לא תומכת ב-Windows מקורי. במארחי Windows, השתמשו ב-WSL2 או באחת מגישות הקונטיינר או המכונה הווירטואלית למטה.

כלי Bash עם ארגז חול מובנה ב-Claude Code. הוא משתמש ברכיבים בסיסיים של מערכת ההפעלה כדי להגביל את הגישה למערכת הקבצים ולרשת של פקודות Bash, PowerShell ו-Monitor ש-Claude מריץ.

הריצו את הפקודה /sandbox כדי לפתוח את לוח ארגז החול ולבחור מצב. המדריך Sandboxing מכסה את מצבי האישור, את גבול ברירת המחדל, ואיך להרחיב או לצמצם אותו.

ארגז החול לכל פקודה לא מכסה את כל מה שרץ בסשן:

כדי לשים כלי מובנים, שרתי MCP ו-hooks מאחורי גבול אחד של מערכת ההפעלה, הריצו את כל תהליך Claude Code בתוך sandbox runtime, קונטיינר הפיתוח, או קונטיינר מותאם.

#sandbox runtime

חבילת @anthropic-ai/sandbox-runtime עוטפת תהליך שלם באותו בידוד Seatbelt או bubblewrap שארגז החול המובנה של Bash משתמש בו. הרצת Claude Code דרך ה-runtime מגבילה את הכלים, ה-hooks ושרתי MCP של הסשן, וגם פקודות מעטפת. ה-runtime הוא תצוגה מקדימה מחקרית בגרסת beta, ופורמט ההגדרות שלו עשוי להשתנות ככל שהחבילה מתפתחת.

המקטע הזה מכסה את מה שאתם מגדירים ואת מה שה-runtime אוכף בעצמו. לפריסת ה-runtime ביישומי Agent SDK, ראו את מדריך הפריסה המאובטחת.

#הגדרה והפעלה של ה-runtime

ב-Linux וב-WSL2, ה-runtime נשען על אותן חבילות bubblewrap ו-socat כמו ארגז החול המובנה, ובנוסף על ripgrep, ש-Claude Code אורז אבל ה-runtime העצמאי מוצא מתוך ה-PATH שלכם. התקינו את bubblewrap ואת socat כפי שמתואר בהקמה ב-Linux וב-WSL2, ואת ripgrep ממנהל החבילות של ההפצה שלכם. ב-macOS אין צורך בחבילות נוספות. ה-runtime משתמש שם בארגז החול המובנה Seatbelt.

כברירת מחדל ה-runtime חוסם גישה לרשת ומגביל כתיבה לקבוצה קטנה של נתיבי runtime מובנים, אז הגדירו אותו לפני שמפעילים את Claude Code דרכו. שימו את ההגדרות ב-~/.srt-settings.json, או בקובץ שאתם מעבירים עם --settings. ה-README של החבילה מתעד את סכמת ההגדרות.

התירו גישת כתיבה לפחות אל:

  • תיקיית הפרויקט שלכם.
  • נתיבי ההגדרות של Claude Code, ~/.claude ו-~/.claude.json.
  • התיקייה שבה Claude Code כותב קובצי runtime. אלא אם הגדרתם את CLAUDE_CODE_TMPDIR, התיקייה הזו היא:
    • Linux ו-WSL2: /tmp
    • macOS: /private/tmp. /tmp הוא symlink לתיקייה הזו, ו-Seatbelt בודק את הנתיב המפוענח.

התירו את דומייני הרשת שהסשן שלכם צריך:

  • api.anthropic.com, או נקודת הקצה של הספק שהגדרתם. אצל ספק צד שלישי, השאירו גם את api.anthropic.com: בדיקת הבטיחות של דומיין WebFetch עדיין קוראת אליו כברירת מחדל, אלא אם הגדרתם skipWebFetchPreflight: true.
  • claude.ai ו-platform.claude.com, שהתחברות OAuth ורענון אסימון דורשים. הרצות שמאומתות עם מפתח API יכולות לוותר על שני אלה.

ב-Linux וב-WSL2, ה-runtime מחיל הרשאות כתיבה רק על נתיבים שכבר קיימים. בסביבה חדשה, צרו את נתיבי ההגדרות של Claude Code לפני ההפעלה הראשונה:

mkdir -p ~/.claude && { [ -f ~/.claude.json ] || echo '{}' > ~/.claude.json; }

התקינו את ה-runtime באופן גלובלי, תחת prefix שנמצא מחוץ לכל נתיב שאתם מתירים לכתיבה:

npm install -g @anthropic-ai/sandbox-runtime

אחרי שקובץ ההגדרות במקום, הפעילו את Claude Code דרך ה-runtime מתיקיית הפרויקט שלכם:

srt claude

Claude Code מתחיל בתוך ארגז החול עם גבולות מערכת הקבצים והרשת שהגדרתם. אותה פקודת srt עובדת גם לארגז חול של שרתי MCP עצמאיים או תהליכי עזר אחרים.

#מה ה-runtime חוסם בעצמו

ה-runtime חוסם את הכתיבות בסיכון הגבוה ביותר בלי שום הגדרה מכם:

  • denyWrite גובר על allowWrite.
  • בשורש הפרויקט, ה-runtime חוסם את .git/hooks, חוסם את .git/config אלא אם הגדרתם filesystem.allowGitConfig: true, וחוסם את .mcp.json, .claude/commands, .claude/agents וקובצי הפעלה של המעטפת.
  • ב-macOS, החסימות האלה נבדקות כשכתיבה מתרחשת, ולכן הן מכסות גם קבצים ומאגרים מקוננים שנוצרים במהלך הסשן.
  • ב-Linux וב-WSL2, ה-runtime בונה את רשימת החסימה פעם אחת בהפעלה. הוא מכסה באופן אמין את שורש הפרויקט, עושה סריקה רדודה במאמץ סביר לעותקים מקוננים שקיימים בנקודה הזו, ולא מכסה שום דבר שהסשן יוצר אחר כך, כמו git init, git clone או scaffolding. מקטע mandatoryDenySearchDepth ב-README מתאר את הסמנטיקה המדויקת של הסריקה.
  • אם ~/.srt-settings.json לא קיים ואתם לא מעבירים --settings, ה-runtime מתחיל בכל זאת. הוא חוסם גישה לרשת ומגביל כתיבה לנתיבי runtime מובנים כמו /tmp/claude, ~/.npm/_logs ו-~/.claude/debug. אל תתייחסו להפעלה נקייה כהוכחה שההגדרות שלכם נטענו.
  • אם קובץ ההגדרות קיים אבל ריק, לא קריא או לא תקין, ה-runtime מסרב להתחיל, בין אם זה ~/.srt-settings.json ובין אם קובץ שאתם מעבירים עם --settings. הוא גם מסרב להתחיל אם קובץ ה---settings לא קיים.

הרשאות הכתיבה שלכם עדיין כוללות נתיבים אחרים ש-Claude Code טוען מהם הגדרות, אז חסמו אותם עם denyWrite. סשן בארגז חול שיכול לכתוב אליהם יכול לשמור hooks, כללי הרשאה או שרתי MCP שירוצו בלי ארגז חול בפעם הבאה שתפעילו את Claude Code.

#אחרי הרצות בלי השגחה

בדקו את הנתיבים שהשארתם ניתנים לכתיבה. ב-Linux וב-WSL2, בדקו גם כל דבר שהסשן יצר.

#קונטיינרי פיתוח

קונטיינר פיתוח מריץ את Claude Code בתוך קונטיינר Docker ש-VS Code או עורך תואם מנהל, עם הפרויקט שלכם מחובר פנימה. אפשר להגדיר קונטיינר משלכם עם תיקיית .devcontainer/ במאגר.

מאגר claude-code מפרסם קונטיינר פיתוח לדוגמה עם חומת אש iptables מסוג default-deny כנקודת התחלה. העתיקו אותו אל המאגר שלכם והתאימו את רשימת ההיתרים של חומת האש, את תמונת הבסיס ואת גרסת Claude Code הנעוצה לסביבה שלכם. מכיוון שחומת האש חוסמת יציאה שלא אושרה, הגדרה כזו תומכת בהרצת Claude Code עם --dangerously-skip-permissions לעבודה בלי השגחה.

#קונטיינר מותאם

אפשר להריץ את Claude Code בכל תמונת קונטיינר Docker או OCI עם מדיניות רשת, אמצעי אחסון מחוברים ופרופילי seccomp משלכם. זה המסלול הנפוץ ביותר לארגונים עם תשתית קונטיינרים או מריצי CI קיימים.

כמה שירותי ארגז חול מנוהלים וביצוע מרחוק יכולים לארח עבורכם את הקונטיינר. אותה רשימת בדיקה חלה כמו על כל קונטיינר שאתם מפעילים: בדקו מה מחובר לכתיבה, אילו אישורים ואסימונים נגישים בתוכו, ומה מדיניות יציאת הרשת מתירה.

אפשר לשלב את ארגז החול המובנה של Bash בתוך הקונטיינר למגבלות לכל פקודה. קונטיינרים בלי הרשאות root צריכים את enableWeakerNestedSandbox, כפי שמתואר בBubblewrap נכשל בהתחלה בתוך קונטיינר.

#מכונה וירטואלית

מכונה וירטואלית ייעודית נותנת את ההפרדה החזקה ביותר, עם ליבה משלה, ובפריסות ענן או microVM גם עם חומרה וירטואלית משלה. האפשרויות כוללות מופעי ענן, היפרוויזורים מקומיים ו-microVM כמו Firecracker. השתמשו בגישה הזו כשאתם בודקים קוד לא מהימן, כשמדיניות האבטחה שלכם דורשת הפרדה ברמת הליבה בין הסוכן למארח, או כשאין גישה ברמת המארח שעומדת בדרישות התאימות שלכם.

Docker Sandboxes מספק microVM עם daemon של Docker משלו וסנכרון סביבת עבודה, שיכול להריץ את Claude Code על כל מארח שבו Docker Sandboxes מותקן. זה מוצר עצמאי וחינמי מ-Docker, והוא לא דורש את Docker Desktop.

#סשנים בענן

סשן בענן רץ במכונה וירטואלית מבודדת שמנוהלת על ידי Anthropic. פרוקסי רשת אוכף רשימת היתרים כברירת מחדל, ופרוקסי נפרד מחזיק את אסימון GitHub שלכם מחוץ לארגז החול תוך שהוא מנפיק אישורי גישה מוגבלי היקף לגישה למאגר בתוכו. סשנים שהארגון שלכם מנתב אל סביבה באירוח עצמי רצים על תשתית שאתם מספקים, ושם הבידוד, בקרת היציאה ואישורי git הם באחריות הפריסה שלכם.

השתמשו בגישה הזו כשאתם רוצים בידוד מלא של מכונה וירטואלית בלי לספק תשתית בעצמכם, או כשאתם מאצילים משימות ממכשיר שאין בו סביבת פיתוח מקומית. זה דורש מנוי Claude. אלא אם אתם מפעילים מה-CLI, אתם צריכים גם חשבון GitHub מחובר כדי שארגז החול יוכל לשכפל את המאגר שלכם. כשמפעילים מה-CLI עם --cloud, Claude Code יכול לארוז ולהעלות את המאגר המקומי שלכם במקום זאת. ראו שימוש ב-Claude Code בענן לזמינות תוכניות ולאפשרויות אימות GitHub.

#אכיפת בידוד ברחבי הארגון

מפתחים יחידים יכולים לבחור בכל אחת מגישות ה-sandboxing שבדף הזה. מה שארגון יכול לאכוף, ובאילו כלים, תלוי בגישה:

  • ארגז חול Bash מובנה: הגישה היחידה ש-Claude Code אוכף בעצמו. העבירו את מפתחות ההגדרות sandbox דרך הגדרות מנוהלות, כקובץ שמנוהל על ידי ה-MDM שלכם או דרך הגדרות שמנוהלות בשרת ב-Claude.ai. ראו אכיפת sandboxing עם הגדרות מנוהלות למפתחות לפריסה ולאופן שבו מונעים ממפתחים להרחיב את המדיניות.
  • קונטיינרי פיתוח: בצעו commit של קונטיינר הפיתוח לדוגמה למאגרים שלכם כדי לתקנן את הסביבה בצוות. זו מוסכמה ולא גבול אכיפה, כי Claude Code לא מחייב קונטיינר. אם מפתחים לא אמורים להריץ את Claude Code מחוץ לו, אכפו זאת עם כלי ניהול המכשירים או כלי ה-allowlisting לתוכנה של הארגון.
  • קונטיינרים ומכונות וירטואליות מותאמים אישית: הפיצו את Claude Code דרך ה-image המאושרת והשתמשו בכלי ניהול המכשירים או בכלי ה-allowlisting לתוכנה של הארגון כדי למנוע התקנה מחוץ לה.

#ראו גם

הדפים האלה מכסים פרטי הגדרה ומדיניות לגישות ה-sandboxing שבדף הזה.

  • Sandboxing: הגדרת כלי Bash המובנה שרץ ב-sandbox
  • Dev container: קונטיינר הפיתוח של Docker שמוגדר מראש
  • Security: מודל האבטחה המלא של Claude Code
  • Secure deployment: הנחיות בידוד ליישומי Agent SDK
  • Settings: כל מפתחות ההגדרה של sandbox, כולל מסירה של הגדרות מנוהלות