mirror of
https://github.com/langgenius/dify-docs.git
synced 2026-04-12 06:07:37 +07:00
93 lines
4.2 KiB
Plaintext
93 lines
4.2 KiB
Plaintext
---
|
||
title: DifySandbox
|
||
---
|
||
|
||
### はじめに
|
||
|
||
`DifySandbox(ディファイサンドボックス)`は、PythonやNode.jsなど複数のプログラミング言語に対応した、軽量・高速・安全なコード実行環境です。Dify Workflowの様々な要素(コードノード、テンプレート変換ノード、LLMノードのJinja2構文、ツールノードのコードインタプリターなど)の基盤となる実行環境として機能します。DifySandboxは、ユーザーが提供したコードを実行しつつ、システム全体のセキュリティを確保します。
|
||
|
||
### 特徴
|
||
- **複数言語対応**:DifySandboxはSeccompというシステムレベルのソリューションをベースに構築され、複数のプログラミング言語をサポートしています。現在はPythonとNode.jsに対応しています。
|
||
- **システムセキュリティ**:予期せぬセキュリティ侵害を防ぐため、特定のシステムコールのみを許可する許可リストポリシーを採用しています。
|
||
- **ファイルシステムの隔離**:ユーザーのコードは独立した隔離されたファイルシステム環境で実行されます。
|
||
- **ネットワーク隔離**:
|
||
- **DockerCompose環境**:専用のSandboxネットワークとプロキシコンテナを使用してネットワークアクセスを提供します。これにより、内部ネットワークのセキュリティを保ちつつ、柔軟なプロキシ設定が可能になります。
|
||
- **Kubernetes環境**:Egressポリシーを用いて直接ネットワーク隔離戦略を設定できます。
|
||
|
||
### インストール依存関係
|
||
|
||
DifySandboxプロジェクトをインストールおよび展開する前に、以下の依存関係要件を満たしていることを確認してください:
|
||
|
||
1. **システム依存関係**
|
||
|
||
Linuxディストリビューションに応じて、以下のコマンドを実行して必要なシステムコンポーネントをインストールします:
|
||
|
||
- Ubuntu/Debian
|
||
|
||
```bash
|
||
sudo apt-get update
|
||
sudo apt-get install pkg-config gcc libseccomp-dev git wget
|
||
```
|
||
|
||
- CentOS
|
||
|
||
```bash
|
||
sudo yum install pkgconfig gcc libseccomp-devel git wget
|
||
```
|
||
|
||
2. **Go言語環境**
|
||
|
||
Go開発環境をインストールします(Go 1.20.6以上を推奨):
|
||
|
||
```bash
|
||
# Go 1.20.6をインストール
|
||
sudo apt-get install -y golang-1.20.6
|
||
```
|
||
|
||
インストールを確認します:
|
||
|
||
```bash
|
||
go version # インストールされたGoバージョンを表示
|
||
```
|
||
|
||
3. **Python環境設定**
|
||
|
||
**サンドボックス環境の準備**
|
||
|
||
Python 3.10以上を推奨します。
|
||
|
||
**事前インストール済み依存関係管理**
|
||
|
||
DifySandboxには以下のPython依存関係があらかじめ設定されています:
|
||
|
||
- `http` - 基本的なネットワークライブラリ
|
||
- `jinja2` - LLMプロンプト処理用のテンプレートエンジン
|
||
- `requests` - HTTPクライアントライブラリ
|
||
|
||
**カスタム依存関係の追加**
|
||
|
||
追加のPython依存関係が必要な場合は、以下の手順に従ってください:
|
||
|
||
1. プロジェクトのルートディレクトリにある`dependencies/python-requirements.txt`ファイルを見つけます。
|
||
2. 必要なパッケージ名とバージョンをファイルに追加します。権限変更が必要な場合は、[FAQ](https://github.com/langgenius/dify-sandbox/blob/main/FAQ)を参照してください。
|
||
3. DifySandboxを再構築します。
|
||
|
||
<Warning>
|
||
新しい依存関係を追加すると、追加の権限要件が発生する可能性があります。セキュリティへの影響を慎重に評価してください。潜在的なセキュリティリスクを完全に制御できない場合は、権限設定を変更しないことをお勧めします。
|
||
</Warning>
|
||
|
||
### 貢献
|
||
|
||
`DifySandbox`の開発に参加する方法については、[貢献ガイド](contribution)をご参照ください。
|
||
|
||
{/*
|
||
Contributing Section
|
||
DO NOT edit this section!
|
||
It will be automatically generated by the script.
|
||
*/}
|
||
|
||
---
|
||
|
||
[このページを編集する](https://github.com/langgenius/dify-docs/edit/main/ja-jp/development/backend/sandbox/README.mdx) | [問題を報告する](https://github.com/langgenius/dify-docs/issues/new?template=docs.yml)
|
||
|