# 限制公开访问
<subtitle>要求调用方使用令牌进行身份验证，才能访问沙箱的公开 URL。</subtitle>

默认情况下，沙箱的 [公开 URL](/docs/agent-sandbox/network/public-url.md) 可被任何知道它的人访问。对于敏感的工作负载，您可以要求调用方在任何请求到达内部服务之前，使用每个沙箱的令牌进行身份验证。

## 限制对沙箱 URL 的公开访问

默认情况下，沙箱 URL 是公开可访问的。您可以使用 `allow_public_traffic` 选项限制访问，要求进行身份验证：

```python
import requests
from ucloud_sandbox import Sandbox

# 创建限制公开访问的沙箱
sandbox = Sandbox.create(
    network={
        "allow_public_traffic": False
    }
)

# 沙箱有一个流量访问令牌
print(sandbox.traffic_access_token)

# 在沙箱内启动服务器
sandbox.commands.run("python -m http.server 8080", background=True)

host = sandbox.get_host(8080)
url = f"https://{host}"

# 不带令牌的请求将返回 403 失败
response1 = requests.get(url)
print(response1.status_code)  # 403

# 带令牌的请求将成功
response2 = requests.get(url, headers={
    'e2b-traffic-access-token': sandbox.traffic_access_token
})
print(response2.status_code)  # 200
```

当 `allow_public_traffic` 设置为假值时，所有对沙箱公开 URL 的请求都必须包含 `e2b-traffic-access-token` 头，其值来自 `sandbox.traffic_access_token`。
