> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ポリシー リファレンス

> サンドボックス ポリシーの各フィールドを、タイプ、デフォルト、検証ルールとともに説明します。

このページでは、サンドボックスポリシーのすべてのフィールドを説明します。ポリシーは、マネージドランナー上で `policy` フィールドとして保持され、クラスターは最大で 1 つのランナーをホストするため、1 つのポリシーが 1 つのクラスターを管理します。

タスク指向の手順ガイドについては、[サンドボックスポリシーを設定する](/ja/products/sandboxes/profiles/configure) を参照してください。実例については、[ポリシーの例](/ja/products/sandboxes/profiles/profile-examples) を参照してください。

<h2 id="top-level-fields">
  トップレベルフィールド
</h2>

| Field | タイプ | Description |
| - | - | - |
| `display_name` | string | このポリシーが表すポスチャーの、人が読みやすい名前。 |
| `base` | オブジェクト | サンドボックスの spec より前に適用される、ランタイムのデフォルトとアタッチメント。[`base`](#base) を参照してください。 |
| `constraints` | `PolicyConstraints` | 解決済みの spec に対して検証される、型付きのクランプ。[`constraints`](#constraints) を参照してください。 |

空のポリシーも有効で、制限が一切ないポスチャーを宣言します。`base` と `constraints` はどちらもオプションです。そのため、クラスターのポスチャーは常に明示的に宣言され、意図せず継承されることはありません。

<h2 id="resolution-order">
  解決順序
</h2>

サンドボックスは2つの段階で解決されます。

1. **Base.** ランタイムのデフォルト、`base`、サンドボックスの spec の順に適用されます。個々の値についてはサンドボックスの値が優先されます。`base` のリスト型のアタッチメントは常に適用されます。
2. **Constraints.** クランプは、完全に解決された spec に対して検証されます。違反があった場合は拒否され、暗黙的に書き換えられることはありません。

制約は送信された spec ではなく解決後の spec に対して検証を行うため、`base` が指定した値も、サンドボックスが指定した値と同じ条件でチェックされます。

<h2 id="base">
  `base`
</h2>

ランタイムのデフォルトとアタッチメントのフラグメントです。Kubernetes ランナー上では、これは Pod spec のフラグメントです。

`base` は、サンドボックスが宣言すべきではないインフラストラクチャー設定が存在する場所です: スケジューラー、ノードセレクター、トレランス、優先度クラス、トポロジスプレッド、サービスアカウント、イメージプルシークレット、プラットフォームボリューム、DNS 設定、およびピン留めされたアノテーションなどの Pod メタデータです。セキュリティ上重要なフィールドは、 `affinity`、Pod およびコンテナーの `securityContext`、 `runtimeClassName`、および `initContainers` を含め、即座に拒否されます。

<h2 id="constraints">
  `constraints`
</h2>

`PolicyConstraints` は、ポリシーが強制する型付きのクランプをグループ化します。各グループはオプションで、省略されたグループは制限を適用しません。

| グループ | タイプ | 管理対象 |
| - | - | - |
| `resources` | `ResourceConstraints` | CPU、メモリ、GPUの境界とデフォルト。 |
| `image` | `ImageConstraints` | サンドボックスが実行できるイメージ。 |
| `network` | `NetworkConstraints` | 外向き通信およびイングレスの許可リストとデフォルト。 |
| `security` | `SecurityConstraints` | 特権、ケーパビリティ、分離。 |
| `instance` | `InstanceConstraints` | サンドボックスが配置可能なノードインスタンスタイプ。 |
| `lifecycle` | `LifecycleConstraints` | サンドボックスの存続可能期間。 |
| `metadata` | `MetadataConstraints` | アノテーションのキーと数。 |
| `volumes` | `VolumeConstraints` | ストレージメディアとボリュームごとのサイズ。 |

<h2 id="resourceconstraints">
  `ResourceConstraints`
</h2>

| フィールド | タイプ | 説明 |
| - | - | - |
| `max_cpu` | string | コンテナーがリクエストできるCPUの最大値。Kubernetesのquantityとして指定します。 |
| `max_memory` | string | コンテナーがリクエストできるメモリの最大値。 |
| `min_cpu` | string | コンテナーがリクエストできるCPUの最小値。 |
| `min_memory` | string | コンテナーがリクエストできるメモリの最小値。 |
| `default_cpu` | string | サンドボックスがリクエストしない場合に適用されるCPU。 |
| `default_memory` | string | サンドボックスがリクエストしない場合に適用されるメモリ。 |
| `max_gpu_count` | int64 | サンドボックスがリクエストできるGPUの最大数。 |
| `cpu_ceiling` | string | サンドボックスの解決済み総CPUの上限。 |
| `memory_ceiling` | string | サンドボックスの解決済み総メモリの上限。 |
| `require_limits` | bool | trueの場合、CPUとメモリの両方の制限を宣言していないサンドボックスを拒否します。 |

上限は最大値とは異なります。`max_cpu`は1つのコンテナーのリクエストを制限しますが、`cpu_ceiling`は解決済みの合計を制限します。これは`base`が独自のコンテナーを提供する場合に重要です。

<h2 id="imageconstraints">
  `ImageConstraints`
</h2>

| フィールド | タイプ | 説明 |
| - | - | - |
| `allowed_registries` | string list | サンドボックスのイメージの取得元として許可するレジストリ。空の場合はすべて許可されます。 |
| `allowed_images` | string list | サンドボックスで実行を許可するイメージ (完全一致) 。空の場合はすべて許可されます。 |

<h2 id="networkconstraints">
  `NetworkConstraints`
</h2>

ネットワーク制約は、サンドボックスがリクエストできるアクセスの許可リストを定義します。サンドボックスが外向き通信を宣言した場合、ポリシーはその宣言を拡張せずに、受け入れるか拒否するかを判断します。サンドボックスが外向き通信を宣言しない場合は、サンドボックスで `deny_egress` が設定されていない限り、ポリシーによって `default_egress` が適用されます。プラットフォームの DNS とストレージへのアクセスは別途付与されます。

| フィールド | タイプ | 説明 |
| - | - | - |
| `allowed_egress` | `EgressRule` リスト | 外向き通信の許可リストです。サンドボックスの作成時にチェックされます。空でない場合、宣言されたすべてのルールがこのリストの範囲内に収まる必要があります。空の場合は、宣言可能なものがすべて許可されます。 |
| `default_egress` | `EgressRule` リスト | サンドボックスが外向き通信を宣言せず、かつ `deny_egress` を設定していない場合に適用されます。宣言が 1 つでもあれば、全体がその宣言に置き換えられます。`allowed_egress` の範囲内に収まる必要があり、`https_hostname` ルールを含めることはできません。 |
| `allowed_ingress` | `IngressRule` リスト | 可視性が `CUSTOM` のポートに対するイングレスの許可リストです。サンドボックスの作成時にチェックされます。空でない場合、宣言されたすべてのルールがこのリストの範囲内に収まる必要があります。空の場合は、宣言可能なものがすべて許可されます。 |
| `default_ingress` | `IngressRule` リスト | サンドボックスが可視性 `CUSTOM` のポートを公開し、イングレスを宣言せず、かつ `deny_ingress` を設定していない場合に適用されます。明示的なイングレスルールがあれば、全体がそのルールに置き換えられます。`allowed_ingress` の範囲内に収まる必要があります。 |
| `deny_https_hostname_rules` | bool | true の場合、`allowed_egress` およびサンドボックスのリクエストに含まれる `https_hostname` ルールを拒否します。DNS クエリや、CIDR ルールで許可された HTTPS 通信はブロックしません。 |
| `dns_egress` | `DNSEgressMode` | UDP/TCP ポート 53 の外向き DNS トラフィックを制御します。指定しない場合のデフォルトは `DNS_EGRESS_MODE_ALLOW` です。サンドボックスは `DNS_EGRESS_MODE_DENY` を選択できますが、ポリシーで `DENY` が必須とされている場合は `ALLOW` をリクエストできません。 |

許可リストが空でない場合、包含関係は送信先またはソースのタイプとポートに基づいてチェックされます。宣言された CIDR は、許可された CIDR 範囲を合わせた範囲内、または `any` ルールの範囲内に収まる必要があります。テナントスコープを宣言するには、一致するテナントルールまたは `any` ルールが必要です。また、`any` を宣言するには `any` ルールが必要です。

<h3 id="egressrule">
  `EgressRule`
</h3>

各ルールで指定する送信先は 1 つだけです。必要に応じて、ポートで絞り込むこともできます。

| フィールド | タイプ | 説明 |
| - | - | - |
| `cidr` | `CidrBlock` | アドレス範囲。除外範囲を任意で指定できます。 |
| `https_hostname` | string | HTTPS ホスト名。完全一致で指定するか、`*.example.com` のように左端の 1 つのラベルだけをワイルドカードにして指定します。ホスト名ベースの HTTPS ルールをサポートするランナーが必要です。`allowed_egress` で `*` を指定すると、任意のホスト名の宣言が許可されます。 |
| `https_hostname_except` | string のリスト | このルールから除外するホスト名。`allowed_egress` 内で `https_hostname` と併用する場合にのみ有効です。`*` 以外は同じホスト名パターンを使用できます。 |
| `tenant` | `TenantScope` | 関係性に基づいて選択される他のサンドボックス。 |
| `any` | bool | プラットフォーム内部の範囲を除く、到達可能なすべての送信先。他のサンドボックスやクラスター内のワークロードに到達するには、tenant ルールまたは selector ルールを使用してください。 |
| `selector` | `SelectorBlock` | ラベルで選択されるワークロード。 |
| `ports` | `PortRange` のリスト | ルールを適用するポート。省略するとすべてのポートが対象になります。ただし、`https_hostname` ルールで許可されるのは TCP 443 のみです。 |

ホスト名ルールで許可されるのは HTTPS アクセスであり、DNS クエリは対象外です。`allowed_egress` が空でない場合、宣言するホスト名は、除外を適用した後の許可済みホスト名パターン、または `any` ルールのいずれかに当てはまる必要があります。CIDR のみで構成された許可リストでは、ホスト名を宣言できません。再利用するホスト名のグラントは、`default_egress` ではなく [サンドボックステンプレート](/ja/products/sandboxes/profiles/templates) に記述してください。

`dns_egress` は、UDP/TCP ポート 53 への外向き通信を個別に制御します。`DNS_EGRESS_MODE_ALLOW` は、プラットフォームのリゾルバーへのアクセスを許可します。その他のリゾルバーを使用するには、外向き通信ルールが必要です。`DNS_EGRESS_MODE_DENY` は、他のルールで許可されている場合でも、ポート 53 への外向き通信をブロックします。ただし、ローカルで応答されるルックアップや、HTTPS など許可されている他のトランスポートを経由する DNS はブロックされません。

<h3 id="ingressrule">
  `IngressRule`
</h3>

| Field | タイプ | Description |
| - | - | - |
| `cidr` | `CidrBlock` | オプションの 除外 を含むアドレス範囲。 |
| `tenant` | `TenantScope` | 関係によって選択された他のサンドボックス。 |
| `any` | bool | 任意のソース。 |
| `ports` | `PortRange` リスト | ルールが適用されるポート。省略すると、可視性が `CUSTOM` のすべてのポートが対象になります。 |

イングレス ルールはソースを名前で指定することはありません。インバウンドパケットには名前が含まれていないためです。

<h3 id="cidrblock">
  `CidrBlock`
</h3>

| フィールド | タイプ | 説明 |
| - | - | - |
| `cidr` | string | 必須。アドレス範囲、例: `10.0.0.0/8`。 |
| `except` | string list | `cidr` から切り出された範囲。除外は自身のルールのみを狭めます。 |

<h3 id="portrange">
  `PortRange`
</h3>

| フィールド | タイプ | 説明 |
| - | - | - |
| `protocol` | string | オプション。デフォルトは TCP。 |
| `port` | int32 | 必須。ポート、または範囲の開始。 |
| `end_port` | int32 | オプション。範囲の終了。 |

<h3 id="tenantscope">
  `TenantScope`
</h3>

| Value | 選択対象 |
| - | - |
| `TENANT_SCOPE_SAME_USER` | 同じユーザーが所有するサンドボックス。 |
| `TENANT_SCOPE_SAME_ORG` | 同じ組織内のサンドボックス。 |
| `TENANT_SCOPE_SANDBOX_NETWORK` | 同じサンドボックスネットワーク上のサンドボックス。まだサポートされていません。この値を使用する外向き通信ルールは拒否されます。 |

<h3 id="selectorblock">
  `SelectorBlock`
</h3>

| フィールド | タイプ | 説明 |
| - | - | - |
| `pod_labels` | string map | 必須。送信先のPodに一致するラベル。 |
| `namespace_labels` | string map | オプション。送信先のnamespaceに一致するラベル。 |

一致判定はラベルペアの完全一致で行われますが、宣言側でラベルを追加することもできます。外向き通信の許可リストが空でない場合、宣言されたセレクターには、一致するセレクタールールのラベルペアがすべて含まれている必要があります。namespace ラベルは、両方のセレクターで省略するか、両方で指定する必要があります。指定する場合は、必要な namespace ラベルペアがすべて宣言側に含まれている必要があります。`any` ルールはセレクターには適用されませんが、許可リストが空の場合はセレクターを宣言できます。

<h2 id="securityconstraints">
  `SecurityConstraints`
</h2>

| フィールド | タイプ | 説明 |
| - | - | - |
| `allow_privileged` | bool | コンテナーが特権モードで実行できるかどうか。 |
| `allowed_capabilities` | string list | コンテナーが追加できるLinuxのケーパビリティ。 |
| `allowed_seccomp_profiles` | string list | 許可されるseccompプロフィール (例: `RuntimeDefault` や `Unconfined`) 。 |
| `allow_host_network` | bool | サンドボックスがホストのネットワークnamespaceを使用できるかどうか。非推奨で削除予定。 |
| `allow_host_pid` | bool | サンドボックスがホストのPIDnamespaceを使用できるかどうか。非推奨で削除予定。 |
| `allowed_runtime_classes` | string list | サンドボックスがピン留めできるランタイムクラス。フェイルクローズド: 空の場合は一切のピン留めを許可しない。 |
| `default_cpu_runtime_class` | string | ピン留めを行わないCPUサンドボックスに適用されるランタイムクラス。 |
| `default_gpu_runtime_class` | string | ピン留めを行わないGPUサンドボックスに適用されるランタイムクラス。 |

`allowed_runtime_classes` は、空が「何もなし」を意味する唯一のリストであり、「何でも」を意味するわけではない。サンドボックスは、明示的に指定したランタイムクラスのみを選択できる。

ホストに到達する設定はポリシーのみで、サンドボックスの spec には表示されない。使用する分離方式に関係なく。

<h2 id="instanceconstraints">
  `InstanceConstraints`
</h2>

| フィールド | タイプ | 説明 |
| - | - | - |
| `allowed_instance_types` | string list | サンドボックスが配置可能なノードのインスタンスタイプ。空の場合はすべてを許可。 |

<h2 id="lifecycleconstraints">
  `LifecycleConstraints`
</h2>

| Field | タイプ | Description |
| - | - | - |
| `default_lifetime_seconds` | int32 | サンドボックスが指定しない場合に適用される有効期間。 |

ポリシーは有効期間の上限を持ちません。プラットフォームの最大値 (現在30日) がすべてのサンドボックスを制限します：それを超える作成リクエストは拒否されます。`max_lifetime_seconds` フィールドはポリシードキュメントから削除され、`cwic` はそれを含むポリシーを拒否します。

<h2 id="metadataconstraints">
  `MetadataConstraints`
</h2>

| Field | タイプ | Description |
| - | - | - |
| `denied_annotation_prefixes` | string list | 拒否されるアノテーションキーの接頭辞。 |
| `max_annotation_count` | int32 | サンドボックスが設定できるアノテーションの最大数。`0` は制限なしを意味します。 |

<h2 id="volumeconstraints">
  `VolumeConstraints`
</h2>

| フィールド | タイプ | 説明 |
| - | - | - |
| `allowed_media` | `StorageMedium` list | 許可するストレージ メディア。空の場合はすべて許可されます。 |
| `max_size` | string | ボリュームあたりの最大サイズ (例: `100Gi`) 。 |

<h3 id="storagemedium">
  `StorageMedium`
</h3>

| Value | Description |
| - | - |
| `STORAGE_MEDIUM_UNSPECIFIED` | プラットフォームのデフォルトで、ディスクバックアップです。 |
| `STORAGE_MEDIUM_DISK` | ディスクバックアップ。 |
| `STORAGE_MEDIUM_MEMORY` | RAMバックアップで、コンテナーのメモリにカウントされます。 |

`allowed_media` から `STORAGE_MEDIUM_MEMORY` を省略して、RAMバックアップのボリュームを禁止します。

<h2 id="validation-rules">
  検証ルール
</h2>

ポリシーは、以下のいずれかに該当する場合に拒否されます：

* エンコードされたドキュメントが256 KiBを超える。
* ポリシーがnullです。設定されたポリシーはクリアできず、置き換えることのみ可能です。
* `default_egress` に `https_hostname` ルールが含まれている。
* デフォルトの外向き通信ルールまたはイングレスルールが、対応する許可リストの範囲外にある。

<h2 id="see-also">
  関連項目
</h2>

* [サンドボックスポリシーを設定する](/ja/products/sandboxes/profiles/configure): このページの各グループについて、タスク別に手順を説明するガイドです。
* [ポリシーの例](/ja/products/sandboxes/profiles/profile-examples): 一般的なクラスターのポスチャーに対応する 5 つの完全なポリシーです。
* [ポリシーの概要](/ja/products/sandboxes/profiles/profiles): サンドボックスがポリシーに照らしてどのように解決されるかを説明します。
* [ランナーのデプロイと管理](/ja/products/sandboxes/operations/managed-runners): ポリシーの保存場所と設定方法を説明します。
