> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 外部 URL

> Kubernetes デプロイで、ユーザーが外部 URL からファイルを追加できるようにし、クラスター内部のアドレスには到達できないようにします。

「From External URL」のファイル（および [インポート API](https://ayakaleaf-pro.mintlify.site/ja/on-premises/configuration/kubernetes/integrations/overleaf-import-api.md) や AI アシスタントの `web_fetch` がダウンロードするファイル）は、各 Ayakaleaf Pro Pod 内の **linked-url-proxy** サービスが取得します。このサービスは公開されていないアドレスを拒否するため、ユーザーがこれを経由して内部サービスを読み取ることはできません。この機能とその設定は [外部 URL](https://ayakaleaf-pro.mintlify.site/ja/on-premises/configuration/overleaf-toolkit/external-url.md) で説明しています。

| | |
| - | - |
| サービス | linked-url-proxy（各 Pod 内の `127.0.0.1:3066`）。`ENABLED_LINKED_FILE_TYPES` に `url` が含まれている場合、web がメニューを表示します |
| Pod → 外部 | ユーザーが指定した URL（任意のポート）、直接または `OVERLEAF_LINKED_URL_OUTBOUND_PROXY` 経由 |
| 状態 | なし |
| 定期ジョブ | なし：ファイルはユーザーが要求したときにのみ更新されます |

### 設定

```yaml title="30-config.yaml (additions)" wrap theme={null}
  ENABLED_LINKED_FILE_TYPES: project_file,project_output_file,url
  # Public addresses of your nodes and load balancer, see below
  OVERLEAF_LINKED_URL_BLOCKED_NETWORKS: 203.0.113.0/24 198.51.100.7/32
  # optional
  # OVERLEAF_LINKED_URL_ALLOWED_RESOURCES: ^https?://www\.example\.com/public/
  # OVERLEAF_LINKED_URL_OUTBOUND_PROXY: http://proxy.example.com:3128
```

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
```

### Kubernetes でブロックされるもの

プロキシは、パブリックなユニキャストアドレスではないすべてのアドレスを拒否します。対象は、ループバック、リンクローカル（クラウドのメタデータアドレス `169.254.169.254` を含む）、プライベート範囲 `10.0.0.0/8`、`172.16.0.0/12`、`192.168.0.0/16`、キャリアグレード NAT の範囲 `100.64.0.0/10`、およびそれらに対応する IPv6 アドレスです。kubeadm、flannel、Calico、およびほとんどのマネージドクラスターのデフォルトのように、Pod ネットワークや Service ネットワークがこれらの範囲にある場合は、設定なしでブロックされます。それらに解決される `redis` や `git-bridge` などのクラスター内の名前も同様です。

パブリックアドレスは許可されます。ノードやロードバランサーがパブリックアドレスを持つ場合は、それらを `OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` に追加して（スペースまたはカンマ区切り）、ユーザーがそれらを経由して NodePort やステータスページを取得できないようにしてください。

`OVERLEAF_LINKED_URL_OUTBOUND_PROXY` を設定している場合、ホスト名はそのプロキシが解決するため、チェックされるのは IP アドレスを含む URL のみです。内部ネットワークのブロックは、そのプロキシ自身で行う必要があります。

### 複数のレプリカ

追加の作業は不要です。各 Pod は自身の linked-url-proxy と同じ設定で取得します。

### Kubernetes でのテスト結果

Kubernetes 1.37 上で、3 つのレプリカ、flannel の Pod ネットワーク `10.244.0.0/16`、kubeadm の Service ネットワーク `10.96.0.0/12` の構成で、`OVERLEAF_LINKED_URL_BLOCKED_NETWORKS` を設定しなくても、プロキシは Service の ClusterIP、クラスター内の名前 `redis`、`garage`、`overleaf-1.overleaf-hl.overleaf.svc.cluster.local`、およびノードのアドレスからのダウンロードを拒否しました。インポート API を介したループバックとクラウドのメタデータアドレスの拒否、および AI アシスタントが `OVERLEAF_LINKED_URL_ALLOWED_RESOURCES` で許可されたページのみを読み取ることについても、エンドツーエンドテストに合格しています。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.