35* [`managed`](#managed):IdP グループ別の管理設定ポリシー35* [`managed`](#managed):IdP グループ別の管理設定ポリシー
36* [`telemetry`](#telemetry):オブザーバビリティスタックへの OTLP フォワーディング36* [`telemetry`](#telemetry):オブザーバビリティスタックへの OTLP フォワーディング
37* [`access_control`、`limits`、`timeouts`、`rate_limits`](#http-tuning):IP 許可/拒否、リクエストサイズ上限、アップストリーム初バイト到達時間、IP ごとのサインイン制限37* [`access_control`、`limits`、`timeouts`、`rate_limits`](#http-tuning):IP 許可/拒否、リクエストサイズ上限、アップストリーム初バイト到達時間、IP ごとのサインイン制限
38* [`load_test_mode`](#load_test_mode):モデルプロバイダーを呼び出さずにゲートウェイをロードテストする
38 39
39<h2 id="secret-expansion">40<h2 id="secret-expansion">
40 シークレット展開41 シークレット展開
55 `listen`56 `listen`
56</h3>57</h3>
57 58
58`listen` ブロックはゲートウェイがサービスを提供する場所を制御します。バインドアドレスとポート、外部から見えるオリジン、およびオプションの TLS 終了です。59`listen` ブロックは、ゲートウェイがサービスを提供する場所を制御します。バインドアドレスとポート、外部から見えるオリジン、およびオプションの TLS 終了を指定します。
59 60
60| フィールド | 必須 | 説明 |61| フィールド | 必須 | 説明 |
61| - | - | - |62| - | - | - |
62| `host` | いいえ | バインドアドレス。デフォルト `0.0.0.0`。 |63| `host` | いいえ | バインドアドレス。デフォルト `0.0.0.0`。 |
63| `port` | いいえ | バインドポート。デフォルト `8080`。 |64| `port` | いいえ | バインドポート。デフォルト `8080`。 |
64| `public_url` | `host` がループバックでない場合を除き必須 | 外部から見える `https://` オリジン。IdP の `redirect_uri` と検出メタデータを構築するために使用されます。`host` がループバックアドレスでない場合は常に必須です。TLS が ALB、Ingress、Cloud Run などのプロキシで終了するか、`tls` を通じてゲートウェイ自体で終了するかに関わらず必須です。ゲートウェイは `X-Forwarded-*` ヘッダーから独自のオリジンを導出することはありません。これらはクライアントがなりすまし可能です。これなしではブート失敗します。以下の `trusted_proxies` はクライアント IP 解決のみを制御します。また、[テレメトリ](#telemetry)を有効にするためにも必須です。ゲートウェイはこの URL からクライアントにプッシュする OTLP エンドポイントを構築するためです。 |65| `public_url` | `host` がループバックでない場合は必須 | 外部から見える `https://` オリジン。IdP の `redirect_uri` と検出メタデータを構築するために使用されます。`host` がループバックアドレスでない場合は常に必須です。TLS が ALB、Ingress、Cloud Run などのプロキシで終了するか、`tls` を通じてゲートウェイ自体で終了するかに関わらず必須です。ゲートウェイは `X-Forwarded-*` ヘッダーから独自のオリジンを導出することはありません。これらはクライアントがなりすまし可能です。これなしではブート失敗します。以下の `trusted_proxies` はクライアント IP 解決のみを制御します。また、[テレメトリ](#telemetry)を有効にするためにも必須です。ゲートウェイはこの URL からクライアントにプッシュする OTLP エンドポイントを構築するためです。 |
65| `tls.cert` / `tls.key` | いいえ | ゲートウェイが TLS を自身で終了する場合の PEM パス |66| `tls.cert` / `tls.key` | いいえ | ゲートウェイが TLS を自身で終了する場合の PEM パス |
66| `trusted_proxies` | いいえ | ゲートウェイの前にあるロードバランサーの CIDR または IP。設定されている場合、ゲートウェイはこれらのピアからのみ `X-Forwarded-For` を信頼し、IP ごとのレート制限と監査のために実際のクライアント IP を記録します。nginx の `set_real_ip_from` と同等です。`X-Forwarded-For` エントリが `ipv4:port` または `[ipv6]:port` として書かれている場合(一部のロードバランサーがそうするように)、ポートを削除して読み取られます。ポートが追加された括弧なしの IPv6 アドレスは、異なるアドレスとして読み取られるか、まったく読み取られない可能性があるため、そのフォームを書き込むプロキシのポートオプションをオフにしてください。 |67| `trusted_proxies` | いいえ | ゲートウェイの前にあるロードバランサーの CIDR または IP。設定されている場合、ゲートウェイはこれらのピアからのみ `X-Forwarded-For` を信頼し、IP ごとのレート制限と監査のために実際のクライアント IP を記録します。nginx の `set_real_ip_from` と同等です。`X-Forwarded-For` エントリが `ipv4:port` または `[ipv6]:port` として書かれている場合(一部のロードバランサーがそうするように)、ポートを削除して読み込まれます。ポートが付加されたブラケットなしの IPv6 アドレスは、異なるアドレスとして読み込まれるか、まったく読み込まれない可能性があるため、そのフォームを書き込むプロキシのポートオプションをオフにしてください。 |
67 68
68<h3 id="oidc">69<h3 id="oidc">
69 `oidc`70 `oidc`
75 76
76| フィールド | 必須 | 説明 |77| フィールド | 必須 | 説明 |
77| - | - | - |78| - | - | - |
78| `issuer` | はい | OIDC 検出ベース。`/.well-known/openid-configuration` で検出を提供する必要があります。本番環境では HTTPS を使用してください。ゲートウェイは `http://` 発行者を受け入れます。`http://localhost:8081` などのループバック発行者は、`CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` がゲートウェイの環境に設定されていない限り、[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary)によって拒否されます。 |79| `issuer` | はい | OIDC 検出ベース。`/.well-known/openid-configuration` で検出を提供する必要があります。本番環境では HTTPS を使用してください。ゲートウェイは `http://` 発行者を受け入れます。`http://localhost:8081` などのループバック発行者は、[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary)によって拒否されます。ただし、ゲートウェイの環境で `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` が設定されている場合を除きます。 |
79| `client_id` / `client_secret` | はい | OAuth クライアント登録から |80| `client_id` / `client_secret` | はい | OAuth クライアント登録から取得 |
80| `allowed_email_domains` | いいえ | `email` クレームがこれらのドメインのいずれかにない id\_token を拒否します。大文字と小文字を区別しません。マルチテナント IdP の設定ミスに対する多層防御です。この設定とは無関係に、`email_verified` クレームが明示的に `false` である id\_token は常に拒否されます。 |81| `allowed_email_domains` | いいえ | `email` クレームがこれらのドメインのいずれかに含まれていない id\_token を拒否します。大文字と小文字を区別しません。マルチテナント IdP の設定ミスに対する多層防御です。この設定とは無関係に、`email_verified` クレームが明示的に `false` である id\_token は常に拒否されます。 |
81| `allowed_groups` | いいえ | サインインを `groups_claim` に対してマッチされるこれらの IdP グループのメンバーに制限します。許可されたメールドメイン内のユーザーがこれらのグループのいずれにも属していない場合は拒否されます。IdP がグループクレームを発行する必要があります。マッチングは、そのクレーム内の値に対する正確で大文字と小文字を区別する文字列比較であり、ゲートウェイはネストされたグループを展開しません。サブグループのメンバーを許可するには、ここにサブグループをリストするか、IdP を設定してフラット化されたメンバーシップを発行してください。 |82| `allowed_groups` | いいえ | サインインをこれらの IdP グループのメンバーに制限します。`groups_claim` に対してマッチングされます。許可されたメールドメイン内にいるが、これらのグループのいずれにも属していないユーザーは拒否されます。IdP がグループクレームを発行する必要があります。マッチングは、そのクレーム内の値に対する正確で大文字と小文字を区別する文字列比較です。ゲートウェイはネストされたグループを展開しません。サブグループのメンバーを許可するには、ここにサブグループをリストするか、IdP を設定してフラット化されたメンバーシップを発行してください。 |
82| `groups_claim` | いいえ | グループメンバーシップを含む id\_token クレーム。デフォルト `groups`。Microsoft Entra は `roles` の下にアプリロールを発行します。フラットキーまたは `/resource_access/gateway/roles` などのネストされたクレーム用の RFC 6901 JSON ポインターを受け入れます。 |83| `groups_claim` | いいえ | グループメンバーシップを含む id\_token クレーム。デフォルト `groups`。Microsoft Entra はアプリロールを `roles` の下に発行します。フラットキーまたは `/resource_access/gateway/roles` などのネストされたクレーム用の RFC 6901 JSON ポインタを受け入れます。 |
83| `google_groups` | いいえ | Google Workspace Admin SDK Directory API を通じてサインインしたユーザーのグループを検索します。Google の id\_token はグループクレームを含まないためです。`service_account_json_path` を `https://www.googleapis.com/auth/admin.directory.group.readonly` スコープでドメイン全体の委任を持つサービスアカウントキーファイルに設定し、`admin_email` をサービスアカウントが偽装する Workspace 管理者に設定します。Directory API は実際の管理者サブジェクトを必要とします。各ユーザーのグループメールアドレスがそのグループクレームになるため、`allowed_groups` と `managed.policies.match.groups` はグループメールでマッチします。 |84| `google_groups` | いいえ | Google Workspace Admin SDK Directory API を通じてサインインしたユーザーのグループを検索します。Google の id\_token はグループクレームを含まないためです。`service_account_json_path` を `https://www.googleapis.com/auth/admin.directory.group.readonly` スコープでドメイン全体の委任を持つサービスアカウントキーファイルに設定し、`admin_email` を Workspace 管理者に設定します。サービスアカウントが偽装します。Directory API は実際の管理者サブジェクトが必要です。各ユーザーのグループメールアドレスがそのグループクレームになるため、`allowed_groups` と `managed.policies.match.groups` はグループメールでマッチングします。 |
84| `email_claim` | いいえ | ユーザーのメールを含む id\_token クレーム。デフォルト `email`。ADFS や Entra B2C などの一部の IdP は、代わりに `upn` または `preferred_username` を発行します。フラットキー、JSON ポインター、または最初に存在するキーが使用されるフォールバックキーのリストを受け入れます。 |85| `email_claim` | いいえ | ユーザーのメールを含む id\_token クレーム。デフォルト `email`。ADFS や Entra B2C などの一部の IdP は、代わりに `upn` または `preferred_username` を発行します。フラットキー、JSON ポインタ、または最初に存在するキーが使用されるフォールバックキーのリストを受け入れます。 |
85| `scopes` | いいえ | ゲートウェイが要求する OIDC スコープの完全なオーバーライド。デフォルト `[openid, profile, email, offline_access]`。IdP が認識しないスコープを拒否する場合、またはグループやメールを発行するためにカスタムスコープが必要な場合に設定します。`openid` を含める必要があります。`offline_access` を削除するとリフレッシュトークンが無効になるため、開発者は `session.ttl_hours` ごとにブラウザログインを再実行します。Google のリフレッシュトークンフローなどの IdP ごとのスコープレシピについては、[アイデンティティプロバイダーのセットアップ](/docs/ja/claude-apps-gateway-deploy#identity-provider-setup)を参照してください。 |86| `scopes` | いいえ | ゲートウェイが要求する OIDC スコープの完全なオーバーライド。デフォルト `[openid, profile, email, offline_access]`。IdP が認識しないスコープを拒否する場合、またはグループまたはメールを発行するためにカスタムスコープが必要な場合に設定します。`openid` を含める必要があります。`offline_access` を削除するとリフレッシュトークンが無効になるため、開発者は `session.ttl_hours` ごとにブラウザログインを再実行します。IdP ごとのスコープレシピ(Google のリフレッシュトークンフローなど)については、[アイデンティティプロバイダーのセットアップ](/docs/ja/claude-apps-gateway-deploy#identity-provider-setup)を参照してください。 |
86| `scope_on_refresh` | いいえ | リフレッシュトークンを交換するときに、サインインリクエストと同じリストで `scope` も送信します。デフォルト `false`。リフレッシュリクエストは `scope` を省略します。ほとんどの IdP はすべてのリフレッシュで id\_token を返し、これを必要としません。IdP が再度 `openid` を要求された場合にのみリフレッシュ時に id\_token を返す場合は `true` に設定します。Okta はそのリフレッシュグラントについてこれを文書化しています。id\_token がない場合、すべてのリフレッシュはリフレッシュされたアクセストークンを受け入れる IdP の userinfo エンドポイントに依存します。グループでサインインまたはポリシーマッチをゲートし、IdP のリフレッシュ時 id\_token がそれらを省略する場合は、`userinfo_fallback: true` も設定して、ゲートウェイが userinfo エンドポイントからそれらを入力するようにしてください。許可されたスコープが要求されたスコープより少ない IdP は、これがオンの場合、既存のセッションを含めて `invalid_scope` でリフレッシュを拒否できます。`scopes` にエントリを追加した後にリフレッシュが `token_endpoint` で失敗し始めた場合は、キーを設定解除してください。ゲートウェイサーバーで Claude Code v2.1.260 以降が必要です。 |87| `scope_on_refresh` | いいえ | リフレッシュトークンを交換するときに、サインインリクエストと同じリストで `scope` も送信します。デフォルト `false`:リフレッシュリクエストは `scope` を省略します。ほとんどの IdP はすべてのリフレッシュで id\_token を返し、これを必要としません。IdP がリフレッシュ時に id\_token を返す場合にのみ `true` に設定します。`openid` を再度要求された場合。Okta はそのリフレッシュグラントについてこれを文書化しています。id\_token がない場合、すべてのリフレッシュは IdP の userinfo エンドポイントが更新されたアクセストークンを受け入れることに依存します。サインインをゲートしたり、グループのポリシーをマッチングしたりする場合、IdP のリフレッシュ時 id\_token がそれらを省略する場合は、`userinfo_fallback: true` も設定して、ゲートウェイが userinfo エンドポイントからそれらを入力するようにしてください。要求されたスコープより少ないスコープを付与した IdP は、これがオンの場合、既存のセッションの場合でも `invalid_scope` でリフレッシュを拒否できます。`token_endpoint` でリフレッシュが失敗し始めた場合は、キーを設定した後、キーを設定解除してください。ゲートウェイサーバーで Claude Code v2.1.260 以降が必要です。 |
87| `extra_auth_params` | いいえ | IdP 認可リクエストに逐語的に追加される追加クエリパラメーター。これは、Google リフレッシュトークンの `access_type: offline`、一部の Entra テナントの `domain_hint`、またはステップアップフローの `acr_values` など、IdP 固有の動作のオーバーライドメカニズムです。ゲートウェイが管理するプロトコルパラメーターはオーバーライドできません。`state`、`nonce`、`redirect_uri`、PKCE、`scope`、`response_type`、`response_mode`、`client_id`。 |88| `extra_auth_params` | いいえ | IdP 認可リクエストに逐語的に追加される追加クエリパラメータ。これは、Google リフレッシュトークンの `access_type: offline`、一部の Entra テナントの `domain_hint`、またはステップアップフローの `acr_values` など、IdP 固有の動作のオーバーライドメカニズムです。ゲートウェイが管理するプロトコルパラメータはオーバーライドできません:`state`、`nonce`、`redirect_uri`、PKCE、`scope`、`response_type`、`response_mode`、および `client_id`。 |
88| `userinfo_fallback` | いいえ | id\_token がメールまたはグループを省略する場合、`/userinfo` からそれらを取得します。Keycloak 軽量アクセストークン、Okta org サーバー、ADFS 最小トークンに必要です。id\_token は権威的なままです。userinfo はギャップのみを埋めます。デフォルト `false`。 |89| `userinfo_fallback` | いいえ | id\_token がメールまたはグループを省略する場合、`/userinfo` からそれらを取得します。Keycloak 軽量アクセストークン、Okta org サーバー、および ADFS 最小トークンに必要です。id\_token は権限のままです。userinfo はギャップのみを埋めます。デフォルト `false`。 |
89| `use_pkce` | いいえ | 認可リクエストで PKCE(S256)チャレンジを送信します。デフォルト `true`。IdP がこの機密クライアントの PKCE を拒否する場合のみ `false` に設定します。 |90| `use_pkce` | いいえ | 認可リクエストで PKCE(S256)チャレンジを送信します。デフォルト `true`。IdP がこの機密クライアントの PKCE を拒否する場合のみ `false` に設定します。 |
90| `clock_skew_seconds` | いいえ | id\_token 時間クレームを検証するときにクロックドリフトを許容します。デフォルト `0`。厳密です。サインイン直後にホスト/IdP クロックスキューのため「トークン期限切れ/まだ有効でない」エラーが表示される場合は、これを上げてください。 |91| `clock_skew_seconds` | いいえ | id\_token 時間クレームを検証するときにクロックドリフトを許容します。デフォルト `0`(厳密)。サインイン直後にホスト/IdP クロックスキューのため「トークン期限切れ/まだ有効でない」エラーが表示される場合は、これを上げてください。 |
91| `token_endpoint_auth_method` | いいえ | トークンエンドポイント認証方法をオーバーライドします。`client_secret_basic` または `client_secret_post` を受け入れます。デフォルトで自動ネゴシエーションされます。 |92| `token_endpoint_auth_method` | いいえ | トークンエンドポイント認証方法をオーバーライドします。`client_secret_basic` または `client_secret_post` を受け入れます。デフォルトで自動ネゴシエーション。 |
92| `id_token_signed_response_alg` | いいえ | 予想される id\_token 署名アルゴリズム。デフォルト `RS256`。ES256、PS256、または EdDSA で署名する IdP に設定します。 |93| `id_token_signed_response_alg` | いいえ | 予想される id\_token 署名アルゴリズム。デフォルト `RS256`。ES256、PS256、または EdDSA で署名する IdP に設定します。 |
93| `additional_authorized_parties` | いいえ | `client_id` を超えて受け入れる追加の `azp` 値。Keycloak ブローカーとトークン交換フロー用 |94| `additional_authorized_parties` | いいえ | `client_id` を超えて受け入れる追加の `azp` 値。Keycloak ブローカーとトークン交換フロー用 |
94| `discovery_url` | いいえ | `issuer` から導出する代わりに、この URL から検出ドキュメントを取得します。発行者ホストを書き換えるプロキシの背後にある IdP 用です。パスは `/.well-known/` を含む必要があります。 |95| `discovery_url` | いいえ | `issuer` から導出する代わりに、この URL から検出ドキュメントを取得します。発行者ホストを書き換えるプロキシの背後にある IdP の場合。パスは `/.well-known/` を含む必要があります。 |
95| `use_proxy` | いいえ | ゲートウェイ独自の IdP リクエストを `HTTPS_PROXY` または `HTTP_PROXY` のフォワードプロキシを通じて送信し、`NO_PROXY` を尊重します。設定解除または `false` の場合、これらのリクエストは直接実行されます。v2.1.227 以降が必要です。以下の[フォワードプロキシを通じた IdP リクエスト](#idp-requests-through-a-forward-proxy)を参照してください。 |96| `use_proxy` | いいえ | ゲートウェイ独自の IdP リクエストを `HTTPS_PROXY` または `HTTP_PROXY` のフォワードプロキシを通じて送信し、`NO_PROXY` を尊重します。`false` はそれらのリクエストを直接に保ちます。v2.1.227 以降が必要です。以下の[フォワードプロキシを通じた IdP リクエスト](#idp-requests-through-a-forward-proxy)を参照してください。 |
96| `form_action_origins` | いいえ | `/device` ページの `Content-Security-Policy: form-action` ディレクティブの追加オリジン。ゲートウェイはすでに `'self'` と検出された `authorization_endpoint` オリジンを許可していますが、Chrome は `form-action` をリダイレクトチェーン全体に対して強制します。IdP が Azure AD が ADFS にフェデレーションされている場合、ハブスポーク Okta、または企業 SSO インターセプターなど、2 番目のホストを通じてリダイレクトする場合は、認可リクエストがリダイレクトされる可能性があるすべてのオリジンをリストします。 |97| `form_action_origins` | いいえ | `/device` ページの `Content-Security-Policy: form-action` ディレクティブの追加オリジン。ゲートウェイはすでに `'self'` と検出された `authorization_endpoint` オリジンを許可していますが、Chrome は全リダイレクトチェーンに対して `form-action` を強制します。IdP が Azure AD が ADFS にフェデレーションされている、ハブスポーク Okta、または企業 SSO インターセプターなど、2 番目のホストを通じてリダイレクトする場合、認可リクエストがリダイレクトする可能性があるすべてのオリジンをリストします。 |
97| `ca_cert_pem` | いいえ | ファイルへのパスではなく、PEM エンコードされた CA 証明書自体。IdP リクエストのみのシステムトラストストアを置き換えます。マウントされたファイルを読み込むには、`${file:/etc/gateway/idp-ca.pem}` と書きます。企業 PKI の背後にある Keycloak または Dex に使用します。 |98| `ca_cert_pem` | いいえ | ファイルへのパスではなく、PEM エンコードされた CA 証明書自体。IdP リクエストのみのシステムトラストストアを置き換えます。マウントされたファイルを読み込むには、`${file:/etc/gateway/idp-ca.pem}` と書きます。企業 PKI の背後にある Keycloak または Dex に使用します。 |
98 99
99<h4 id="idp-requests-through-a-forward-proxy">100<h4 id="idp-requests-through-a-forward-proxy">
100 フォワードプロキシを通じた IdP リクエスト101 フォワードプロキシを通じた IdP リクエスト
101</h4>102</h4>
102 103
103推論アップストリームはすべてのバージョンで `HTTPS_PROXY` と `HTTP_PROXY` を尊重します。IdP、検出、JWKS、トークン、userinfo へのゲートウェイ独自のリクエストは、`oidc.use_proxy: true` を設定しない限り直接実行されます。これには v2.1.227 以降が必要です。プロキシ変数が設定され、`use_proxy` が設定解除され、発行者が `NO_PROXY` でカバーされていない場合、ゲートウェイはこれらのリクエストを直接保つし、ブート時に選択するよう求める通知をログに記録します。`use_proxy: false` はそれらを直接保つし、通知をサイレンスします。104推論アップストリームはすべてのバージョンで `HTTPS_PROXY` と `HTTP_PROXY` を尊重します。ゲートウェイ独自の IdP、検出、JWKS、トークン、および userinfo へのリクエストは、`oidc.use_proxy: true` を設定しない限り直接です。v2.1.227 以降が必要です。プロキシ変数が設定され、`use_proxy` が設定解除され、発行者が `NO_PROXY` でカバーされていない場合、ゲートウェイはそれらのリクエストを直接に保ち、ブート時に選択するよう求める通知をログに記録します。`use_proxy: false` はそれらを直接に保ち、通知をサイレンスします。
104 105
105`use_proxy: true` の場合、ポッドは各 IdP エンドポイントのホスト名を自身で解決し、プロキシに解決された IP アドレスへの `CONNECT` を要求するため、プロキシは発行者だけでなく、検出ドキュメントが名前を付けるすべてのホストの IP アドレスへの `CONNECT` を受け入れる必要があります。`http://` プロキシ URL を使用してください。`ca_cert_pem` と[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary)はプロキシされたパスにも適用されます。106`use_proxy: true` の場合、ポッドは各 IdP エンドポイントのホスト名を自身で解決し、プロキシに解決された IP アドレスへの `CONNECT` を要求します。プロキシは、発行者だけでなく、検出ドキュメントが名前を付けるすべてのホストの IP アドレスへの `CONNECT` を受け入れる必要があります。`http://` プロキシ URL を使用します。`ca_cert_pem` と[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary)はプロキシされたパスにも適用されます。
107
108[プロキシのみのエグレス](#proxy-only-egress)はこれらの両方を変更します。アクティブな場合、IdP リクエストは `use_proxy: false` を設定しない限りプロキシに従い、ゲートウェイは最初にそれを解決せずにプロキシに各 IdP ホスト名を渡します。
109
110<h4 id="proxy-only-egress">
111 プロキシのみのエグレス
112</h4>
113
114ゲートウェイの環境で `HTTPS_PROXY` の隣に `CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1` を設定します。ポッドがそのフォワードプロキシを通じてのみ他のホストに到達でき、パブリック DNS 名を自身で解決できない場合、またはプロキシが IP アドレスへの `CONNECT` を拒否する場合。v2.1.277 以降が必要です。これは `gateway.yaml` キーではなく環境変数です。設定ファイルの何もゲートウェイのアドレスチェックを緩和できないようにするためです。
115
116```bash theme={null}
117export HTTPS_PROXY=http://proxy.corp.example.com:3128
118export NO_PROXY=
119export no_proxy=
120export CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1
121```
122
123ゲートウェイはプロキシのみのエグレスがアクティブな場合、ブート時に 1 つの `network:` 行をログに記録します。
124
125以下の各行は、`HTTPS_PROXY` が設定されたゲートウェイ上の 1 つのクラスのアウトバウンドリクエストです。デフォルトおよびプロキシのみのエグレスがアクティブな場合。
126
127| アウトバウンドリクエスト | デフォルト | プロキシのみのエグレスアクティブ |
128| - | - | - |
129| `provider: anthropic` アップストリーム、Workload Identity Federation トークン交換、`telemetry.forward_to` エクスポート | ローカルで解決およびチェックされ、その後、プロキシを通じてチェックされた IP アドレスへの `CONNECT`。`NO_PROXY` にリストされたテレメトリコレクターは代わりに直接到達します | プロキシに渡されたホスト名 |
130| IdP 検出、JWKS、トークン、および userinfo | [`oidc.use_proxy: true`](#idp-requests-through-a-forward-proxy) でない限り直接。その後、チェックされた IP アドレスへの `CONNECT` | ホスト名がプロキシに渡されます。ただし、`oidc.use_proxy: false` は内部 IdP を直接に保ちます |
131| Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、および Microsoft Foundry アップストリーム。Google グループ検索 | ホスト名がプロキシに渡されます | 変更なし |
132
133プロキシのみのエグレスは、ゲートウェイの環境がこれら 3 つの条件をすべて満たさない限り、オフのままです:
134
135* `HTTPS_PROXY` または `HTTP_PROXY` が設定されています。
136* `NO_PROXY` と `no_proxy` は空です。プラットフォームがいずれかをポッドに注入する場合、ゲートウェイコンテナの両方を空の値に設定します。`NO_PROXY` にテレメトリコレクターをリストすると、プロキシのみのエグレスがオフのままです。
137* `CLAUDE_GATEWAY_ALLOW_LOOPBACK` がオンになっていません。ポッド独自のループバック上のコレクターまたは IdP は、プロキシのみのエグレスと組み合わせることはできません。ループバックアドレスがプロキシに渡されるとプロキシホスト独自のものになるため、代わりにプロキシが到達できるアドレスをそれらのサービスに与えてください。同じ理由で、ゲートウェイはプロキシのみのエグレスがアクティブな場合、`localhost` スタイルの名前を完全に拒否します。
138
139これらの条件のいずれかが満たされていない場合、ゲートウェイはブート時に警告をログに記録し、それを停止した変数に名前を付け、デフォルトの動作を保ちます。
140
141プロキシのみのエグレスがアクティブになったら、内部コレクターと IP アドレスで設定されたホストを含む、プロキシ内のすべての宛先を許可します。[`oidc.use_proxy: false`](#idp-requests-through-a-forward-proxy) で内部 IdP を直接に保つことができます。
142
143<Warning>
144 これをオンにするのは、プロキシのアローリストがゲートウェイ独自のチェック以上に厳密な場合のみです。プロキシは `169.254.169.254` や `metadata.google.internal` などのクラウドメタデータエンドポイント、リンクローカルアドレス、およびプロキシホスト独自のループバックを拒否する必要があります。また、名前だけでなく、名前が解決するアドレスによってそれらを拒否する必要があります。ゲートウェイはもはやそれらのいずれかに解決するホスト名をキャッチしないためです。どこでも接続するプロキシは、これらのリクエストのゲートウェイの[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary)を削除します。
145</Warning>
106 146
107<h3 id="session">147<h3 id="session">
108 `session`148 `session`
109</h3>149</h3>
110 150
111`session` ブロックはサインイン後にゲートウェイが鋳造するベアラートークンを形成します。それらに署名するシークレットと、どのくらい長く生きるかです。151`session` ブロックは、ゲートウェイがサインイン後に鋳造するベアラートークンを形成します。それらに署名するシークレットと、どのくらい長く生きるかです。
112 152
113| フィールド | 必須 | 説明 |153| フィールド | 必須 | 説明 |
114| - | - | - |154| - | - | - |
115| `jwt_secret` | はい | 少なくとも 32 バイトのエントロピー。例えば `openssl rand -base64 32` から。ゲートウェイの HS256 ベアラートークンに署名します。単一の文字列または回転用の配列を受け入れます。インデックス 0 が署名し、すべてのエントリが検証します。回転するには、新しいシークレットを先頭に追加し、`ttl_hours` を待ってから古いものを削除します。 |155| `jwt_secret` | はい | 少なくとも 32 バイトのエントロピー。例えば `openssl rand -base64 32` から。ゲートウェイの HS256 ベアラートークンに署名します。単一の文字列または回転用の配列を受け入れます。インデックス 0 が署名し、すべてのエントリが検証します。回転するには、新しいシークレットを先頭に追加し、`ttl_hours` を待ってから古いものを削除します。 |
116| `ttl_hours` | いいえ | ゲートウェイベアラートークンの有効期間。デフォルト `1`。IdP がリフレッシュトークンを発行する場合、CLI は有効期限前に静かにリフレッシュします。より短い有効期間はより速く廃止されます。より長い有効期間は IdP ラウンドトリップが少なくなります。IdP が `offline_access` が利用できないためリフレッシュトークンを発行できない場合、静かなリフレッシュはないため、開発者が 1 時間ごとにブラウザログインに戻されるのを避けるために、これを `8` または `12` に上げてください。 |156| `ttl_hours` | いいえ | ゲートウェイベアラートークンの有効期間。デフォルト `1`。IdP がリフレッシュトークンを発行する場合、CLI は有効期限前に自動的にリフレッシュします。有効期間が短いほど、より速くプロビジョニング解除されます。長いほど、IdP ラウンドトリップが少なくなります。IdP が `offline_access` が利用できないためリフレッシュトークンを発行できない場合、サイレントリフレッシュはないため、これを `8` または `12` に上げて、開発者を 1 時間ごとにブラウザログインに戻すのを避けてください。 |
117 157
118<h3 id="store">158<h3 id="store">
119 `store`159 `store`
120</h3>160</h3>
121 161
122`store` ブロックはゲートウェイを PostgreSQL データベースに指します。これはデバイスグラントとレート制限カウンターを保持します。162`store` ブロックはゲートウェイを PostgreSQL データベースに指します。デバイスグラントとレート制限カウンターを保持します。
123 163
124| フィールド | 必須 | 説明 |164| フィールド | 必須 | 説明 |
125| - | - | - |165| - | - | - |
126| `postgres_url` | はい | `postgres://` または `postgresql://` URL。必須。デバイスグラント集合場所。ブラウザコールバックが書き込み、ポーリング CLI が読み取る場所。クロスレプリカ状態が必要です。ゲートウェイはブート時とアップグレード時に独自のスキーママイグレーションを実行するため、ロールはターゲットスキーマでテーブルを作成および変更する権限が必要です。[アップグレード](/docs/ja/claude-apps-gateway-deploy#upgrades)と [Postgres](/docs/ja/claude-apps-gateway-deploy#postgres)を参照してください。 |166| `postgres_url` | はい | `postgres://` または `postgresql://` URL。必須:デバイスグラント集合。ブラウザコールバックが書き込み、ポーリング CLI が読み込む場所。レプリカ間の状態が必要です。ゲートウェイはブート時およびアップグレード時に独自のスキーママイグレーションを実行するため、ロールはターゲットスキーマでテーブルを作成および変更する権限が必要です。[アップグレード](/docs/ja/claude-apps-gateway-deploy#upgrades)および [Postgres](/docs/ja/claude-apps-gateway-deploy#postgres) を参照してください。 |
127| `username` | いいえ | `postgres_url` のユーザーをオーバーライドします |167| `username` | いいえ | `postgres_url` のユーザーをオーバーライドします |
128| `password` | いいえ | データベース認証情報。認証情報が URL から外れるように、ここに設定します。任意の文字を受け入れ、URL 認証情報よりも優先されます。 |168| `password` | いいえ | データベース認証情報。`postgres_url` ではなくここに設定して、認証情報を URL から外します。任意の文字を受け入れ、URL 認証情報よりも優先されます。 |
129| `max_connections` | いいえ | レプリカあたりの Postgres 接続プール サイズ。デフォルト `5`。保守的で共有データベースに優しいです。[支出制限](#admin)が有効な場合、ホットパスは推論リクエストごとにいくつかの操作を実行するため、負荷の下で専用データベースの場合は上げ、レプリカ × これをデータベースの `max_connections` 以下に保ちます。 |169| `max_connections` | いいえ | レプリカあたりの Postgres 接続プール サイズ。デフォルト `5`。保守的で共有データベースに優しいです。[支出制限](#admin)が有効な場合、ホットパスは推論リクエストごとに数回の操作を実行するため、専用データベースが負荷の下にある場合はこれを上げ、レプリカ × これをデータベースの `max_connections` 以下に保ちます。 |
170| `connect_timeout_seconds` | いいえ | ゲートウェイが Postgres 接続を開くときに待機する秒数。`1` から `60` の整数。デフォルト `5`。新しいゲートウェイインスタンスが起動するときに接続試行がタイムアウトする場合は、これを上げてください。ゲートウェイサーバーで Claude Code v2.1.274 以降が必要です。以前のバージョンはキーが設定されている場合、起動を拒否します。 |
171| `readiness_grace_seconds` | いいえ | Postgres が応答を停止した後、`/readyz` が準備完了を報告し続ける秒数。`0` から `3600` の整数。デフォルト `0`。値を選択する方法については、[停止動作](/docs/ja/claude-apps-gateway-deploy#outage-behavior)を参照してください。ゲートウェイサーバーで Claude Code v2.1.282 以降が必要です。以前のバージョンはキーが設定されている場合、起動を拒否します。 |
130 172
131ローカル開発の場合、`postgres_url` を使い捨て Postgres コンテナに指します。例えば `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`。173ローカル開発の場合、`postgres_url` を使い捨て Postgres コンテナに指します。例えば `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`。
132 174
134 `upstreams`176 `upstreams`
135</h3>177</h3>
136 178
137`upstreams` は順序付きリストです。ゲートウェイは要求されたモデルを解決する最初のアップストリームに推論を転送します。179`upstreams` は順序付きリストです。ゲートウェイは、要求されたモデルを解決する最初のアップストリームに推論を転送します。
138 180
139`5xx`、`429`、`401`、`403`、`404`、またはタイムアウトで、ゲートウェイは次のアップストリームにフェイルオーバーします。他の `4xx` はそうしません。これらのエラーはリクエストではなくアップストリームに起因するためです。`401` または `403` はゲートウェイ独自の認証情報がそのアップストリームに対して失敗したことを意味します。`404` はそのアップストリームが要求されたモデルを提供しないことを意味するため、リスト内の後のアップストリームはまだそれを提供できます。181`5xx`、`429`、`401`、`403`、`404`、またはタイムアウト時に、ゲートウェイは次のアップストリームにフェイルオーバーします。他の `4xx` はそうしません。これらのエラーはリクエストではなくアップストリームに起因するためです。`401` または `403` は、ゲートウェイがそのアップストリームに対して使用した認証情報が失敗したことを意味します。`404` はそのアップストリームが要求されたモデルを提供しないことを意味するため、リスト内の後のアップストリームはまだできます。
140 182
141アップストリームで `forward_user_identity: true` を設定する場合、開発者のメールを含むリクエストに返す `429` はフェイルオーバーしません。[per-user limit denial が開発者に到達する方法](#per-user-identity-headers-for-a-proxy-you-run)を参照してください。183アップストリームで `forward_user_identity: true` を設定する場合、開発者のメールを含むリクエストに返す `429` はフェイルオーバーしません。[開発者がどのように per-user 制限拒否に到達するか](#per-user-identity-headers-for-a-proxy-you-run)を参照してください。
142 184
143`404` でのフェイルオーバーにはゲートウェイ v2.1.198 以降が必要です。以前のリリースは、リスト内の後のアップストリームがモデルを提供している場合でも、最初の `404` をクライアントに返しました。185`404` でのフェイルオーバーにはゲートウェイ v2.1.198 以降が必要です。以前のリリースは、リスト内の後のアップストリームがモデルを提供している場合でも、最初の `404` をクライアントに返しました。
144 186
145同じプロバイダーの複数のアップストリームは、異なる `name:` を設定する必要があります。187同じプロバイダーの複数のアップストリームは、異なる `name:` を設定する必要があります。
146 188
147Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、Microsoft Foundry クライアントはスタートアップ時に一度構築され、それらの SDK は認証情報を内部的にリフレッシュするため、クラウド認証情報のローテーションは再起動を必要としません。静的 Anthropic API キーとベアラーはスタートアップ時に読み取られます。[Anthropic API](#anthropic-api) を参照してください。189Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、および Microsoft Foundry クライアントはスタートアップ時に 1 回構築され、SDK は内部的に認証情報をリフレッシュするため、クラウド認証情報のローテーションは再起動を必要としません。静的 Anthropic API キーとベアラーはスタートアップ時に読み込まれます。[Anthropic API](#anthropic-api) を参照してください。
148 190
149<h4 id="upstream-error-messages">191<h4 id="upstream-error-messages">
150 アップストリームエラーメッセージ192 アップストリームエラーメッセージ
151</h4>193</h4>
152 194
153ゲートウェイはアップストリームの 1 つのエラー応答、またはアップストリームがどのように応答したかに応じて独自の `502` を返します。195ゲートウェイは、アップストリームがどのように応答したかに応じて、1 つのアップストリームのエラー応答またはそれ独自の `502` を返します:
154 196
155* **ゲートウェイが[フェイルオーバー](#multiple-upstreams)しないステータスをアップストリームが返した**。そのアップストリームの応答。ゲートウェイはさらなるアップストリームを試みません。197* **ゲートウェイが[フェイルオーバー](#multiple-upstreams)しないステータスをアップストリームが返した**:そのアップストリームの応答。ゲートウェイはさらなるアップストリームを試みません。
156* **ゲートウェイが試みたすべてのアップストリームが[フェイルオーバー](#multiple-upstreams)する方法で失敗した**。最後の `429`。どれも `429` を返さなかった場合、ゲートウェイは順に、最後の `401` または `403`、最後の `404`、最後の `501` を優先します。どれもそれらのいずれも返さなかった場合、ゲートウェイ独自の `502`。`all upstreams failed (N attempted)`。N は [`upstreams`](#upstreams) のすべてのエントリをカウントします。要求されたモデルを提供しないためゲートウェイがスキップしたエントリを含みます。198* **ゲートウェイが試みたすべてのアップストリームが[フェイルオーバー](#multiple-upstreams)する方法で失敗した**:最後の `429`。いずれも `429` を返さなかった場合、ゲートウェイは順に、最後の `401` または `403`、最後の `404`、最後の `501` を優先します。いずれも返さなかった場合、ゲートウェイ独自の `502`。`all upstreams failed (N attempted)`。N は [`upstreams`](#upstreams) のすべてのエントリをカウントします。要求されたモデルを提供しないためゲートウェイがスキップしたエントリを含みます。
157 199
158ゲートウェイがアップストリームの応答を返す場合、アップストリームのステータスコードを保ちます。アップストリームのメッセージを保つかどうかはプロバイダーに依存します。Anthropic API アップストリームのエラー本体は開発者に変更されずに到達します。200ゲートウェイがアップストリームの応答を返す場合、アップストリームのステータスコードを保ちます。アップストリームのメッセージを保つかどうかはプロバイダーに依存します。Anthropic API アップストリームのエラー本体は開発者に変更されずに到達します。
159 201
160Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、Microsoft Foundry アップストリームはそれらのエラーテキストでアカウント ID、ロール ARN、プロジェクト ID に名前を付けることができます。ゲートウェイはその完全なテキストを[操作ログ](/docs/ja/claude-apps-gateway-deploy#logs)に記録します。開発者がこれらのアップストリームから見るものは拒否に依存します。202Amazon Bedrock、Claude Platform on AWS、Google Cloud の Agent Platform、および Microsoft Foundry アップストリームは、エラーテキストでアカウント ID、ロール ARN、およびプロジェクト ID に名前を付けることができます。ゲートウェイはその完全なテキストを[運用ログ](/docs/ja/claude-apps-gateway-deploy#logs)に記録します。開発者がこれらのアップストリームから見るものは、拒否に依存します:
161 203
162* Anthropic の標準エラーエンベロープの `400` または `413`。`prompt is too long` などのアップストリーム独自のメッセージ。Claude Platform on AWS、Agent Platform、Microsoft Foundry はモデル API 拒否のためこのエンベロープを返します。204* Anthropic の標準エラーエンベロープの `400` または `413`:`prompt is too long` などのアップストリーム独自のメッセージ。Claude Platform on AWS、Agent Platform、および Microsoft Foundry はモデル API 拒否のためこのエンベロープを返します。
163* プロバイダー独自の形状の `400` または `413`。`capability_rejected:` トークン。ゲートウェイが拒否を分類できない場合、`400` で `upstream rejected the request` または `413` で `request too large for this upstream`。205* プロバイダー独自の形状の `400` または `413`:`capability_rejected:` トークン。ゲートウェイが拒否を分類できない場合、`400` で `upstream rejected the request` または `413` で `request too large for this upstream`。
164* その他のステータス。`429` で `upstream rate limit exceeded` などのステータスごとの汎用コピー。206* その他のステータス:`429` で `upstream rate limit exceeded` などのステータスごとの汎用コピー。
165 207
166例えば、ゲートウェイは Amazon Bedrock の `Input is too long for requested model.` を `capability_rejected: prompt_too_long` に置き換えます。Claude Code はそのトークンで[自動的にコンパクト](/docs/ja/errors#prompt-is-too-long)にします。`prompt is too long` と同じようにです。208例えば、ゲートウェイは Amazon Bedrock の `Input is too long for requested model.` を `capability_rejected: prompt_too_long` に置き換えます。Claude Code は `prompt is too long` と同様に、そのトークンで[自動的にコンパクト](/docs/ja/errors#prompt-is-too-long)にします。
167 209
168クラウドアップストリームの `400` または `413` メッセージを保つか、`capability_rejected:` トークンで置き換えるには、ゲートウェイ v2.1.233 以降が必要です。210クラウドアップストリームの `400` または `413` メッセージを保つか、`capability_rejected:` トークンで置き換えるには、ゲートウェイ v2.1.233 以降が必要です。
169 211
171 Anthropic API213 Anthropic API
172</h4>214</h4>
173 215
174最小限の Anthropic アップストリームは [Claude Console](https://platform.claude.com) からの API キーです。216最小限の Anthropic アップストリームは、[Claude Console](https://platform.claude.com) からの API キーです:
175 217
176```yaml theme={null}218```yaml theme={null}
177upstreams:219upstreams:
183 # base_url: https://api.anthropic.com # default; override for a forward proxy225 # base_url: https://api.anthropic.com # default; override for a forward proxy
184```226```
185 227
1862 つの認証情報フォームは送信するヘッダーが異なります。2282 つの認証情報フォームは、送信するヘッダーが異なります:
187 229
188* **`api_key`**。`x-api-key` を送信します。Claude Console でローテーションし、環境変数を更新します。230* **`api_key`**:`x-api-key` を送信します。Claude Console でローテーションし、環境変数を更新します。
189* **`oauth_token`**。`Authorization: Bearer` を送信します。組織が長期 API キーではなく短期トークンを発行する場合、ベアラーフォームを使用します。ベアラーはスタートアップ時に一度読み取られるため、シークレットを再マウントして再起動することでリフレッシュします。231* **`oauth_token`**:`Authorization: Bearer` を送信します。組織が長期 API キーではなく短期トークンを発行する場合、ベアラーフォームを使用します。ベアラーはスタートアップ時に 1 回読み込まれるため、シークレットを再マウントして再起動することでリフレッシュします。
190 232
191静的キーまたはベアラーの代わりに、Workload Identity Federation を使用できます。[Workload Identity Federation ガイド](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)に従って federation ルールを作成し、ワークロードの OIDC JWT をファイルとしてマウントします。例えば、Kubernetes プロジェクトサービスアカウントトークンまたは CI プラットフォームの id-token。ゲートウェイは JWT を短期ベアラーと交換し、自動的にリフレッシュします。トークンファイルはすべての交換で再読み取りされるため、ローテーションされたプロジェクトトークンは再起動なしで取得されます。233静的キーまたはベアラーの代わりに、Workload Identity Federation を使用できます。[Workload Identity Federation ガイド](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)に従ってフェデレーションルールを作成し、ワークロードの OIDC JWT をファイルとしてマウントします。例えば、Kubernetes プロジェクトサービスアカウントトークンまたは CI プラットフォームの id-token。ゲートウェイは JWT を短期ベアラーと交換し、自動的にリフレッシュします。トークンファイルはすべての交換で再読み込みされるため、ローテーションされたプロジェクトトークンは再起動なしで取得されます。
192 234
193```yaml theme={null}235```yaml theme={null}
194upstreams:236upstreams:
204<a id="per-user-identity-headers-for-a-proxy-you-run" />246<a id="per-user-identity-headers-for-a-proxy-you-run" />
205 247
206<h5 id="per-user-identity-headers-for-a-proxy-you-run">248<h5 id="per-user-identity-headers-for-a-proxy-you-run">
207 あなたが実行するプロキシの per-user identity ヘッダー249 実行するプロキシの per-user アイデンティティヘッダー
208</h5>250</h5>
209 251
210`provider: anthropic` アップストリームの `base_url` を Anthropic API ではなく実行するプロキシに指すことができます。各リクエストを送信した開発者をそのプロキシに伝えるには、そのアップストリームで `forward_user_identity: true` を設定します。プロキシはその後、開発者ごとに支出を属性化できます。ゲートウェイで Claude Code v2.1.233 以降が実行されている必要があります。252`provider: anthropic` アップストリームの `base_url` を Anthropic API ではなく実行するプロキシに指すことができます。そのプロキシに各リクエストを送信した開発者を伝えるには、そのアップストリームで `forward_user_identity: true` を設定します。プロキシはその後、開発者ごとに支出を属性付けることができます。Claude Code v2.1.233 以降を実行しているゲートウェイが必要です。
211 253
212例えば、`upstream-gateway.internal.example.com` のプロキシの場合。254例えば、`upstream-gateway.internal.example.com` のプロキシの場合:
213 255
214```yaml theme={null}256```yaml theme={null}
215upstreams:257upstreams:
220 forward_user_identity: true # default false262 forward_user_identity: true # default false
221```263```
222 264
223ゲートウェイはそのアップストリームに転送するすべてのリクエストにこれらのヘッダーを追加します。265ゲートウェイは、そのアップストリームに転送するすべてのリクエストにこれらのヘッダーを追加します。
224 266
225| ヘッダー | 値 |267| ヘッダー | 値 |
226| - | - |268| - | - |
228| `x-claude-gateway-user-id` | トークンの `sub` クレームからの開発者の IdP サブジェクト。 |270| `x-claude-gateway-user-id` | トークンの `sub` クレームからの開発者の IdP サブジェクト。 |
229| `x-claude-gateway-user-email` | IdP が提供した場合、開発者のメール。 |271| `x-claude-gateway-user-email` | IdP が提供した場合、開発者のメール。 |
230 272
231IdP トークンがメールを含まない場合、ゲートウェイは `x-claude-gateway-user-id` のみを送信し、2 つのメールヘッダーを省略します。IdP がメールを別のクレームに入れる場合は、[`oidc.email_claim`](#oidc) をそのクレームに設定します。273IdP トークンがメールを含まない場合、ゲートウェイは `x-claude-gateway-user-id` のみを送信し、2 つのメールヘッダーを省略します。IdP がメールを別のクレームに入れる場合、[`oidc.email_claim`](#oidc) をそのクレームに設定します。
232 274
233プロキシが開発者のメールを含むリクエストに `429` で応答する場合、ゲートウェイはその応答を開発者にそのまま返し、次のアップストリームにフェイルオーバーしません。プロキシの per-user バジェットまたはレート制限が保持されます。プロキシの他の応答は通常の[フェイルオーバールール](#upstreams)に従います。開発者の IdP トークンがメールを含まない場合、ゲートウェイはメールヘッダーなしでリクエストを転送するため、そのようなリクエストへの `429` はアップストリーム容量としてカウントされ、フェイルオーバーします。ゲートウェイサーバーで v2.1.267 より前では、すべての `429` がフェイルオーバーしました。275プロキシが開発者のメールを含むリクエストに `429` で応答する場合、ゲートウェイはその応答を開発者にそのまま返し、次のアップストリームにフェイルオーバーしません。プロキシの per-user 予算またはレート制限が保持されます。プロキシの他の応答は通常の[フェイルオーバールール](#upstreams)に従います。開発者の IdP トークンがメールを含まない場合、ゲートウェイはメールヘッダーなしでリクエストを転送するため、そのようなリクエストへの `429` はアップストリーム容量としてカウントされ、フェイルオーバーします。ゲートウェイサーバーの v2.1.267 より前では、すべての `429` がフェイルオーバーしました。
234 276
235`forward_user_identity` を、`base_url` が操作するプロキシであるアップストリームにのみ設定します。ゲートウェイは開発者メールを、その `base_url` が名前を付けるサーバーに送信します。`base_url` が Anthropic API(デフォルト)の場合、ゲートウェイは起動を拒否します。277`forward_user_identity` は、`base_url` が実行するプロキシであるアップストリームにのみ設定します。ゲートウェイは開発者メールを、その `base_url` が名前を付けるサーバーに送信します。`base_url` が Anthropic API(デフォルト)の場合、ゲートウェイは起動を拒否します。
236 278
237<h4 id="amazon-bedrock">279<h4 id="amazon-bedrock">
238 Amazon Bedrock280 Amazon Bedrock
239</h4>281</h4>
240 282
241ゲートウェイが置き換えるか前に置く、クライアント側の Amazon Bedrock デプロイメントについては、[Amazon Bedrock の Claude Code](/docs/ja/amazon-bedrock) を参照してください。ゲートウェイ側のアップストリーム。283クライアント側の Amazon Bedrock デプロイメント(ゲートウェイが置き換えるか前に置く)については、[Claude Code on Amazon Bedrock](/docs/ja/amazon-bedrock) を参照してください。ゲートウェイ側のアップストリーム:
242 284
243```yaml theme={null}285```yaml theme={null}
244upstreams:286upstreams:
257 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com299 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com
258```300```
259 301
260空の `auth` ブロックは AWS SDK のデフォルト認証情報チェーンを使用します。環境変数、`~/.aws/credentials`、ECS タスクロール、EC2 インスタンスメタデータ、または EKS の IRSA。本番環境では、コンテナイメージに静的キーを埋め込む代わりに、ゲートウェイポッドに IAM ロールを付与します。302空の `auth` ブロックは AWS SDK のデフォルト認証情報チェーンを使用します:環境変数、`~/.aws/credentials`、ECS タスクロール、EC2 インスタンスメタデータ、または EKS 上の IRSA。本番環境では、コンテナイメージに静的キーを埋め込む代わりに、ゲートウェイポッドに IAM ロールを与えます。
261 303
262明示的な認証情報は完全である必要があります。`aws_access_key_id` と `aws_secret_access_key` が一緒に設定されていない場合、または `aws_session_token` が設定されていない場合、ゲートウェイはブート時に失敗します。v2.1.207 より前では、部分的な `auth:` ブロックが検証に合格しました。304明示的な認証情報は完全である必要があります。`aws_access_key_id` と `aws_secret_access_key` が一緒に設定されていない場合、または `aws_session_token` が設定されていない場合、ゲートウェイはブート時に失敗します。v2.1.207 より前では、部分的な `auth:` ブロックが検証に合格しました。
263 305
264| セットアップ | 方法 |306| セットアップ | 方法 |
265| - | - |307| - | - |
266| IAM 権限 | ゲートウェイのプリンシパルに推論プロファイル ARN と基盤モデル ARN の両方に `bedrock:InvokeModel` と `bedrock:InvokeModelWithResponseStream` を付与します。US リージョンの組み込みカタログの場合。`arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` と `arn:aws:bedrock:*::foundation-model/anthropic.*`。また、基盤モデル ARN に `bedrock:CountTokens` を付与します。ゲートウェイはそれを使用して、クライアントが放棄したリクエストの入力トークンをカウントするため、[支出制限](#admin)は正確なままです。これなしでは、ゲートウェイはそのカウントのために 1 トークン Bedrock リクエストにフォールバックします。 |308| IAM 権限 | ゲートウェイのプリンシパルに `bedrock:InvokeModel` と `bedrock:InvokeModelWithResponseStream` を推論プロファイル ARN と基礎モデル ARN の両方に付与します。US リージョンの組み込みカタログの場合:`arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` と `arn:aws:bedrock:*::foundation-model/anthropic.*`。また、基礎モデル ARN に `bedrock:CountTokens` を付与します。ゲートウェイはそれを使用して、クライアントが放棄したリクエストの入力トークンをカウントします。無料です。[支出制限](#admin)が正確に保たれるようにするためです。これなしでは、ゲートウェイはそのカウントのための 1 トークン Bedrock リクエストにフォールバックします。 |
267| モデルアクセス | Amazon Bedrock は商用リージョンでデフォルトでモデルアクセスを有効にします。残りのアカウントレベルゲートは Anthropic のワンタイムユースケースフォームです。AWS アカウント内の誰もそれを送信していない場合、Amazon Bedrock コンソールを開き、モデルカタログから Anthropic モデルを選択し、フォームを完成させます。AWS Organizations フォームと送信者が必要とする権限については、[ユースケース詳細を送信](/docs/ja/amazon-bedrock#1-submit-use-case-details)を参照してください。 |309| モデルアクセス | Amazon Bedrock はデフォルトで商用リージョンでモデルアクセスを有効にします。残りのアカウントレベルゲートは Anthropic のワンタイムユースケースフォームです。AWS アカウント内の誰もそれを送信していない場合、Amazon Bedrock コンソールを開き、モデルカタログから Anthropic モデルを選択し、フォームを完成させます。AWS Organizations フォームと送信者が必要な権限については、[ユースケース詳細を送信](/docs/ja/amazon-bedrock#1-submit-use-case-details)を参照してください。 |
268| EKS(IRSA) | 上記のポリシーと、クラスターの OIDC プロバイダーのトラストポリシーを持つ IAM ロールを作成します。ゲートウェイのサービスアカウントにスコープされます。サービスアカウントに `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway` でアノテーションを付けます。`auth: {}` はそれを取得します。 |310| EKS(IRSA) | クラスターの OIDC プロバイダーにスコープされたゲートウェイのサービスアカウントの信頼ポリシーを持つ IAM ロールを作成します。サービスアカウントに `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway` で注釈を付けます。`auth: {}` がそれを取得します。 |
269| ECS / EC2 | IAM ロールをタスク定義またはインスタンスプロファイルにアタッチします。`auth: {}` はそれを取得します。 |311| ECS / EC2 | IAM ロールをタスク定義またはインスタンスプロファイルにアタッチします。`auth: {}` がそれを取得します。 |
270| その他の場所 | `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY`、`AWS_SESSION_TOKEN` 環境変数を通じて認証情報を渡すか、`${VAR}` 展開で `auth:` に明示的に設定します。 |312| その他の場所 | `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY`、および `AWS_SESSION_TOKEN` 環境変数を通じて認証情報を渡すか、`${VAR}` 展開で `auth:` に明示的に設定します |
271| リージョン | `region:` は API エンドポイントリージョンです。クロスリージョン推論プロファイルは、どれを選択するかに関わらず、地理(US、EU、APAC)全体でルーティングします。非 US リージョンまたはプロビジョニングされたスループット ARN の場合、正しいアップストリームごとの ID を持つ [`models:`](#models) ブロックを追加します。 |313| リージョン | `region:` は API エンドポイントリージョンです。クロスリージョン推論プロファイルは、どれを選択するかに関わらず、地理(US、EU、APAC)全体でルーティングします。US 以外のリージョンまたはプロビジョニングされたスループット ARN の場合、正しい per-upstream ID を持つ [`models:`](#models) ブロックを追加します。 |
314
315<h5 id="apply-an-amazon-bedrock-guardrail">
316 Amazon Bedrock ガードレールを適用
317</h5>
318
319ゲートウェイが Bedrock アップストリームを通じて送信するすべての推論リクエストに Amazon Bedrock ガードレールを適用するには、そのアップストリームに `guardrail` ブロックを追加します。ゲートウェイサーバーで Claude Code v2.1.281 以降が必要です。
320
321```yaml theme={null}
322upstreams:
323 - provider: bedrock
324 region: us-east-1
325 auth: {}
326 guardrail:
327 id: gr-abc123 # guardrail ID or full ARN
328 version: "1" # a published version number, or DRAFT
329 # keep the quotes: a bare 1 fails at boot
330```
331
332<Warning>
333 ゲートウェイはガードレール入力タグをサポートしていません。プロンプトにガード コンテンツタグを追加しないため、Amazon Bedrock がタグ付き入力にのみ適用するガードレールフィルターはゲートウェイを通じたトラフィックで実行されません。入力タグに依存するフィルターについては、Amazon Bedrock ドキュメントの[入力タグ](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html)を参照してください。
334</Warning>
335
336また、このアップストリームのリクエストに署名するプリンシパル(ゲートウェイの AWS プリンシパル、または [`assume_role`](#bedrock-in-another-aws-account) で `role_arn` に名前を付けたロール)にガードレールで `bedrock:ApplyGuardrail` を付与します。
337
338すべての `bedrock` アップストリームで `guardrail` を設定するか、どれにも設定しないでください。ゲートウェイは混合で起動を拒否します。[フェイルオーバー](#multiple-upstreams)がリクエストをガードレールのない Bedrock アップストリームに送信する可能性があるためです。
339
340ガードレールは Bedrock アップストリームのみをカバーします。`upstreams` に別のプロバイダーをリストする場合、ゲートウェイはガードレールなしでそのプロバイダーにリクエストを送信します。
341
342`/v1/messages` リクエストの本体が `amazon-bedrock-guardrailConfig` などの `amazon-bedrock-*` フィールドを含む場合、ガードレール セットを持つ Bedrock アップストリームに到達すると、ゲートウェイは 400 で応答し、転送しません。
343
344<a id="bedrock-in-another-aws-account" />
345
346<h5 id="bedrock-in-another-aws-account">
347 別の AWS アカウントの Bedrock
348</h5>
349
350Bedrock アップストリームで `assume_role` を設定し、ゲートウェイは独自の AWS アイデンティティを使用して、名前を付けたロールで `sts:AssumeRole` を呼び出すだけです。別の AWS アカウントにある可能性があります。そのアップストリームからのすべての Bedrock リクエストは、STS が返す 1 時間の認証情報で署名されるため、長期アクセスキーはアカウント間を通過しません。
351
352Claude Code v2.1.281 以降を実行しているゲートウェイが必要です。以前のゲートウェイはキーを見つけたときに起動を拒否します。
353
354```yaml theme={null}
355upstreams:
356 - name: bedrock-isolated
357 provider: bedrock
358 region: us-east-1
359 auth: {} # the gateway's own role: it only calls STS
360 assume_role:
361 role_arn: arn:aws:iam::222222222222:role/claude-gateway-bedrock
362 # external_id: ${BEDROCK_ROLE_EXTERNAL_ID} # when the role's trust policy requires one
363```
364
365`assume_role` ブロックは 3 つのキーを取ります:
366
367| キー | 意味 |
368| - | - |
369| `role_arn` | ゲートウェイが想定する IAM ロール。`arn:aws:iam::` または `arn:aws-us-gov:iam::` ARN として。このアップストリームが必要とする [Bedrock 権限](#amazon-bedrock)、`bedrock:CountTokens` を含む、およびアップストリームが `guardrail` を設定する場合は `bedrock:ApplyGuardrail` を与えます。 |
370| `external_id` | オプション。すべての `sts:AssumeRole` 呼び出しで外部 ID として送信されます。ロールの信頼ポリシーが 1 つを必要とする場合に設定し、すべての数字の場合は引用符で囲みます。 |
371| `session_name` | オプション。`email` または `sub` は各開発者に独自のセッションを与えます。[Per-developer AWS コスト属性](#per-developer-aws-cost-attribution)を参照してください。設定解除されている場合、すべてのリクエストは `claude-apps-gateway` という名前の 1 つのセッションを使用します。 |
372
373ロールの信頼ポリシーはゲートウェイ独自のプリンシパル(IRSA または ECS タスクロールなど)に名前を付けます。そのプリンシパルはロールで `sts:AssumeRole` が必要で、Bedrock 権限はありません。`external_id` を設定しない場合は `Condition` を削除します。
374
375```json theme={null}
376{
377 "Version": "2012-10-17",
378 "Statement": [{
379 "Effect": "Allow",
380 "Principal": { "AWS": "arn:aws:iam::111111111111:role/claude-gateway" },
381 "Action": "sts:AssumeRole",
382 "Condition": { "StringEquals": { "sts:ExternalId": "your-external-id" } }
383 }]
384}
385```
386
387* STS が拒否または到達不可の場合、ゲートウェイはアップストリーム独自の認証情報でリクエストを送信しません。STS エラーをログに記録し、何をチェックするかを記録してから、リストした次のアップストリームを試みます。[アップストリームエラーメッセージ](#upstream-error-messages)は、アップストリームが成功しない場合にクライアントが受け取るものをカバーしています。`assume_role` のない後のアップストリームはそれ独自の認証情報でリクエストを提供するため、それが望むものの場合のみリストします。
388* ゲートウェイは地域 STS エンドポイント `sts.<region>.amazonaws.com` を呼び出します。ネットワークはそれに到達する必要があります。FIPS エンドポイントの場合、AWS 設定ファイルの `use_fips_endpoint` ではなく、ゲートウェイの環境で `AWS_USE_FIPS_ENDPOINT=true` を設定します。
389* `assume_role` は `provider: bedrock` にのみ適用され、SigV4 ソース認証情報が必要です。ゲートウェイは `aws_bearer_token` の隣に設定されている場合、起動を拒否します。
390* ゲートウェイが許可するすべての開発者はこのアップストリームを使用できます。[`managed`](#managed) はどの開発者がどのモデルを使用できるかを制御します。ロールを通じて提供されるモデルが別のアカウントからも提供されるのを防ぐには、`upstream_model` マップがこのアップストリームの名前のみを持つカスタム id を与えます。そのような id の場合、ゲートウェイはすべての他のアップストリームをスキップするため、リクエストもそれに到達する放棄されたリクエストのトークンカウントも別のアカウントにフェイルオーバーできません。組み込みモデル名はまだすべてのアップストリームで順に試みられます。これを含みます。そのアカウントもそれらを提供する場合を除き、このアップストリームを最後にリストします。
391
392この例は、分離されたアップストリームのみが提供するカスタム id を持つ 1 つのモデルを与えます:
393
394```yaml theme={null}
395models:
396 - id: claude-opus-restricted # a custom id, not a built-in model name
397 upstream_model:
398 bedrock-isolated: us.anthropic.claude-opus-4-8 # the only upstream that serves it
399```
400
401<a id="per-developer-aws-cost-attribution" />
402
403<h5 id="per-developer-aws-cost-attribution">
404 Per-developer AWS コスト属性
405</h5>
406
407デフォルトでは、ゲートウェイはすべての Bedrock リクエストに 1 つの認証情報で署名するため、AWS はすべての開発者のリクエストを単一の IAM プリンシパルの下で見ます。[`assume_role`](#bedrock-in-another-aws-account) に `session_name: email` を追加し、ゲートウェイは開発者ごとに 1 時間ごとに `sts:AssumeRole` を呼び出し、セッション名をその開発者のメールに設定し、返された認証情報でリクエストに署名するため、各開発者のリクエストは独自の想定ロールセッションの下で AWS に到達します。ロールはゲートウェイ独自のアカウントにある可能性があります。
408
409Claude Code v2.1.281 以降を実行しているゲートウェイが必要です。[AWS でのコスト属性](/docs/ja/claude-apps-gateway-on-aws#cost-attribution)は IAM ロールと AWS 請求がセッションを表示する場所をカバーしています。
410
411```yaml theme={null}
412upstreams:
413 - provider: bedrock
414 region: us-east-1
415 auth: {} # the gateway's own role: it only calls STS
416 assume_role:
417 role_arn: arn:aws:iam::123456789012:role/claude-gateway-bedrock-user
418 session_name: email # or sub
419```
420
421`session_name` は、検証されたクレームが AWS `RoleSessionName` になるかを選択します:`email` または `sub`。ゲートウェイは ASCII 文字、数字、および `_+,.@-` 以外の任意の文字を UTF-8 バイトごとに `=XX` 16 進数として書き込み、64 文字より長い結果をプレフィックスとハッシュに短縮するため、各開発者のセッション名は有効で一意のままです。トークンがクレームを欠いている開発者からのリクエストはこのアップストリームを通じて送信されず、オペレーター ログは `sub` に切り替えるか [`oidc.email_claim`](#oidc) を設定するよう指示します。
422
423アクティブな開発者は、ゲートウェイレプリカあたり 1 時間あたり 1 つの STS 呼び出しをコストします。同時最初リクエストは 1 つの呼び出しを共有します。
424
425ゲートウェイはこのロールで 1 つの呼び出しも行います。クライアントが放棄したリクエストのトークンカウント。[支出制限](/docs/ja/claude-apps-gateway-spend-limits)が正確に保たれるようにするためです。そのカウントと[1 トークンフォールバックリクエスト](#amazon-bedrock)は共有 `claude-apps-gateway` セッションで署名されるため、AWS はフォールバックを `claude-apps-gateway` ではなく開発者に属性付けします。
426
427厳密な per-developer 属性の場合、すべての Bedrock アップストリームで `assume_role` を `session_name` で設定します。それなしのアップストリームは独自の認証情報でリクエストに署名します。
272 428
273<h4 id="claude-platform-on-aws">429<h4 id="claude-platform-on-aws">
274 Claude Platform on AWS430 Claude Platform on AWS
275</h4>431</h4>
276 432
277Claude Platform on AWS は `aws-external-anthropic.<region>.api.aws` で AWS インフラストラクチャ上の第一者 Anthropic API を提供します。第一者モデル ID を使用し、送信されたとおりに `anthropic-beta` ヘッダーを尊重し、`count_tokens` を提供するため、Bedrock 固有の翻訳は適用されません。`anthropicAws` プロバイダーには Claude Code v2.1.198 以降が必要です。以前のゲートウェイリリースはブート時にそれを拒否します。433Claude Platform on AWS は、`aws-external-anthropic.<region>.api.aws` で AWS インフラストラクチャ上の第一者 Anthropic API を提供します。第一者モデル ID を使用し、`anthropic-beta` ヘッダーを送信されたとおりに尊重し、`count_tokens` を提供するため、Bedrock 固有の翻訳は適用されません。`anthropicAws` プロバイダーには Claude Code v2.1.198 以降が必要です。以前のゲートウェイリリースはブート時にそれを拒否します。
278 434
279同じプラットフォームのクライアント側デプロイメントについては、[Claude Platform on AWS の Claude Code](/docs/ja/claude-platform-on-aws) を参照してください。ゲートウェイ側のアップストリーム。435同じプラットフォームのクライアント側デプロイメントについては、[Claude Code on Claude Platform on AWS](/docs/ja/claude-platform-on-aws) を参照してください。ゲートウェイ側のアップストリーム:
280 436
281```yaml theme={null}437```yaml theme={null}
282upstreams:438upstreams:
295 # base_url: https://aws-external-anthropic.us-east-1.api.aws451 # base_url: https://aws-external-anthropic.us-east-1.api.aws
296```452```
297 453
298プラットフォームは Amazon Bedrock とは別の AWS アカウントで実行され、独自のサービス名 `aws-external-anthropic` の SigV4 リクエストに署名するため、Bedrock スコープの IAM ロールはそれを認可しません。`auth.api_key` の API キーは SigV4 認証情報も設定されている場合に優先されます。空の `auth` ブロックは AWS SDK のデフォルト認証情報チェーンを使用します。[Amazon Bedrock](#amazon-bedrock) アップストリームが使用するのと同じチェーンです。454プラットフォームはゲートウェイの環境で Amazon Bedrock とは別の AWS アカウントで実行され、独自のサービス名 `aws-external-anthropic` の SigV4 リクエストに署名するため、Bedrock スコープの IAM ロールはそれを認可しません。`auth.api_key` の API キーは SigV4 認証情報も設定されている場合に優先されます。空の `auth` ブロックは AWS SDK のデフォルト認証情報チェーンを使用します。[Amazon Bedrock](#amazon-bedrock) アップストリームが使用するのと同じチェーン。
299 455
300| フィールド | 必須 | 説明 |456| フィールド | 必須 | 説明 |
301| - | - | - |457| - | - | - |
302| `region` | はい | AWS リージョン。小文字、数字、ハイフン。ゲートウェイは `https://aws-external-anthropic.<region>.api.aws` としてエンドポイントを導出します。 |458| `region` | はい | AWS リージョン。小文字、数字、およびハイフン。ゲートウェイはそれからエンドポイントを `https://aws-external-anthropic.<region>.api.aws` として導出します。 |
303| `workspace_id` | はい | すべてのリクエストでヘッダーとして送信されます。プラットフォームはそれを必要とします。 |459| `workspace_id` | はい | すべてのリクエストでヘッダーとして送信されます。プラットフォームはそれを必要とします |
304| `auth.api_key` | いいえ | プラットフォームの API キー。`x-api-key` として送信されます。ベアラートークンではありません。2 つの認証モードは API キーまたは SigV4 です。 |460| `auth.api_key` | いいえ | プラットフォームの API キー。`x-api-key` として送信されます。ベアラートークンではありません。2 つの認証モードは API キーまたは SigV4 です。 |
305| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | いいえ | 明示的な SigV4 認証情報。一方を他方なしで設定するとブート時に失敗します。`auth.aws_session_token` はそれらと一緒に受け入れられます。 |461| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | いいえ | 明示的な SigV4 認証情報。一方を他方なしで設定するとブート時に失敗します。`auth.aws_session_token` はそれらと一緒に受け入れられます。 |
306| `base_url` | いいえ | 導出されたエンドポイントをオーバーライドします。 |462| `base_url` | いいえ | 導出されたエンドポイントをオーバーライド |
307 463
308プラットフォームは第一者モデル ID を解決するため、組み込みカタログは [`models:`](#models) ブロックなしでそれにルーティングします。`models:` リストをキュレートする場合、エントリを `anthropicAws:` で第一者 ID でキーします。464プラットフォームは第一者モデル ID を解決するため、組み込みカタログは [`models:`](#models) ブロックなしでそれにルーティングします。`models:` リストをキュレートする場合、エントリを `anthropicAws:` で第一者 ID でキーします。
309 465
311 Google Cloud Agent Platform467 Google Cloud Agent Platform
312</h4>468</h4>
313 469
314同等のクライアント側セットアップについては、[Google Cloud の Claude Code](/docs/ja/google-vertex-ai) を参照してください。ゲートウェイ側のアップストリーム。470同等のクライアント側セットアップについては、[Claude Code on Google Cloud](/docs/ja/google-vertex-ai) を参照してください。ゲートウェイ側のアップストリーム:
315 471
316```yaml theme={null}472```yaml theme={null}
317upstreams:473upstreams:
325 # base_url: https://us-east5-aiplatform.p.googleapis.com481 # base_url: https://us-east5-aiplatform.p.googleapis.com
326```482```
327 483
328空の `auth` ブロックは Application Default Credentials を使用します。`GOOGLE_APPLICATION_CREDENTIALS`、GCE メタデータ、または GKE Workload Identity。サービスアカウント JSON キーファイルはサポートされていますが、推奨されません。Workload Identity を使用するか、GCE または Cloud Run インスタンスにサービスアカウントをアタッチします。484空の `auth` ブロックは Application Default Credentials を使用します:`GOOGLE_APPLICATION_CREDENTIALS`、GCE メタデータ、または GKE Workload Identity。サービスアカウント JSON キーファイルはサポートされていますが、推奨されません。Workload Identity を使用するか、GCE または Cloud Run インスタンスにサービスアカウントをアタッチします。
329 485
330`region: global` を設定して、リージョナルエンドポイントの代わりに [Google Cloud の Agent Platform のグローバルエンドポイント](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations)を使用します。Google はその後、各リクエストを利用可能なリージョンにルーティングするため、リージョンごとのモデル可用性を追跡しません。特定のリージョンを設定するとすべてのリクエストをそれにピンします。486Google Cloud の Agent Platform の[グローバルエンドポイント](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations)を使用するには `region: global` を設定します。Google はその後、各リクエストを利用可能なリージョンにルーティングするため、per-region モデル可用性を追跡しません。特定のリージョンを設定するとすべてのリクエストをそれにピンします。
331 487
332| セットアップ | 方法 |488| セットアップ | 方法 |
333| - | - |489| - | - |
334| IAM 権限 | ゲートウェイのサービスアカウントにプロジェクトで `roles/aiplatform.user` を付与するか、`aiplatform.endpoints.predict` を持つカスタムロール。Google Cloud の Agent Platform API(`aiplatform.googleapis.com`)を有効にします。 |490| IAM 権限 | ゲートウェイのサービスアカウントにプロジェクトで `roles/aiplatform.user` を付与するか、`aiplatform.endpoints.predict` を持つカスタムロール。Google Cloud の Agent Platform API(`aiplatform.googleapis.com`)を有効にします。 |
335| モデルアクセス | Model Garden で、プロジェクトの Claude モデルを有効にします。それらは特定のリージョンに公開されます。サポートされているリージョンについてはモデルカードを確認してください。 |491| モデルアクセス | Model Garden で、プロジェクトの Claude モデルを有効にします。特定のリージョンに公開されます。サポートされているリージョンについてはモデルカードを確認してください。 |
336| GKE(Workload Identity) | GCP サービスアカウントをゲートウェイの Kubernetes サービスアカウントにバインドし、KSA に `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com` でアノテーションを付けます。`auth: {}` はそれを取得します。 |492| GKE(Workload Identity) | GCP サービスアカウントをゲートウェイの Kubernetes サービスアカウントにバインドし、KSA に `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com` で注釈を付けます。`auth: {}` がそれを取得します。 |
337| Cloud Run / GCE | サービスのサービスアカウントを `roles/aiplatform.user` を持つものに設定します。`auth: {}` はそれを取得します。 |493| Cloud Run / GCE | サービスのサービスアカウントを `roles/aiplatform.user` を持つものに設定します。`auth: {}` がそれを取得します。 |
338| その他の場所 | `auth: { service_account_json: /secrets/sa.json }`。JSON キーファイルへのパス。マウントされたシークレットとして。フィールドはキーコンテンツではなくファイルパスを取得するため、`${file:…}` 展開は関係ありません。 |494| その他の場所 | `auth: { service_account_json: /secrets/sa.json }`。マウントされたシークレットとしての JSON キーファイルへのパス。フィールドはキーコンテンツではなくファイルパスを取るため、`${file:…}` 展開は関係ありません。 |
339 495
340<h4 id="microsoft-foundry">496<h4 id="microsoft-foundry">
341 Microsoft Foundry497 Microsoft Foundry
342</h4>498</h4>
343 499
344クライアント側の Microsoft Foundry デプロイメントについては、[Microsoft Foundry の Claude Code](/docs/ja/microsoft-foundry) を参照してください。ゲートウェイ側のアップストリーム。500クライアント側の Microsoft Foundry デプロイメントについては、[Claude Code on Microsoft Foundry](/docs/ja/microsoft-foundry) を参照してください。ゲートウェイ側のアップストリーム:
345 501
346```yaml theme={null}502```yaml theme={null}
347upstreams:503upstreams:
353 # api_key: ${FOUNDRY_API_KEY}509 # api_key: ${FOUNDRY_API_KEY}
354```510```
355 511
356`use_azure_ad: true` は `DefaultAzureCredential` を通じて解決します。AKS、ACI、または App Service の Managed Identity。Azure CLI。または環境認証情報。API キーは機能しますが、プロジェクト全体であり、自動的にローテーションしません。Microsoft Foundry のエンドポイントは `resource:` から導出されます。Azure Government などのソブリンクラウドのオプション `base_url` を設定してオーバーライドします。512`use_azure_ad: true` は `DefaultAzureCredential` を通じて解決します:AKS、ACI、または App Service 上の Managed Identity。Azure CLI。または環境認証情報。API キーは機能しますが、プロジェクト全体であり、自動的にローテーションしません。Microsoft Foundry のエンドポイントは `resource:` から導出されます。Azure Government などのソブリンクラウドの場合、オプションの `base_url` を設定してオーバーライドします。
357 513
358| セットアップ | 方法 |514| セットアップ | 方法 |
359| - | - |515| - | - |
360| RBAC | ゲートウェイのアイデンティティに Microsoft Foundry リソースで `Azure AI User` または `Cognitive Services User` を付与します。 |516| RBAC | ゲートウェイのアイデンティティに Microsoft Foundry リソースで `Azure AI User` または `Cognitive Services User` を付与 |
361| デプロイメント | Microsoft Foundry は正規モデル ID ではなく、管理者が選択したデプロイメント名を使用します。各正規 ID をデプロイメント名にマップする [`models:`](#models) ブロックを追加します。 |517| デプロイメント | Microsoft Foundry は正規モデル ID ではなく、管理者が選択したデプロイメント名を使用します。各正規 ID をデプロイメント名にマップする [`models:`](#models) ブロックを追加します。 |
362| AKS(ワークロードアイデンティティ) | User-Assigned Managed Identity をクラスターの OIDC 発行者とフェデレーションし、ゲートウェイのサービスアカウントにバインドします。`use_azure_ad: true` は `WorkloadIdentityCredential` を通じてそれを取得します。 |518| AKS(ワークロードアイデンティティ) | User-Assigned Managed Identity をクラスターの OIDC 発行者とフェデレーションし、ゲートウェイのサービスアカウントにバインドします。`use_azure_ad: true` は `WorkloadIdentityCredential` を通じてそれを取得します。 |
363| ACI / App Service | リソースでシステム割り当てまたはユーザー割り当てのマネージドアイデンティティを有効にします。`use_azure_ad: true` はそれを取得します。 |519| ACI / App Service | リソースでシステム割り当てまたはユーザー割り当てマネージドアイデンティティを有効にします。`use_azure_ad: true` がそれを取得します。 |
364| その他の場所 | `auth: { api_key: "${FOUNDRY_API_KEY}" }`。`{ }` 内の `${…}` を引用します。 |520| その他の場所 | `auth: { api_key: "${FOUNDRY_API_KEY}" }`。`{ }` 内の `${…}` を引用符で囲みます。 |
521
522<h4 id="static-headers-on-upstream-requests">
523 アップストリームリクエストの静的ヘッダー
524</h4>
525
526ゲートウェイが 1 つのアップストリームに送信するリクエストに固定ヘッダーを追加するには、そのアップストリームで `headers:` を設定します。実行するプロキシがヘッダーでトラフィックをルーティングまたは属性付けする場合に使用します。
527
528`headers:` にはゲートウェイサーバーで Claude Code v2.1.277 以降が必要です。以前のゲートウェイはキーを見つけたときに起動を拒否します。すべてのレプリカをアップグレードしてからキーを追加し、以前のバージョンにロールバックする前にキーを削除します。
529
530ヘッダーは `base_url` が名前を付けるサーバー、または `base_url` が設定されていない場合はプロバイダー独自のエンドポイントに移動します。プロキシがそれらを削除しない限り、プロバイダーもそれらを受け取ります。
531
532この例は、`upstream-proxy.internal.example.com` のプロキシを通じて `provider: vertex` アップストリームに到達します。プロキシが読み取る `x-source` ヘッダーを設定し、`PROXY_TOKEN` 環境変数からのトークンを `x-proxy-token` として送信します:
533
534```yaml theme={null}
535upstreams:
536 - provider: vertex
537 region: us-east5
538 project_id: example-prod
539 base_url: https://upstream-proxy.internal.example.com
540 auth: {}
541 headers:
542 x-source: claude-apps-gateway
543 x-proxy-token: ${PROXY_TOKEN}
544```
545
546値は、どちらの端にもスペースのない印字可能な ASCII テキストです。数字、`true`、または `false` を引用符で囲んで、YAML がそれをテキストとして読むようにします。
547
548シークレットを設定ファイルから外すには、[シークレット展開](#secret-expansion)を使用して、`${VAR}` で環境変数から、または `${file:/path}` でファイルから値を読み込みます。空の値に解決する `${VAR}` はゲートウェイの起動を停止します。
549
550`headers:` はすべてのプロバイダーで機能し、各アップストリームは独自のみを送信します。
551
552ゲートウェイがアップストリームに送信するすべてのリクエストがそれらを含むわけではありません:
553
554| ゲートウェイがこのアップストリームに送信するリクエスト | `headers:` を含む |
555| - | - |
556| `/v1/messages`。ストリーミングまたはそうでなく、および `/v1/messages/count_tokens` | はい |
557| 別のアップストリームからフェイルオーバーしたリクエスト | はい。このアップストリームの `headers:` のみ |
558| クライアントが放棄したリクエストの Amazon Bedrock の `CountTokens` 呼び出し | いいえ |
559| Workload Identity Federation トークン交換 | いいえ |
560
561AWS SigV4 でリクエストに署名する Amazon Bedrock または Claude Platform on AWS アップストリームでは、これらのヘッダーは署名の一部であるため、プロキシはそれらを変更されずに通す必要があります。
562
563ゲートウェイが予約するヘッダー名を使用する場合、起動エラーはそのヘッダーに名前を付けて起動を拒否します。予約名には以下が含まれます:
564
565* `authorization` と `x-api-key`
566* `host`、`content-type`、および `user-agent`
567* `anthropic-`、`x-goog-`、`x-amz-`、または `x-amzn-` で始まる任意の名前
365 568
366<h4 id="multiple-upstreams">569<h4 id="multiple-upstreams">
367 複数のアップストリーム570 複数のアップストリーム
368</h4>571</h4>
369 572
370同じプロバイダーは異なる `name:` で複数回表示できます。これは異なるリージョン、異なるアカウント(異なる認証情報チェーン経由)、プロビジョニングされたスループット対オンデマンド、およびクロスプロバイダーフォールバックをカバーします。573同じプロバイダーは異なる `name:` で複数回表示できます。これは異なるリージョン、異なるアカウント(異なる認証情報チェーン経由)、プロビジョニングされたスループット対オンデマンド、およびクロスプロバイダーフェイルバックをカバーします。
371 574
372ゲートウェイはアップストリームを順に試みます。`5xx`、`429`、`401`、`403`、`404`、タイムアウト、および欠落エンドポイント(`501`)がフェイルオーバーします。他の `4xx` はそうしません。575ゲートウェイはアップストリームを順に試みます。`5xx`、`429`、`401`、`403`、`404`、タイムアウト、および欠落エンドポイント(`501`)がフェイルオーバーします。他の `4xx` はそうしません。
373 576
374`429` はアップストリーム容量ごとであるため、プロビジョニングされたスループット(PT)枯渇はオンデマンドにフェイルオーバーします。アップストリームで [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) を設定する場合、開発者のメールを含むリクエストへの `429` は per-user 拒否であり、フェイルオーバーしません。577`429` は per-upstream 容量であるため、プロビジョニングされたスループット(PT)枯渇はオンデマンドにフェイルオーバーします。アップストリームで [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) を設定する場合、開発者のメールを含むリクエストへの `429` は per-user 拒否であり、フェイルオーバーしません。
578
579すべてのリクエストは最初のアップストリームで開始されます。リクエストは、それより前のすべてのアップストリームが失敗したか、要求されたモデルを提供しない場合のみ、後のアップストリームに到達します。
580
581ゲートウェイは失敗したアップストリームの記録を保ちません。アップストリームがダウンしている間、それに到達するすべてのリクエストはそれを試み、失敗するのを待ってから先に進みます。
582
583Anthropic API アップストリームの場合、[`timeouts.upstream_ttfb_ms`](#http-tuning)はダウンアップストリームでの待機を制限します。その設定は他のプロバイダーには適用されません。ゲートウェイはアップストリームが応答を開始するまで最大 1 時間待機します。
375 584
376`404` はアップストリームモデル可用性ごとであるため、モデルを有効にしていないアップストリームは、それを提供する後のアップストリームをブロックしません。要求されたモデルを解決できないアップストリームはネットワークラウンドトリップなしでスキップされます。585`404` は per-upstream モデル可用性であるため、モデルを有効にしていないアップストリームは、それを提供する後のアップストリームをブロックしません。要求されたモデルを解決できないアップストリームはネットワークラウンドトリップなしでスキップされます。
377 586
378この例は、プロビジョニングされたスループット Amazon Bedrock 割り当てを最初にルーティングし、オンデマンドと 2 番目のアカウントにオーバーフローし、最後に Anthropic API にフォールバックします。587この例は、プロビジョニングされたスループット Amazon Bedrock 割り当てを最初にルーティングし、オンデマンドと 2 番目のアカウントにオーバーフロー、最後に Anthropic API にフォールバックします:
379 588
380```yaml theme={null}589```yaml theme={null}
381upstreams:590upstreams:
389 provider: bedrock598 provider: bedrock
390 region: us-west-2599 region: us-west-2
391 auth: {}600 auth: {}
392 # Different account: a separate Bedrock allotment via assumed-role creds.601 # Different account: a separate Bedrock allotment via static keys.
393 - name: bedrock-acct2602 - name: bedrock-acct2
394 provider: bedrock603 provider: bedrock
395 region: us-east-1604 region: us-east-1
415 624
416| レバー | 方法 |625| レバー | 方法 |
417| - | - |626| - | - |
418| 異なるリージョン | リージョンごとに 1 つの Amazon Bedrock アップストリーム。それぞれ独自の `region:`。[`auto_include_builtin_models: true`](#models) を使用すると、クロスリージョン推論プロファイルは自動的にルーティングします。リージョンピン留めデプロイメントの場合は `models:` ブロックを使用します。 |627| 異なるリージョン | リージョンごとに 1 つの Amazon Bedrock アップストリーム。独自の `region:` を持つ。[`auto_include_builtin_models: true`](#models) でクロスリージョン推論プロファイルは自動的にルーティングします。リージョンピン配置デプロイメントの場合、`models:` ブロックを使用します。 |
419| 異なるアカウント | アカウントごとに 1 つの Amazon Bedrock アップストリーム。それぞれ `auth:` に独自の認証情報。デフォルトチェーン(`auth: {}`)はポッドのアイデンティティを使用します。2 番目のアカウントの場合は、明示的な認証情報またはベアラートークンを設定します。 |628| 異なるアカウント | アカウントごとに 1 つの Amazon Bedrock アップストリーム。デフォルトチェーン(`auth: {}`)はポッドのアイデンティティを使用します。2 番目のアカウントの場合、短期認証情報でそれに到達するために [`assume_role`](#bedrock-in-another-aws-account) を追加するか、`auth:` で明示的な認証情報またはベアラートークンを設定します。 |
420| プロビジョニングされたスループット | そのアップストリームの名前の `models:` でモデルをプロビジョニングされたスループット ARN にマップします。他のアップストリームはオンデマンド ID を保つため、PT 容量はフェイルオーバーする前に枯渇します。 |629| プロビジョニングされたスループット | モデルをそのアップストリームの名前の `models:` のプロビジョニングされたスループット ARN にマップします。他のアップストリームはオンデマンド ID を保つため、PT 容量はフェイルオーバーする前に枯渇します。 |
421| VPC / FIPS エンドポイント | アップストリームで `base_url:` を VPC エンドポイントまたは FIPS エンドポイント URL に設定します。 |630| VPC / FIPS エンドポイント | アップストリームで `base_url:` を VPC エンドポイントまたは FIPS エンドポイント URL に設定 |
422| モデルスコープルーティング | 組み込み Claude モデルではないカスタムモデル `id` のみが、`upstream_model:` マップから欠落しているアップストリームをスキップします。ゲートウェイはすべてのアップストリームで組み込みモデルを試み、マップにエントリがない場合はプロバイダーのデフォルト ID を使用するため、組み込みモデルの場合、マップはアップストリームが試みられるかどうかではなく、アップストリームが受け取る ID を変更します。ID を拒否するアップストリームは、他のアップストリームエラーと同じ[フェイルオーバールール](#upstreams)に従います。 |631| モデルスコープルーティング | カスタムモデル `id` のみ。組み込み Claude モデルではなく、`upstream_model:` マップに存在しないアップストリームをスキップします。ゲートウェイは組み込みモデルをすべてのアップストリームで順に試み、マップに エントリがない場合はプロバイダーのデフォルト ID を使用するため、組み込みモデルの場合、マップはアップストリームが試みられるかどうかではなく、アップストリームが受け取る ID を変更します。ID を拒否するアップストリームは、他のアップストリームエラーと同じ[フェイルオーバールール](#upstreams)に従います。 |
423 632
424クラウドプロバイダー間、または直接 Anthropic API へのフェイルオーバーは、リクエストを管理する契約、地理、およびその他の条件を変更します。633クラウドプロバイダー間、または直接 Anthropic API へのフェイルオーバーは、リクエストを制御する契約、地理、およびその他の条件を変更します。
425 634
426CLI はゲートウェイに同じ機能ゲーティングを適用します。特定のリクエストがどのアップストリームを提供するかに関わらず、フェイルオーバーはアップストリームが拒否する本体フィールドを送信しません。635CLI は、どのアップストリームが特定のリクエストを提供するかに関わらず、ゲートウェイに同じ機能ゲーティングを適用するため、フェイルオーバーはアップストリームが拒否する本体フィールドを送信しません。
427 636
428<h2 id="optional-sections">637<h2 id="optional-sections">
429 オプションセクション638 オプションセクション
433 `admin`642 `admin`
434</h3>643</h3>
435 644
436オプション。`/v1/organizations/spend_limits` を有効にします。これは Anthropic のパブリック Admin API をミラーリングし、`/v1/messages` で開発者ごとの支出強制を行います。[支出制限](/docs/ja/claude-apps-gateway-spend-limits)で、キャップがどのように設定および強制されるかを参照してください。このセクションは、機能をオンにしてチューニングする `gateway.yaml` キーをカバーします。645オプション。`/v1/organizations/spend_limits` を有効にします。これは Anthropic のパブリック Admin API をミラーリングし、`/v1/messages` でデベロッパーごとの支出強制を行います。キャップの設定と強制方法については [支出制限](/docs/ja/claude-apps-gateway-spend-limits) を参照してください。このセクションでは、この機能をオンにしてチューニングする `gateway.yaml` キーについて説明します。
437 646
438```yaml theme={null}647```yaml theme={null}
439admin:648admin:
440 # 管理エンドポイント用の名前付き静的 API キー。x-api-key として送信されます。649 # 管理エンドポイント用の名前付き静的 API キー。x-api-key として送信されます。
441 # ID は監査ログに admin-key:<id> として表示されるため、各キーは650 # id は監査ログに admin-key:<id> として表示されるため、各キーは
442 # 属性可能です。回転用の配列:新しいキーを追加し、クライアントをロール、651 # 追跡可能です。ローテーション用の配列:新しいキーを追加し、
443 # 古いものを削除します。652 # クライアントをロールし、古いキーを削除します。
444 write_keys:653 write_keys:
445 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }654 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }
446 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }655 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }
447 read_keys:656 read_keys:
448 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }657 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }
449 # 通常のゲートウェイ JWT(API キーなし)経由で完全な管理者を付与された IdP グループ。658 # 通常のゲートウェイ JWT(API キーなし)を介して完全な管理者権限を付与される IdP グループ。
450 admin_groups: [platform-finops]659 admin_groups: [platform-finops]
451 blocked_message: request an increase at https://go.example.com/claude-limits660 blocked_message: request an increase at https://go.example.com/claude-limits
452```661```
453 662
454| フィールド | 必須 | 説明 |663| フィールド | 必須 | 説明 |
455| - | - | - |664| - | - | - |
456| `write_keys` | いいえ | `{id, key}` の配列。これらのいずれかと一致する `x-api-key` は、支出制限をリスト、設定、削除できます。キー値は少なくとも 32 文字である必要があります。`id` は `read_keys` と `write_keys` 全体で一意である必要があります。 |665| `write_keys` | いいえ | `{id, key}` の配列。これらのいずれかと一致する `x-api-key` は、支出制限をリスト、設定、削除できます。キー値は最低 32 文字である必要があります。`id` は `read_keys` と `write_keys` 全体で一意である必要があります。 |
457| `read_keys` | いいえ | `{id, key}` の配列。読み取り専用:すべての `GET` エンドポイント。キャップのリスト、ID による 1 つの取得、[`/effective`](/docs/ja/claude-apps-gateway-spend-limits#%2Feffective) と [`/audit`](/docs/ja/claude-apps-gateway-spend-limits#%2Faudit) の読み取りを含みます。 |666| `read_keys` | いいえ | `{id, key}` の配列。読み取り専用:すべての `GET` エンドポイント(キャップのリスト、ID による 1 つの取得、[`/effective`](/docs/ja/claude-apps-gateway-spend-limits#%2Feffective) と [`/audit`](/docs/ja/claude-apps-gateway-spend-limits#%2Faudit) の読み取りを含む)。 |
458| `admin_groups` | いいえ | IdP グループ名。`groups` クレームがこれらのいずれかを含むゲートウェイ JWT は、完全な管理者アクセス、読み取りと書き込みを持ち、`oidc:<sub>` として監査されます。人間の管理者に使用します。マシンに API キーを使用します。このリストの空のエントリはゲートウェイをブート時に停止します。[ゲートウェイをブート時に停止するマッチャー値](#matcher-values-that-stop-the-gateway-at-boot)を参照してください。 |667| `admin_groups` | いいえ | IdP グループ名。`groups` クレームにこれらのいずれかを含むゲートウェイ JWT は、完全な管理者アクセス(読み取りと書き込み)を持ち、`oidc:<sub>` として監査されます。人間の管理者にはこれを使用し、マシンには API キーを使用してください。このリストの空のエントリはブート時にゲートウェイを停止します。[ゲートウェイをブート時に停止させるマッチャー値](#matcher-values-that-stop-the-gateway-at-boot) を参照してください。 |
459| `blocked_message` | いいえ | ブロックされた開発者が見る `429 billing_error` に逐語的に追加されます。URL または Slack チャネルなど、完全な指示を書きます。未設定の場合、ゲートウェイはデフォルトメッセージのみを送信します。[強制がどのように機能するか](/docs/ja/claude-apps-gateway-spend-limits#how-enforcement-works)を参照してください。 |668| `blocked_message` | いいえ | ブロックされたデベロッパーが見る `429 billing_error` に逐語的に追加されます。URL や Slack チャネルなど、完全な指示を記述してください。設定されていない場合、ゲートウェイはデフォルトメッセージのみを送信します。[強制の仕組み](/docs/ja/claude-apps-gateway-spend-limits#how-enforcement-works) を参照してください。 |
460| `audit_retention_days` | いいえ | デフォルト `365`。古い `admin_audit` 行はスイープされます。 |669| `audit_retention_days` | いいえ | デフォルト `365`。古い `admin_audit` 行は削除されます。 |
461| `spend_retention_months` | いいえ | デフォルト `13`。この期間より古い `spend` カウンター行はスイープされます。デフォルトは、年間比較レポート用に完全な年と現在の部分月を保持します。 |670| `spend_retention_months` | いいえ | デフォルト `13`。この期間より古い `spend` カウンター行は削除されます。デフォルトは前年比レポート用に完全な 1 年と現在の部分月を保持します。 |
462| `identity_retention_days` | いいえ | デフォルト `90`。`principal_emails` 行の最後に見た TTL。各開発者のメール、表示名、グループ(PII)を保持します。意図的に支出保持より短いため、プロビジョニング解除されたアイデンティティは、その匿名支出カウンターが残っている間に期限切れになります。 |671| `identity_retention_days` | いいえ | デフォルト `90`。`principal_emails` 行の最後に見た TTL。各デベロッパーのメール、表示名、グループ(PII)を保持します。意図的に支出保持より短いため、プロビジョニング解除されたアイデンティティは古くなりますが、その匿名支出カウンターは残ります。 |
463| `group_limit_mode` | いいえ | `min`(デフォルト)または `max`。開発者が複数のグループにキャップがある場合、`min` は最も制限的なものを強制し、`max` は最も制限的でないものを強制します。強制と `/effective` の両方で使用されます。 |672| `group_limit_mode` | いいえ | `min`(デフォルト)または `max`。デベロッパーが複数のグループにキャップがある場合、`min` は最も制限的なものを強制し、`max` は最も制限的でないものを強制します。強制と `/effective` の両方で使用されます。 |
464 673
465<h3 id="enforcement">674<h3 id="enforcement">
466 `enforcement`675 `enforcement`
467</h3>676</h3>
468 677
469`enforcement` ブロックは、ストアが利用できない場合の支出制限チェックの動作を制御します。678`enforcement` ブロックは、ストアが利用できない場合に支出制限チェックがどのように動作するかを制御します。
470 679
471| フィールド | 必須 | 説明 |680| フィールド | 必須 | 説明 |
472| - | - | - |681| - | - | - |
473| `fail_closed_on_error` | いいえ | デフォルト `false`。支出強制は Postgres 停止時にオープンで失敗するため、推論は稼働したままです。`true` に設定してクローズで失敗:上限を超えた開発者はブロックされますが、ストアに到達できない場合は他のすべてもブロックされます。[`admin:`](#admin) ブロックが必要です:支出強制は `admin` が設定されている場合にのみ実行され、これを `true` に設定して `admin` ブロックなしでゲートウェイは起動を拒否します。 |682| `fail_closed_on_error` | いいえ | デフォルト `false`。支出強制は Postgres 停止時にオープンで失敗するため、推論は稼働し続けます。`true` に設定してクローズで失敗させます:キャップを超えたデベロッパーはブロックされますが、ストアに到達できない場合は他のすべてのユーザーもブロックされます。[`admin:`](#admin) ブロックが必要です:支出強制は `admin` が設定されている場合にのみ実行され、これを `true` に設定せずにゲートウェイが起動することを拒否します。 |
474 683
475<h3 id="pricing">684<h3 id="pricing">
476 `pricing`685 `pricing`
477</h3>686</h3>
478 687
479`pricing` ブロックは、支出メーターに USD リスト価格の代わりに請求する内容を指示するため、キャップと [`/effective`](/docs/ja/claude-apps-gateway-spend-limits#%2Feffective) は契約レートを反映します。金額は USD のままで、請求書ではなく見積もりのままです。2 つの前提条件:688`pricing` ブロックは、支出メーターに USD リスト価格の代わりに請求する内容を指示するため、キャップと [`/effective`](/docs/ja/claude-apps-gateway-spend-limits#%2Feffective) は契約レートを反映します。金額は USD のままで、請求書ではなく見積もりです。2 つの前提条件があります:
480 689
481* ゲートウェイサーバー上の Claude Code v2.1.227 以降。以前のバージョンはブート時に不明なキーを拒否します。690* ゲートウェイサーバー上の Claude Code v2.1.227 以降。以前のバージョンはブート時に不明なキーを拒否します。
482* [`admin:`](#admin) ブロック、または v2.1.268 以降では、少なくとも 1 つのポリシーを持つ [`managed:`](#managed) ブロック。支出メーターのみが `pricing` を読み込むためです。ゲートウェイは `pricing` が設定されていて両方のブロックがない場合、起動を拒否します。691* [`admin:`](#admin) ブロック、または v2.1.268 以降では、少なくとも 1 つのポリシーを持つ [`managed:`](#managed) ブロック。ゲートウェイは `pricing` が設定されていて、どちらのブロックもない場合、起動を拒否します。これは何も読まないためです。
483 692
484```yaml theme={null}693```yaml theme={null}
485pricing:694pricing:
495 704
496| フィールド | 必須 | 説明 |705| フィールド | 必須 | 説明 |
497| - | - | - |706| - | - | - |
498| `multiplier` | いいえ | デフォルト `1`。メーターはリスト価格またはオーバーライドされたかどうかに関わらず、すべてのメーター量にこれを乗算するため、`0.85` は価格の 85% を請求します。0 より大きく、最大 10 である必要があります。1 より上の値は [マークアップ](#mark-prices-up)です。 |707| `multiplier` | いいえ | デフォルト `1`。メーターはリスト価格またはオーバーライドされたかどうかに関わらず、すべてのメーター量にこれを乗算するため、`0.85` は価格の 85% を請求します。0 より大きく最大 10 である必要があり、1 より上の値は [マークアップ](#mark-prices-up) です。 |
499| `overrides` | いいえ | `{upstream, model, input, output, cache_read, cache_write}` の行。USD/百万トークン。4 つのレートすべてが必須です。各レートは 0 より大きく、最大 10000 である必要があります。 |708| `overrides` | いいえ | 100 万トークンあたり USD での `{upstream, model, input, output, cache_read, cache_write}` の行。4 つのレートすべてが必要です。各レートは 0 より大きく最大 10000 である必要があります。 |
500 709
501メーターがオーバーライド行をマッチする方法:710メーターがオーバーライド行をどのようにマッチングするか:
502 711
503* 行は、`upstream`([`upstreams[].name`](#upstreams))が `model` に対して提供するリクエストのリスト価格を置き換えます。これには、より高い [高速モード](/docs/ja/fast-mode#understand-the-cost-tradeoff) レートが含まれるため、高速と標準リクエストは同じ 4 つのレートでメーターされます。712* 行は、`upstream`([`upstreams[].name`](#upstreams))が `model` に対して提供するリクエストのリスト価格を置き換えます。これには、より高い [高速モード](/docs/ja/fast-mode#understand-the-cost-tradeoff) レートが含まれるため、高速リクエストと標準リクエストは同じ 4 つのレートでメーターされます。
504* `claude-sonnet-4-6` などの組み込み ID([`models[].id`](#models) のようにマッチ)は、メーターがそのモデルとして価格設定するすべての日付形式、地域 Amazon Bedrock 形式、または Google Cloud の Agent Platform 形式をカバーします。エイリアスまたは推論プロファイル ARN などの他の文字列は、クライアントが送信した ID またはアップストリームに送信された文字列と大文字小文字を区別せずにマッチします。713* `claude-sonnet-4-6` などの組み込み ID([`models[].id`](#models) のようにマッチング)は、メーターがそのモデルとして価格設定するすべての日付付き形式、地域の Amazon Bedrock 形式、または Google Cloud の Agent Platform 形式をカバーします。エイリアスや推論プロファイル ARN などの他の文字列は、クライアントが送信した ID または上流に送信された文字列と大文字小文字を区別しないでマッチングします。
505* 行が重複する場合、メーターは最初の行ではなく最も具体的な行を選択します:アップストリームに送信された正確なモデル文字列である `model` を持つ行、次にクライアントが送信した正確な ID にマッチする行、次に組み込みモデルに名前を付ける行。714* 行が重複する場合、メーターは最初の行ではなく最も具体的な行を選択します:上流に送信された正確なモデル文字列である `model` を持つ行、次にクライアントが送信した正確な ID とマッチングする行、次に組み込みモデルに名前を付ける行。
506* 不明なアップストリーム名はブートに失敗し、1 つのアップストリームに対して同じモデルに名前を付ける 2 つの行も失敗します。これには、組み込みモデルの 2 つのスペルが含まれます。ゲートウェイはブート時に、リクエスト可能なモデルが使用できない行について警告します。715* 不明な上流名はブート失敗を引き起こし、1 つの上流に対して同じモデルに名前を付ける 2 つの行も同様です(組み込みモデルの 1 つのスペルを含む)。ゲートウェイはブート時に、リクエスト可能なモデルが使用できない行について警告します。
507* Web 検索リクエストは \$0.01 リスト価格のままです。乗算器はそれらにも適用されます。716* Web 検索リクエストは \$0.01 リスト価格のままです。乗数はそれらにも適用されます。
508 717
509地域ごとのレートについては、各地域に独自の名前付きアップストリームを指定し、アップストリームごとに 1 つの行を指定します。718地域ごとのレートについては、各地域に独自の名前付き上流を与え、上流ごとに 1 つの行を与えます。
510 719
511<h4 id="mark-prices-up">720<h4 id="mark-prices-up">
512 価格をマークアップする721 価格をマークアップする
513</h4>722</h4>
514 723
515ゲートウェイサーバー上で v2.1.271 以降を使用すると、`multiplier` を 1 より上に設定でき、最大 10 まで、プロバイダーが請求するより多くをメーターするため、例えば内部チャージバックレート。この例は、すべてのリクエストを価格の 120% でメーターします:724ゲートウェイサーバー上の v2.1.271 以降では、`multiplier` を 1 より上に設定でき、最大 10 まで、プロバイダーが請求する以上にメーターするため、例えば内部チャージバックレートです。この例は、すべてのリクエストを価格の 120% でメーターします:
516 725
517```yaml theme={null}726```yaml theme={null}
518pricing:727pricing:
519 multiplier: 1.2728 multiplier: 1.2
520```729```
521 730
522[`admin:`](#admin) ブロックを使用すると、マークアップは支出制限にも適用されます。メーターは価格の 120% をカウントするため、開発者はキャップに早く到達します。ゲートウェイはブート時に、そのことを示す警告をログします。731[`admin:`](#admin) ブロックを使用すると、マークアップは支出制限にも適用されます。メーターは価格の 120% をカウントするため、デベロッパーはキャップに早く到達します。ゲートウェイはブート時に、そのことを示す警告をログに記録します。
523 732
524乗算器は、アップストリームプロバイダーがリクエストに請求する内容を変更しません。733乗数は、上流プロバイダーがリクエストに請求する内容を変更しません。
525 734
526ゲートウェイが [署名されたクライアントにレートを送信](#send-the-rates-to-signed-in-clients)する場合、開発者はマークアップを見るために Claude Code v2.1.271 以降が必要です。以前のクライアントは 1 より上の `multiplier` を無視し、それなしでコストを表示します。735ゲートウェイが [署名済みクライアントにレートを送信](#send-the-rates-to-signed-in-clients) する場合、デベロッパーは Claude Code v2.1.271 以降を必要とします。以前のクライアントは 1 より上の `multiplier` を無視し、それなしでコストを表示します。
527 736
528v2.1.271 より前のゲートウェイサーバーは、1 より上の `multiplier` を設定した場合、起動を拒否します。737v2.1.271 より前のゲートウェイサーバーは、`multiplier` を 1 より上に設定した場合、起動を拒否します。
529 738
530<h4 id="send-the-rates-to-signed-in-clients">739<h4 id="send-the-rates-to-signed-in-clients">
531 署名されたクライアントにレートを送信する740 署名済みクライアントにレートを送信する
532</h4>741</h4>
533 742
534ゲートウェイサーバー上で v2.1.268 以降を使用すると、ゲートウェイは `pricing` からのレートを提供する [`managed`](#managed) ポリシーに入れます。[`modelPricing`](/docs/ja/settings-reference#modelpricing) マネージド設定として。ポリシーにマッチした開発者は、`/usage`、ステータス行、OpenTelemetry で各モデル ID を提供する最初のアップストリームの `pricing` レートを見ます。ポリシーにマッチしない開発者はマネージド設定を受け取らないため、彼らの数字はリスト価格のままです。クライアントは Claude Code v2.1.242 以降で設定を適用します。743ゲートウェイサーバー上の v2.1.268 以降では、ゲートウェイは `pricing` からのレートを、提供する [`managed`](#managed) ポリシーに [`modelPricing`](/docs/ja/settings-reference#modelpricing) マネージド設定として入れます。ポリシーにマッチするデベロッパーは、`/usage`、ステータス行、OpenTelemetry で各モデル ID を提供する最初の上流の `pricing` レートを見ます。ポリシーにマッチしないデベロッパーはマネージド設定を受け取らないため、その数字はリスト価格のままです。クライアントは Claude Code v2.1.242 以降で設定を適用します。
535 744
536* ゲートウェイが追加するもの:ポリシーの `cli` ブロックが既に `modelPricing` を設定していない限り、ゲートウェイは `multiplier` を追加し、クライアントがリクエストできるすべてのモデル ID について、そのモデル ID を提供する最初のアップストリームのオーバーライド行を追加します。フェイルオーバーアップストリームのみが請求するレートはゲートウェイに留まります。745* ゲートウェイが追加するもの:ポリシーの `cli` ブロックが既に `modelPricing` を設定していない限り、ゲートウェイは `multiplier` と、クライアントがリクエストできるすべてのモデル ID について、それを提供する最初の上流のオーバーライド行を追加します。フェイルオーバー上流のみが請求するレートはゲートウェイに留まります。
537* 1 つのポリシーをオプトアウト:ポリシーの `cli` ブロックで `modelPricing` を `{}` に設定し、その開発者はリスト価格のままです。746* 1 つのポリシーをオプトアウトする:そのポリシーの `cli` ブロックで `modelPricing` を `{}` に設定し、そのデベロッパーはリスト価格のままです。
538* ポリシー独自のレートを保持:`cli` ブロックが独自の `multiplier` または `overrides` で `modelPricing` を設定するポリシーは、その `modelPricing` 全体を保持し、ゲートウェイはそれに独自のレートを追加しません。747* ポリシー独自のレートを保持する:`cli` ブロックが独自の `multiplier` または `overrides` で `modelPricing` を設定するポリシーは、その `modelPricing` 全体を保持し、ゲートウェイはそれに独自のレートを追加しません。
539 748
540<h3 id="models">749<h3 id="models">
541 `models`750 `models`
542</h3>751</h3>
543 752
544`models` ブロックはオプションの管理者がキュレーションしたモデルリストで、`/v1/models` で提供され、アップストリームごとのモデル ID を変換するために使用されます。US 以外の Amazon Bedrock リージョン、Amazon Bedrock プロビジョニングスループット ARN、Microsoft Foundry デプロイメント名に必須です。753`models` ブロックはオプションの管理者キュレーション済みモデルリストで、`/v1/models` で提供され、上流ごとにモデル ID を変換するために使用されます。これは、米国以外の Amazon Bedrock リージョン、Amazon Bedrock プロビジョニング済みスループット ARN、および Microsoft Foundry デプロイメント名に必須です。
545 754
546```yaml theme={null}755```yaml theme={null}
547auto_include_builtin_models: true # false:以下のリストのみを公開756auto_include_builtin_models: true # false: 以下のリストのみを公開
548models:757models:
549 - id: claude-opus-4-8758 - id: claude-opus-4-8
550 label: Claude Opus 4.8759 label: Claude Opus 4.8
551 # description:オプションのテキスト。クライアントに表示される場合がある760 # description: クライアントで表示されるオプションテキスト
552 upstream_model:761 upstream_model:
553 anthropic: claude-opus-4-8762 anthropic: claude-opus-4-8
554 bedrock: us.anthropic.claude-opus-4-8 # または推論プロファイル ARN763 bedrock: us.anthropic.claude-opus-4-8 # または推論プロファイル ARN
555 foundry: your-opus-deployment-name764 foundry: your-opus-deployment-name
556```765```
557 766
558`upstream_model` の下の各キーは、設定されたアップストリームの `name` と一致する必要があります。デフォルトはプロバイダー名です。アップストリームと一致しないキーはブートに失敗するため、使用しないプロバイダーの行は省略します。767`upstream_model` の各キーは、設定された上流の `name` と一致する必要があります。デフォルトはプロバイダー名です。キーが上流と一致しない場合、ブート失敗を引き起こすため、使用しないプロバイダーの行は省略してください。
559 768
560<h3 id="managed">769<h3 id="managed">
561 `managed`770 `managed`
562</h3>771</h3>
563 772
564`managed` ブロックは、IdP グループまたはメールドメインでキーイングされた、ロールベースのアクセスポリシーを定義します。ポリシーは順番に評価されます。最初のマッチが選択され、`match: {}` キャッチオール基盤にマージされます。ユーザーごとに `GET /managed/settings` で ETag/304 キャッシング付きで提供されます。773`managed` ブロックは、IdP グループまたはメールドメインをキーとしたロールベースのアクセスポリシーを定義します。ポリシーは順序で評価され、最初のマッチが選択され、`match: {}` キャッチオール基盤にマージされます。これらは `GET /managed/settings` でユーザーごとに ETag/304 キャッシング付きで提供されます。
565 774
566```yaml theme={null}775```yaml theme={null}
567managed:776managed:
571 cli:780 cli:
572 availableModels: [claude-sonnet-4-6]781 availableModels: [claude-sonnet-4-6]
573 permissions: { deny: ["WebFetch", "WebSearch"] }782 permissions: { deny: ["WebFetch", "WebSearch"] }
574 # デフォルトキャッチオール最後:認証されたすべてのユーザーにマッチします。783 # デフォルトキャッチオール最後:認証されたすべてのユーザーにマッチング。
575 - match: {}784 - match: {}
576 cli:785 cli:
577 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]786 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]
578```787```
579 788
580`match: {}` キャッチオール。慣例的に最後にリストされます。基盤層として扱われます。他のすべてのポリシーは、設定しないキーについてキャッチオールから継承するため、ロール別エントリは組織デフォルトから異なるものだけをリストする必要があります。マージルールはキータイプに依存します:789`match: {}` キャッチオール(慣例的に最後にリストされる)は基盤層として扱われます。他のすべてのポリシーは、設定しないキーについてキャッチオールから継承するため、ロールごとのエントリは組織のデフォルトから異なる内容のみをリストする必要があります。マージルールはキータイプに依存します:
581 790
582* **許可リスト**:`availableModels` と `permissions.allow`。特定のポリシーのリストは基盤のリストを完全に置き換えます。791* **許可リスト**:`availableModels` と `permissions.allow`。特定のポリシーのリストは基盤のリストを完全に置き換えます。
583* **拒否リストとフックアレイ**:`permissions.deny`、`permissions.ask`、`disabledMcpjsonServers`、`deniedMcpServers`、`blockedMarketplaces`、およびすべての `hooks` イベントタイプアレイ。これらは基盤とポリシーの和集合を取得するため、組織全体の拒否または監査フックは、ロール別オーバーライドによって誤ってドロップされることはできません。792* **拒否リストとフック配列**:`permissions.deny`、`permissions.ask`、`disabledMcpjsonServers`、`deniedMcpServers`、`blockedMarketplaces`、およびすべての `hooks` イベントタイプ配列。これらは基盤とポリシーの和集合を取るため、組織全体の拒否または監査フックはロールごとのオーバーライドで誤って削除されることはありません。
584* **レコードタイプキー**:`env`、`modelOverrides`、`skillOverrides`。これらは浅くマージするため、ロール別 `env` ブロックは設定するキーをオーバーライドし、基盤から残りを継承します。793* **レコード型キー**:`env`、`modelOverrides`、`skillOverrides`。これらは浅くマージするため、ロールごとの `env` ブロックは設定するキーをオーバーライドし、基盤から残りを継承します。
585 794
586`availableModels` は `/v1/messages` でサーバー側でも強制されるため、拒否されたモデルはクライアントが送信するものに関わらず `400` を返します。795`availableModels` は `/v1/messages` でサーバー側でも強制されるため、拒否されたモデルはクライアントが送信する内容に関わらず `400` を返します。
587 796
588ゲートウェイはリクエストをリレーする前に `model` 値自体を検証するため、形式が正しくない値がアップストリームに到達することはありません。2 つのケースで `400` でリクエストを拒否します:797ゲートウェイはリクエストを中継する前に `model` 値自体を検証するため、不正な形式の値は上流に到達しません。2 つの場合に `400` でリクエストを拒否します:
589 798
590* 値が欠落しているか空の場合、ゲートウェイはメッセージ `model is required` でリクエストを拒否します。このチェックには Claude Code v2.1.228 以降を実行しているゲートウェイが必要です。799* 値が欠落しているか空の場合、ゲートウェイはメッセージ `model is required` でリクエストを拒否します。このチェックには Claude Code v2.1.228 以降を実行しているゲートウェイが必要です。
591* 値が存在しているが文字列ではない場合、ゲートウェイはメッセージ `model must be a string` でリクエストを拒否します。Claude Code v2.1.221 以降を実行しているゲートウェイが必要です。800* 値が存在しているが文字列ではない場合、ゲートウェイはメッセージ `model must be a string` でリクエストを拒否します。Claude Code v2.1.221 以降を実行しているゲートウェイが必要です。
592 801
593| マッチャー | 動作 |802| マッチャー | 動作 |
594| - | - |803| - | - |
595| `match: {}` | 認証されたすべてのユーザーにマッチします。これで開始し、後で上にグループスコープポリシーを追加します。 |804| `match: {}` | すべての認証されたユーザーにマッチング。これで開始し、後で上にグループスコープのポリシーを追加します。 |
596| `match: { groups: [a, b] }` | JWT の `groups` クレームがリストされたグループのいずれかを含む場合にマッチします。大文字小文字を区別します:グループは IdP の正確な大文字小文字と一致する必要があります。 |805| `match: { groups: [a, b] }` | JWT の `groups` クレームにリストされたグループのいずれかが含まれている場合にマッチング。大文字小文字を区別します:グループは IdP の正確な大文字小文字と一致する必要があります。 |
597| `match: { email_domain: example.com }` | JWT の `email` クレームの最後の `@` の後の部分にマッチします。大文字小文字を区別しません。ポリシーごとに 1 つのドメインを受け入れます。 |806| `match: { email_domain: example.com }` | JWT の `email` クレームの最後の `@` の後の部分にマッチング。大文字小文字を区別しません。ポリシーごとに 1 つのドメインを受け入れます。 |
598| `match: { groups: [a], email_domain: example.com }` | 両方の条件がマッチする必要があります。 |807| `match: { groups: [a], email_domain: example.com }` | 両方の条件がマッチングする必要があります |
599 808
600ポリシーにマッチしない認証されたユーザーは、ゲートウェイのデフォルトを取得します。これは、カタログ内のすべてのモデルと管理設定なしを意味します。最後に `match: {}` キャッチオールを追加して、保証されたデフォルトポリシーが必要な場合。809認証されたユーザーがポリシーにマッチしない場合、ゲートウェイのデフォルトを取得します。これはカタログ内のすべてのモデルとマネージド設定なしを意味します。保証されたデフォルトポリシーが必要な場合は、最後に `match: {}` キャッチオールを追加してください。
601 810
602<Note>811<Note>
603 ゲートウェイは独自のユーザーディレクトリを保持しません。ユーザーの IdP トークンから各リクエストを認可し、トークンの `groups` クレームからグループメンバーシップを読み込み、それに対してポリシーを評価します。列挙するロスターはなく、事前作成するアカウントもありません。したがって、SCIM エンドポイントはありません。SCIM が同期するものがないためです。812 ゲートウェイは独自のユーザーディレクトリを保持しません。ユーザーの IdP トークンから各リクエストを認可し、トークンの `groups` クレームからグループメンバーシップを読み取り、それに対してポリシーを評価します。列挙するロスターはなく、事前作成するアカウントもなく、したがって SCIM エンドポイントもありません。SCIM が同期するものがないためです。
604 813
605 ユーザーとグループのライフサイクル管理を、真実の源である IdP のネイティブ SCIM プロビジョニングまたは専用アイデンティティガバナンスプラットフォームで実行します。メンバーシップとプロビジョニング解除はそこで管理され、トークンを通じてゲートウェイに自動的に流れます。Claude アカウント自体の SCIM プロビジョニングが必要な場合、それは [Claude for Enterprise](/docs/ja/admin-setup) 機能です。814 ユーザーとグループのライフサイクル管理を、真実の源である IdP のネイティブ SCIM プロビジョニングまたは専用のアイデンティティガバナンスプラットフォームで実行してください。そこで管理されるメンバーシップとプロビジョニング解除は、トークンを通じてゲートウェイに自動的に流れます。Claude アカウント自体の SCIM プロビジョニングが必要な場合、それは [Claude for Enterprise](/docs/ja/admin-setup) 機能です。
606 815
607 2 つの伝播クロックが適用されます:816 2 つの伝播クロックが適用されます:
608 817
609 * **ポリシーコンテンツ**:ポリシーを編集して再デプロイすると、接続されたクライアントの次のマネージド設定ポーリング時に到達します。1 時間以内。[次の起動時にのみ適用される変更](/docs/ja/server-managed-settings#fetch-and-caching-behavior)を除きます。818 * **ポリシーコンテンツ**:ポリシーを編集して再デプロイすると、接続されたクライアントの次のマネージド設定ポーリング時に到達します。1 時間以内。[次の起動時にのみ適用される変更](/docs/ja/server-managed-settings#fetch-and-caching-behavior) を除きます。
610 * **グループメンバーシップ**:ユーザーのグループメンバーシップを変更すると、どのポリシーが彼らにマッチするかが変わります。これは次のセッション再発行時に有効になります。つまり、次の無言リフレッシュ。`session.ttl_hours` で制限されます。819 * **グループメンバーシップ**:ユーザーのグループメンバーシップを変更すると、どのポリシーがそれらにマッチングするかが変わります。これは次のセッション再ミント時に有効になります。つまり、次のサイレントリフレッシュ。`session.ttl_hours` で制限されます。
611</Note>820</Note>
612 821
613<h4 id="matcher-values-that-stop-the-gateway-at-boot">822<h4 id="matcher-values-that-stop-the-gateway-at-boot">
614 ゲートウェイをブート時に停止するマッチャー値823 ゲートウェイをブート時に停止させるマッチャー値
615</h4>824</h4>
616 825
617ブート時に、ゲートウェイはすべてのポリシーの `match` ブロックと [`admin_groups`](#admin) リストをチェックします。これらの値のいずれかがゲートウェイをフィールドに名前を付けるエラーで停止します:826ブート時に、ゲートウェイはすべてのポリシーの `match` ブロックと [`admin_groups`](#admin) リストをチェックします。これらの値のいずれかがゲートウェイを停止させ、フィールドに名前を付けるエラーが発生します:
618 827
619* 空の `groups` リスト828* 空の `groups` リスト
620* `groups` または `admin_groups` の空のエントリ829* `groups` または `admin_groups` の空のエントリ
621* 空の `email_domain`830* 空の `email_domain`
622* `@`、空白、またはコンマを含む `email_domain`。ゲートウェイはこのチェック前に値をトリムし、1 つの先頭 `@` を削除します。`example.com` などの 1 つの裸のドメインを書きます。831* `@`、空白、またはコンマを含む `email_domain`。ゲートウェイはこのチェック前に値をトリミングし、1 つの先頭 `@` を削除します。`example.com` などの 1 つの裸のドメインを記述してください。
623 832
624v2.1.232 より前では、ゲートウェイはこれらの値で起動しました。各値はこの効果を持っていました:833v2.1.232 より前では、ゲートウェイはこれらの値で起動しました。各値はこの効果を持っていました:
625 834
626* 空の `email_domain`:ゲートウェイはドメインチェックをスキップしたため、空の `email_domain` と `groups` リストなしのポリシーはすべての認証されたユーザーにマッチしました。835* 空の `email_domain`:ゲートウェイはドメインチェックをスキップしたため、空の `email_domain` と `groups` リストなしのポリシーはすべての認証されたユーザーにマッチングしました。
627* 空の `groups` リスト:ポリシーは誰にもマッチしませんでした。836* 空の `groups` リスト:ポリシーは誰にもマッチングしませんでした。
628* `@`、空白、またはコンマを含む `email_domain`:ポリシーは誰にもマッチしませんでした。837* `@`、空白、またはコンマを含む `email_domain`:ポリシーは誰にもマッチングしませんでした。
629* `groups` または `admin_groups` の空のエントリ:エントリはそのユーザーの IdP `groups` クレームも空のエントリを含む場合にのみユーザーにマッチしました。`admin_groups` では、そのマッチは管理者アクセスを付与しました。`admin_groups` リストに空のエントリが含まれていない場合、誰もこの方法で管理者アクセスを取得しませんでした。838* `groups` または `admin_groups` の空のエントリ:エントリはそのユーザーの IdP `groups` クレームにも空のエントリが含まれている場合にのみユーザーにマッチングしました。`admin_groups` では、そのマッチングは管理者アクセスを付与しました。`admin_groups` リストに空のエントリが含まれていない場合、誰もこの方法で管理者アクセスを取得しませんでした。
630 839
631<h4 id="what-goes-in-cli">840<h4 id="what-goes-in-cli">
632 `cli` に何が入るか841 `cli` に何を入れるか
633</h4>842</h4>
634 843
635各 `cli` 値は、完全な Claude Code `managed-settings.json` ドキュメント。MDM または `/etc/claude-code/managed-settings.json` を通じてデプロイするのと同じスキーマ。ここでは YAML として表現されます。CLI は、マネージド層で配信されたドキュメントを適用します。ユーザーとプロジェクト設定の上。サーバー管理設定の代わりに。したがって、[OS レベルのポリシーソースに制限されている設定](/docs/ja/server-managed-settings#current-limitations)(`policyHelper` と `wslInheritsWindowsSettings` など)を無視します。844各 `cli` 値は完全な Claude Code `managed-settings.json` ドキュメント。MDM または `/etc/claude-code/managed-settings.json` を介してデプロイするのと同じスキーマ。YAML として表現されます。CLI は配信されたドキュメントをマネージド層で適用し、ユーザーとプロジェクト設定の上に、サーバーマネージド設定の代わりに適用します。したがって、[OS レベルのポリシーソースに限定される設定](/docs/ja/server-managed-settings#current-limitations)(`policyHelper` や `wslInheritsWindowsSettings` など)を無視します。
636 845
637ゲートウェイは、ブート時に CLI の設定スキーマに対して各ドキュメントを検証するため、認識されないトップレベルキーはすべての違反キーに名前を付けるエラーでブートに失敗します。スキーマの意図的にオープンな部分は、新しいクライアントがゲートウェイのスキーマが認識しないエントリを認識する可能性があるため、任意の値を受け入れます。これらのオープンキーは `env`、`pluginConfigs`、`permissions` の下にネストされたキーです。846ゲートウェイは各ドキュメントをブート時に CLI の設定スキーマに対して検証するため、認識されないトップレベルキーはブート失敗を引き起こし、すべての違反キーに名前を付けるエラーが発生します。スキーマの意図的にオープンな部分はまだ任意の値を受け入れます。新しいクライアントがゲートウェイのスキーマが認識しないエントリを認識する可能性があるためです。これらのオープンキーには `env`、`pluginConfigs`、`permissions` の下にネストされたキーが含まれます。
638 847
639検証はゲートウェイのインストール済みバージョンにバンドルされたスキーマを使用するため、新しい Claude Code リリースで導入されたトップレベル設定キーをマネージド設定に入れるには、最初にゲートウェイをアップグレードする必要があります。新しいポリシーを 1 つのクライアントでスモークテストしてから、ロールアウトします。848検証はゲートウェイのインストール済みバージョンにバンドルされたスキーマを使用するため、新しい Claude Code リリースで導入されたトップレベル設定キーをマネージド設定に入れるには、最初にゲートウェイをアップグレードする必要があります。新しいポリシーを 1 つのクライアントでスモークテストしてからロールアウトしてください。
640 849
641完全なキーリファレンスは [Claude Code 設定](/docs/ja/settings-reference#all-settings) にあります。オペレーターが最初に到達するキー:850完全なキーリファレンスは [Claude Code 設定](/docs/ja/settings-reference#all-settings) にあります。オペレーターが最初に手を伸ばすキー:
642 851
643```yaml theme={null}852```yaml theme={null}
644managed:853managed:
657 disableBypassPermissionsMode: disable # --dangerously-skip-permissions をブロック866 disableBypassPermissionsMode: disable # --dangerously-skip-permissions をブロック
658 allowManagedPermissionRulesOnly: true # ユーザー/プロジェクト権限ルールを無視867 allowManagedPermissionRulesOnly: true # ユーザー/プロジェクト権限ルールを無視
659 868
660 # CLI プロセスにプッシュされた環境。DISABLE_UPDATES はバックグラウンドと手動更新をブロック;DISABLE_AUTOUPDATER はバックグラウンド更新のみを停止。869 # CLI プロセスにプッシュされた環境。DISABLE_UPDATES はバックグラウンドと
870 # 手動更新をブロックします。DISABLE_AUTOUPDATER はバックグラウンド更新のみを停止します。
661 env:871 env:
662 DISABLE_UPDATES: "1" # 独自の配布経由でバージョンをピン872 DISABLE_UPDATES: "1" # 独自の配布を介してバージョンをピン留め
663 873
664 # 組織全体のフック。フックコマンドはゲートウェイではなく開発者マシンで実行されるため、パスはポリシー内のすべてのクライアント OS に存在する必要があります。874 # 組織全体のフック。フックコマンドはゲートウェイではなく
875 # デベロッパーマシンで実行されるため、パスはポリシー内のすべてのクライアント OS に存在する必要があります。
665 hooks:876 hooks:
666 PostToolUse:877 PostToolUse:
667 - matcher: "Edit|Write"878 - matcher: "Edit|Write"
672| キー | 強制者 | 効果 |883| キー | 強制者 | 効果 |
673| - | - | - |884| - | - | - |
674| `availableModels` | ゲートウェイ + CLI | モデル許可リスト。`/v1/messages` でもチェックされるため、パッチされたクライアントはバイパスできません。 |885| `availableModels` | ゲートウェイ + CLI | モデル許可リスト。`/v1/messages` でもチェックされるため、パッチされたクライアントはバイパスできません。 |
675| `permissions.allow` / `.deny` | CLI | ツールとコマンドルール。[権限](/docs/ja/permissions)を参照してください。 |886| `permissions.allow` / `.deny` | CLI | ツールとコマンドルール。[権限](/docs/ja/permissions) を参照してください。 |
676| `permissions.disableBypassPermissionsMode` | CLI | `disable` に設定して [`bypassPermissions`](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode) をブロック。すべてのツール呼び出しを自動承認するモード、および `--dangerously-skip-permissions` フラグ。 |887| `permissions.disableBypassPermissionsMode` | CLI | `disable` に設定して [`bypassPermissions`](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode)(権限プロンプトをスキップするモード)と `--dangerously-skip-permissions` フラグをブロックします。 |
677| `allowManagedPermissionRulesOnly` | CLI | `true` の場合、マネージド設定は権限ルールの唯一の設定ソースになります。[`allowManagedPermissionRulesOnly`](/docs/ja/settings-reference#allowmanagedpermissionrulesonly) エントリは Claude Code がその後無視するすべてのソースをリストします。 |888| `allowManagedPermissionRulesOnly` | CLI | `true` の場合、マネージド設定は権限ルールの唯一の設定ソースになります。[`allowManagedPermissionRulesOnly`](/docs/ja/settings-reference#allowmanagedpermissionrulesonly) エントリは Claude Code が無視するすべてのソースをリストします。 |
678| `env` | CLI | CLI プロセスにマージされた環境変数。テレメトリ、自動更新、モデル名オーバーライドに使用します。 |889| `env` | CLI | CLI プロセスにマージされた環境変数。テレメトリ、自動更新、モデル名オーバーライドに使用します。 |
679| `hooks` | CLI | 組織全体の [フック](/docs/ja/hooks)。 |890| `hooks` | CLI | 組織全体の [フック](/docs/ja/hooks) |
680| `managedMcpServers` | CLI | リモート MCP サーバー [マッチする開発者ごとに提供](/docs/ja/managed-mcp#provide-servers-through-managed-settings)。彼らが自分で追加するサーバーの横に、`http` と `sse` のみ。[ポリシー内の MCP サーバー](#mcp-servers-in-a-policy)を参照してください。ゲートウェイサーバーとクライアント上で Claude Code v2.1.259 以降が必要です。以前のクライアントはキーを無視します。 |891| `managedMcpServers` | CLI | [マッチングするすべてのデベロッパーに提供される](/docs/ja/managed-mcp#provide-servers-through-managed-settings) リモート MCP サーバー。彼ら自身が追加するサーバー、`http` と `sse` のみ。[ポリシー内の MCP サーバー](#mcp-servers-in-a-policy) を参照してください。ゲートウェイサーバー上の Claude Code v2.1.259 以降とクライアント上が必要です。以前のクライアントはキーを無視します。 |
681 892
682これらの設定はネットワーク経由で到着するため、CLI は以下にリストされた設定を適用する前に、各開発者にセキュリティ承認ダイアログを表示します:893これらの設定はネットワーク経由で到着するため、CLI は以下にリストされた設定を適用する前に、各デベロッパーにセキュリティ承認ダイアログを表示します:
683 894
684* `hooks`895* `hooks`
685* プロキシとベース URL 変数など、開発者の承認が必要な `env` 変数896* プロキシとベース URL 変数など、デベロッパーの承認が必要な `env` 変数
686* `apiKeyHelper` と `statusLine` などのシェル実行設定897* `apiKeyHelper` や `statusLine` などのシェル実行設定
687* サンドボックスバイナリ設定 `sandbox.bwrapPath`、`sandbox.socatPath`、`sandbox.ripgrep`898* サンドボックスバイナリ設定 `sandbox.bwrapPath`、`sandbox.socatPath`、`sandbox.ripgrep`
688* `sandbox.network.tlsTerminate` とプロキシポート設定など、トラフィックをインターセプト、認証情報を注入、または分離を弱める Sandbox 設定。[セキュリティ承認ダイアログ](/docs/ja/server-managed-settings#security-approval-dialogs)はすべてをリストします。899* `sandbox.network.tlsTerminate` やプロキシポート設定など、トラフィックをインターセプト、認証情報を注入、または分離を弱める Sandbox 設定。[セキュリティ承認ダイアログ](/docs/ja/server-managed-settings#security-approval-dialogs) はすべてをリストします。
689 900
690[承認メモリ](/docs/ja/server-managed-settings#approval-memory)は、承認がどのくらい続くか、およびダイアログが再度表示されるときをカバーします。901[承認メモリ](/docs/ja/server-managed-settings#approval-memory) は承認がどのくらい続くか、ダイアログがいつ再度表示されるかをカバーします。
691 902
692Claude Code は、モデル選択設定や数値制限など、開発者の承認ダイアログを表示せずに配信された `env` 変数の一部を適用します。他の配信変数は、開発者の承認が必要な場合があります。空でないプロキシ、ベース URL、または `OTEL_EXPORTER_OTLP_ENDPOINT` 値は常にそうです。配信変数が承認を必要とする場合、ダイアログはそれに名前を付けます。903Claude Code は、モデル選択設定や数値制限など、デベロッパーの承認ダイアログを表示せずに配信された `env` 変数の一部を適用します。他の配信変数はデベロッパーの承認が必要な場合があります。空でないプロキシ、ベース URL、または `OTEL_EXPORTER_OTLP_ENDPOINT` 値は常にそうです。配信変数が承認を必要とする場合、ダイアログはそれに名前を付けます。
693 904
694[環境変数と承認ダイアログ](/docs/ja/server-managed-settings#environment-variables-and-the-approval-dialog)には詳細があります。配信値が承認を必要とするかどうかを決定する 4 つのプライバシートグルを含みます。v2.1.218 より前では、Claude Code はより少ない変数を開発者に尋ねずに適用したため、より多くの配信変数がダイアログをトリガーしました。905[環境変数と承認ダイアログ](/docs/ja/server-managed-settings#environment-variables-and-the-approval-dialog) には詳細があります。配信値がそれらが承認を必要とするかどうかを決定する 4 つのプライバシートグルを含みます。v2.1.218 より前では、Claude Code はより少ない変数をデベロッパーに尋ねずに適用したため、より多くの配信変数がダイアログをトリガーしました。
695 906
696ゲートウェイの [テレメトリ](#telemetry) 設定は `OTEL_EXPORTER_OTLP_ENDPOINT` をプッシュするため、`telemetry.forward_to` を設定すると、各インタラクティブクライアントで承認ダイアログがトリガーされます。ダイアログは、組織から開発者を保護するのではなく、開発者のマシンを侵害または敵対的なゲートウェイから保護します。907ゲートウェイの [テレメトリ](#telemetry) 設定は `OTEL_EXPORTER_OTLP_ENDPOINT` をプッシュするため、`telemetry.forward_to` を設定すると各インタラクティブクライアントでダイアログをトリガーします。ダイアログは組織をデベロッパーから保護するのではなく、デベロッパーのマシンを侵害されたまたは敵対的なゲートウェイから保護します。
697 908
698`-p` フラグを使用した非インタラクティブ実行はダイアログを表示できません。その実行のみのためにプッシュされた設定を適用し、それらを承認済みとして記録しないため、開発者の次のインタラクティブセッションはまだダイアログを表示します。v2.1.207 より前では、非インタラクティブ実行は設定を承認済みとして保存し、後のインタラクティブセッションはそれらのダイアログを表示しませんでした。909[非インタラクティブ実行](/docs/ja/server-managed-settings#security-approval-dialogs)(`claude -p` や Agent SDK セッションなど)はダイアログを表示できません。その実行のためにプッシュされた設定を適用し、それらを承認済みとして記録しないため、デベロッパーの次のインタラクティブセッションはまだダイアログを表示します。v2.1.207 より前では、非インタラクティブ実行は設定を承認済みとして保存し、後のインタラクティブセッションはそれらのダイアログを表示しませんでした。
699 910
700開発者が拒否した場合、Claude Code はポリシーを適用せずにそのセッションを終了します。新しいフックまたはダイアログをトリガーする env var を広いポリシーにプッシュすることは、Claude Code がマッチする開発者に次の起動時にダイアログを表示することを意味します。ダイアログは実行中のセッションで次の時間ごとのポーリング時に表示され、そうでなければ開発者の次の起動時に表示されます。911デベロッパーが拒否した場合、Claude Code はポリシーを適用するのではなく、そのセッションを終了します。新しいフック、またはダイアログをトリガーする任意の env 変数を広いポリシーにプッシュする場合、マッチングするすべてのデベロッパーはそのインタラクティブセッションでダイアログを見ます。実行中のインタラクティブセッションは次の時間ごとのポーリングでそれを表示し、そうでなければデベロッパーの次のインタラクティブ起動時に表示されます。
701 912
702`cli` キーは以前のリリースで `settings` という名前でした。その綴りはまだエイリアスとして受け入れられていますが、新しいデプロイメントは `cli` を使用する必要があります。913`cli` キーは以前のリリースで `settings` という名前でした。そのスペルはまだエイリアスとして受け入れられていますが、新しいデプロイメントは `cli` を使用する必要があります。
703 914
704<h4 id="mcp-servers-in-a-policy">915<h4 id="mcp-servers-in-a-policy">
705 ポリシー内の MCP サーバー916 ポリシー内の MCP サーバー
706</h4>917</h4>
707 918
708ポリシーが一致する Claude Code クライアントに MCP サーバーを提供するには、そのポリシーの `cli` ブロックで [`managedMcpServers`](/docs/ja/managed-mcp#provide-servers-through-managed-settings) を設定します。ゲートウェイサーバーとクライアント上で Claude Code v2.1.259 以降が必要です。919ポリシーが一致する Claude Code クライアントに MCP サーバーを提供するには、そのポリシーの `cli` ブロックで [`managedMcpServers`](/docs/ja/managed-mcp#provide-servers-through-managed-settings) を設定します。ゲートウェイサーバー上の Claude Code v2.1.259 以降とクライアント上が必要です。
709 920
710ゲートウェイは [Claude Code がクライアントで適用するのと同じルール](/docs/ja/managed-mcp#what-an-entry-can-contain)で各エントリをブート時にチェックし、エントリがチェックに失敗した場合、ゲートウェイは起動を拒否してエントリに名前を付けます。921ゲートウェイは各エントリをブート時に [Claude Code がクライアントで適用するのと同じルール](/docs/ja/managed-mcp#what-an-entry-can-contain) でチェックし、エントリがチェックに失敗した場合、ゲートウェイは起動を拒否し、エントリに名前を付けます。
711 922
712`gateway.yaml` に `${VAR}` 参照を書く場合、ゲートウェイはブート時に [シークレット展開](#secret-expansion) を通じてその環境から解決するため、マッチする各クライアントはリテラル値を受け取り、それを読み込むことができます。[提供されたサーバーのヘッダーガイダンス](/docs/ja/managed-mcp#provide-servers-through-managed-settings)は展開された値に適用されます。923`gateway.yaml` に `${VAR}` リファレンスを記述する場合、ゲートウェイは [シークレット展開](#secret-expansion) を通じてブート時にその環境から解決するため、マッチングするすべてのクライアントはリテラル値を受け取り、それを読むことができます。[提供されるサーバーのヘッダーガイダンス](/docs/ja/managed-mcp#provide-servers-through-managed-settings) は展開された値に適用されます。
713 924
714ゲートウェイは `cli` ブロック内の `.mcp.json` スペル `mcpServers` を拒否し、ブートエラーは使用するキーとして `managedMcpServers` に名前を付けます。v2.1.259 より前では、ゲートウェイは `cli` ブロック内の MCP サーバー定義を拒否しました。925ゲートウェイは `cli` ブロックの `.mcp.json` スペル `mcpServers` を拒否し、そのブート エラーは `managedMcpServers` を使用するキーに名前を付けます。v2.1.259 より前では、ゲートウェイは `cli` ブロック内の MCP サーバー定義を拒否しました。
715 926
716<h4 id="claude-desktop-overlay">927<h4 id="claude-desktop-overlay">
717 Claude Desktop オーバーレイ928 Claude Desktop オーバーレイ
718</h4>929</h4>
719 930
720組織が [Claude Desktop](/docs/ja/desktop) もデプロイする場合、同じゲートウェイが両方のクライアントに提供します。Claude Desktop の [マネージド設定](https://claude.com/docs/third-party/claude-desktop/configuration) で `bootstrapUrl` を `<listen.public_url>/user/bootstrap` にポイントします。Claude Desktop はその URL から OAuth 発行者を導出し、このゲートウェイに対して同じデバイスコード サインインを実行し、レスポンスから設定を取得します。931組織が [Claude Desktop](/docs/ja/desktop) もデプロイする場合、同じゲートウェイが両方のクライアントを提供します。Claude Desktop の [マネージド設定](https://claude.com/docs/third-party/claude-desktop/configuration) の `bootstrapUrl` を `<listen.public_url>/user/bootstrap` に指します。Claude Desktop はその URL から OAuth 発行者を導出し、このゲートウェイに対して同じデバイスコード サインインを実行し、応答からその設定を取得します。
721 932
722<Note>933<Note>
723 ゲートウェイサーバー上で Claude Code v2.1.203 以降が必要で、明示的なオプトイン:`/user/bootstrap` はポリシーがマッチするユーザーが `desktop` キーを持たない限り 404 を返します。空の `desktop: {}` はポリシーをオプトインし、`match: {}` 基盤層の `desktop` キーはすべてのポリシーをオプトインします。監査ログは各リクエストを `desktop_bootstrap.serve` または `desktop_bootstrap.denied` として記録します。934 ゲートウェイサーバー上の Claude Code v2.1.203 以降が必要で、明示的なオプトイン:`/user/bootstrap` はポリシーがユーザーと一致する `desktop` キーを持たない限り 404 を返します。空の `desktop: {}` はポリシーをオプトインし、`match: {}` 基盤層の `desktop` キーはそれを継承するすべてのポリシーをオプトインします。監査ログは各リクエストを `desktop_bootstrap.serve` または `desktop_bootstrap.denied` として記録します。
724</Note>935</Note>
725 936
726ゲートウェイはレスポンスの多くをマッチしたポリシーの `cli` ブロックとトップレベルゲートウェイ設定から導出します:937ゲートウェイは応答の多くをマッチングされたポリシーの `cli` ブロックとトップレベルゲートウェイ設定から導出します:
727 938
728* モデルリスト。`availableModels` から939* `availableModels` からのモデルリスト
729* 無効なツール。裸のツール名 `permissions.deny` エントリから。ポリシーの `desktop` ブロックで `disabledBuiltinTools` を設定する場合、ゲートウェイはあなたの値と導出されたリストの和集合を提供するため、この方法でより多くのツールを無効にできますが、`permissions.deny` を通じて無効にしたものを再度有効にすることはできません。940* 裸のツール名 `permissions.deny` エントリから無効化されたツール。ポリシーの `desktop` ブロックで `disabledBuiltinTools` を設定する場合、ゲートウェイはあなたの値と導出されたリストの和集合を提供するため、この方法でより多くのツールを無効化できますが、`permissions.deny` を通じて無効化したツールを再度有効化することはできません。
730* エグレス許可リスト。`sandbox.network.allowedDomains` から。ポリシーの `desktop` ブロックで `coworkEgressAllowedHosts` を設定する場合、ゲートウェイは導出されたリストの代わりにその値を使用します。941* `sandbox.network.allowedDomains` からの出力許可リスト。ポリシーの `desktop` ブロックで `coworkEgressAllowedHosts` を設定する場合、ゲートウェイは導出されたリストの代わりにその値を使用します。
731* ゲートウェイ自体をポイントする OTLP エンドポイント。これは宛先にファンアウトします。[`telemetry`](#telemetry) フォワーディングが設定されている場合に含まれます。942* ゲートウェイ自体を指す OTLP エンドポイント、および署名済みユーザーのアイデンティティ属性。ゲートウェイはそのエンドポイントで受け取るエクスポートを `forward_to` 宛先にリレーします。[`telemetry.forward_to`](#telemetry) と `listen.public_url` の両方を設定する場合、エンドポイントと属性を含めます。
732 943
733 Claude Desktop はすべてのシグナルを 1 つのエンコーディングでエクスポートします:`http/protobuf`、またはポリシーの `env` で `OTEL_EXPORTER_OTLP_PROTOCOL` またはそのシグナルごとのバリアントを `http/json` に設定する場合は `http/json`。ゲートウェイサーバー上の Claude Code v2.1.261 より前では、レスポンスは関係なく `http/json` を設定したため、protobuf のみを受け入れるコレクターは Claude Desktop のエクスポートを拒否しました。944 Claude Desktop はすべてのシグナルを 1 つのエンコーディングでエクスポートします:`http/protobuf`、または `OTEL_EXPORTER_OTLP_PROTOCOL` またはそのシグナルごとのバリアントの 1 つをポリシーの `env` で `http/json` に設定する場合は `http/json`。ゲートウェイサーバー上の Claude Code v2.1.261 より前では、応答は関係なく `http/json` を設定したため、protobuf のみを受け入れるコレクターは Claude Desktop のエクスポートを拒否しました。
734 945
735ポリシーの `desktop` ブロックで `disabledBuiltinTools`、`coworkEgressAllowedHosts`、または Claude Desktop 独自の `managedMcpServers` 設定を設定するには、ゲートウェイサーバー上で Claude Code v2.1.232 以降が必要です。Claude Desktop の `managedMcpServers` はオブジェクトではなく配列値を取ります。946ポリシーの `desktop` ブロックで `disabledBuiltinTools`、`coworkEgressAllowedHosts`、または Claude Desktop 独自の `managedMcpServers` 設定を設定するには、ゲートウェイサーバー上の Claude Code v2.1.232 以降が必要です。Claude Desktop の `managedMcpServers` はオブジェクトではなく配列値を取ります。
736 947
737ゲートウェイは Claude Desktop 相当がないキー(`hooks` やスコープ権限ルール(`Bash(npm *)` など))をブートストラップレスポンスから省略します。948ゲートウェイは Claude Desktop 相当がないキー(`hooks` やスコープ権限ルール(`Bash(npm *)` など))をブートストラップ応答から省略します。
738 949
739`cli` の横にオプションの `desktop` ブロックを追加して、Claude Desktop 設定を直接設定します。Claude Desktop の [マネージド設定リファレンス](https://claude.com/docs/third-party/claude-desktop/configuration) からの設定を平坦なキー名として書きます。ゲートウェイが読み込むのみのキー(`bootstrapUrl` など)を省略します。MDM またはローカルファイルから。ゲートウェイはブート時にそれらを拒否します。v2.1.232 より前では、ゲートウェイは `chatTabEnabled` と `disableAutoUpdates` などの固定リストの 11 個の機能ゲートキーを受け入れ、他のすべてのキーをブート時に拒否しました。v2.1.227 より前では、ゲートウェイは `chatTabEnabled` と `chatAdvancedFileAnalysisEnabled` もブート時に拒否しました。950`cli` の横にオプションの `desktop` ブロックを追加して、Claude Desktop 設定を直接設定します。Claude Desktop の [マネージド設定リファレンス](https://claude.com/docs/third-party/claude-desktop/configuration) からの設定をフラットキー名として記述します。Claude Desktop が MDM またはローカルファイルからのみ読み取るキー(`bootstrapUrl` など)は省略してください。ゲートウェイはブート時にそれらを拒否します。v2.1.232 より前では、ゲートウェイは `chatTabEnabled` や `disableAutoUpdates` などの固定リストの 11 個の機能ゲートキーを受け入れ、他のすべてのキーをブート時に拒否しました。v2.1.227 より前では、ゲートウェイは `chatTabEnabled` と `chatAdvancedFileAnalysisEnabled` もブート時に拒否しました。
740 951
741```yaml theme={null}952```yaml theme={null}
742managed:953managed:
750 banner: { text: "Contractor build: internal use only" }961 banner: { text: "Contractor build: internal use only" }
751```962```
752 963
753すべてのキーはオプションです。Claude Desktop は省略したキーに対して独自のデフォルトを適用します。ゲートウェイは各 `desktop` ブロックをブート時に Claude Desktop 自体が使用する設定スキーマに対して検証するため、間違いはゲートウェイ起動時にキーに名前を付けるエラーとして表示され、接続されたすべてのデスクトップに到達しません。ゲートウェイはブロックに以下が含まれる場合に失敗します:964すべてのキーはオプションです。Claude Desktop は省略したキーについて独自のデフォルトを適用します。ゲートウェイは各 `desktop` ブロックをブート時に Claude Desktop 自体が使用する設定スキーマに対して検証するため、間違いはゲートウェイ起動時にエラーとしてキーに名前を付けるのではなく、接続されたすべてのデスクトップに到達します。ゲートウェイはブロックに以下が含まれている場合に失敗します:
754 965
755* 不明なキー966* 不明なキー
756* Claude Desktop が拒否または無言でドロップするであろう認識されたキー。空の値やネストされたエントリ内のスペルミスされたサブキーなど。v2.1.260 より前では、ゲートウェイは `managedMcpServers` または `orgPluginSettings` エントリのネストされたオブジェクト内のスペルミスされたフィールドを無言でドロップしました。ブート時に失敗する代わりに。967* Claude Desktop が拒否するか静かにドロップする認識されたキー。空の値やネストされたエントリ内のスペル間違いなど。v2.1.260 より前では、ゲートウェイは `managedMcpServers` または `orgPluginSettings` エントリのネストされたオブジェクト内のスペル間違いフィールドを静かにドロップするのではなく、ブート時に失敗しました。
757* ゲートウェイが自身で計算するキー:推論接続、モデルリスト、OTLP リレー。[`upstreams`](#upstreams)、[`models`](#models)、[`telemetry`](#telemetry) セクションの `forward_to` を通じてそれらを設定します。968* ゲートウェイが自身で計算するキー:推論接続、モデルリスト、OTLP リレー。[`upstreams`](#upstreams)、[`models`](#models)、[`telemetry`](#telemetry) セクションの `forward_to` を通じてそれらを設定します。
758* 現在のキーのレガシーエイリアス。ブートエラーで、ゲートウェイは書くべき正規キーに名前を付けます。969* 現在のキーのレガシーエイリアス。ブートエラーでは、ゲートウェイは記述する正規キーに名前を付けます。
759 970
760非推奨の値またはエントリ形状(`transport` なしの `managedMcpServers` エントリなど)を使用する場合、ゲートウェイは起動し、置き換えに名前を付ける警告をログします。971非推奨の値またはエントリ形状(`transport` なしの `managedMcpServers` エントリなど)を使用する場合、ゲートウェイは起動し、置き換えに名前を付ける警告をログに記録します。
761 972
762ゲートウェイは `desktop` ブロックを `cli` ブロックと同様にインストール済みバージョンにバンドルされたスキーマに対して検証します。新しい Claude Desktop リリースで導入された設定を配信するには、最初にゲートウェイをアップグレードします。例えば、`userPluginMarketplacesEnabled` と `userPluginUploadsEnabled` はゲートウェイサーバー上で Claude Code v2.1.260 以降と Claude Desktop 1.37937.0 以降が必要です。メンバーのマシン上で。973ゲートウェイは `cli` ブロックと同様に、インストール済みバージョンにバンドルされたスキーマに対して `desktop` ブロックを検証します。新しい Claude Desktop リリースで導入された設定を配信するには、最初にゲートウェイをアップグレードしてください。例えば、`userPluginMarketplacesEnabled` と `userPluginUploadsEnabled` には、ゲートウェイサーバー上の Claude Code v2.1.260 以降と、メンバーのマシン上の Claude Desktop 1.37937.0 以降が必要です。
763 974
764ポリシーの `desktop` ブロックで `orgPluginSettings` を設定する場合、ゲートウェイは Claude Desktop 1.15200.0 以降が読み込む配列形式で提供します。古いデスクトップは配列を無視し、プラグインツールポリシーを強制しないため、それに依存する前にメンバーを 1.15200.0 以降に更新します。975`blockReadsOutsideWorkingDirectories`、`disableBypassPermissionsMode`、`configRecheckIntervalMinutes`、`sshClientPath` には、ゲートウェイサーバー上の Claude Code v2.1.281 以降が必要です。Microsoft 365 `managedMcpServers` エントリの `microsoftAuthBroker` の `required` 値と `continuousAccessEvaluation` フィールドも同様です。Claude Desktop リリースが `required` 値より前の場合、それを `disabled` として読み取るため、すべてのメンバーの Claude Desktop がそれをサポートした後にのみ `required` を設定してください。Claude Desktop の [マネージド設定リファレンス](https://claude.com/docs/third-party/claude-desktop/configuration) は各キーを最初に読むリリースをリストします。
765 976
766ゲートウェイはポリシーの `desktop` ブロックが設定しないキーを `match: {}` キャッチオールの `desktop` ブロックから埋めます。ポリシーの `cli` ブロックを基盤から埋めるのと同じ方法で。ベースとロールポリシーの両方で `disabledBuiltinTools` または `builtinToolPolicy` を設定する場合、ゲートウェイはベースの制限を保持します:977ポリシーの `desktop` ブロックで `orgPluginSettings` を設定する場合、ゲートウェイは Claude Desktop 1.15200.0 以降が読む配列形式で提供します。古いデスクトップは配列を無視し、プラグインツールポリシーを強制しないため、それに依存する前にメンバーを 1.15200.0 以降に更新してください。
767 978
768* `disabledBuiltinTools`:ゲートウェイはベースのリストとポリシーのリストの和集合を使用します。979ゲートウェイは、ポリシーの `desktop` ブロックが設定しないキーを `match: {}` キャッチオールの `desktop` ブロックから埋めます。ポリシーの `cli` ブロックを基盤から埋めるのと同じ方法です。基盤とロールポリシーの両方で `disabledBuiltinTools` または `builtinToolPolicy` を設定する場合、ゲートウェイは基盤の制限を保持します:
769* `builtinToolPolicy`:ベースでツールを `allow` 以外の値に設定する場合、ゲートウェイはロールポリシーで同じツールに対して `allow` を設定しても、その値を保持します。
770 980
771他のすべてのキーについて、ロールポリシーで設定する場合、ゲートウェイはロールポリシーの値を使用します。ゲートウェイは配列またはネストされたオブジェクト(`banner` など)を全体で置き換えるため、ロールポリシーで `banner.text` を設定する場合、ゲートウェイはベースの `banner.backgroundColor` をドロップします。981* `disabledBuiltinTools`:ゲートウェイは基盤のリストとポリシーのリストの和集合を使用します。
982* `builtinToolPolicy`:基盤でツールを `allow` 以外の値に設定する場合、ロールポリシーで同じツールに `allow` を設定しても、ゲートウェイはその値を保持します。
772 983
773Claude Desktop をデプロイしない場合、ポリシーから `desktop` を完全に省略します。ゲートウェイはその後、すべてのユーザーに対して `/user/bootstrap` から 404 を返します。984他のすべてのキーについて、ロールポリシーで設定する場合、ゲートウェイはロールポリシーの値を使用します。ゲートウェイは配列またはネストされたオブジェクト(`banner` など)を全体で置き換えるため、ロールポリシーで `banner.text` を設定する場合、ゲートウェイは基盤の `banner.backgroundColor` をドロップします。
985
986Claude Desktop をデプロイしない場合、ポリシーから `desktop` を完全に省略してください。ゲートウェイはすべてのユーザーに対して `/user/bootstrap` から 404 を返します。
774 987
775<h4 id="precedence-with-other-managed-sources">988<h4 id="precedence-with-other-managed-sources">
776 他のマネージドソースとの優先順位989 他のマネージドソースとの優先順位
777</h4>990</h4>
778 991
779デバイスに MDM 配信ポリシーまたはローカル `managed-settings.json` もある場合、ゲートウェイ配信設定がランク付けされます。最初。[マネージド層内の優先順位](/docs/ja/managed-settings#precedence-within-the-managed-tier)はマネージド設定ページで、ローカルソースが適用される場合を説明し、[すべての管理ソースから読み込まれる Claude Code キー](/docs/ja/managed-settings#keys-read-from-every-admin-source)を持っています。サンドボックスロックキー、`forceRemoteSettingsRefresh`、変数ごとの `env` マージなど、どのソースを選択したかに関わらず。[`policyHelper`](/docs/ja/settings-reference#policyhelper) は MDM プロファイルまたはマネージド設定ファイルで設定され、ゲートウェイが設定を配信しない場合にのみ実行されます。エントリは出力が置き換えるものを説明します。992デバイスに MDM 配信ポリシーまたはローカル `managed-settings.json` がある場合、ゲートウェイ配信設定が最初にランクされます。[マネージド層内の優先順位](/docs/ja/managed-settings#precedence-within-the-managed-tier) はマネージド設定ページにあり、ローカルソースが適用される場合、およびサンドボックスロックキー、`forceRemoteSettingsRefresh`、変数ごとの `env` マージなど、どのソースを選択したかに関わらず Claude Code が読むすべての管理ソースの [キー](/docs/ja/managed-settings#keys-read-from-every-admin-source) があります。MDM プロファイルまたはマネージド設定ファイルで設定された [`policyHelper`](/docs/ja/settings-reference#policyhelper) は、ゲートウェイが設定を配信しない場合にのみ実行されます。エントリはその出力が置き換えるものを示します。
780 993
781[Claude Desktop](/docs/ja/desktop) などの埋め込みホストは SDK `managedSettings` オプションを通じてポリシーを提供できます。[埋め込みホストからの親設定](/docs/ja/managed-settings#parent-settings-from-embedding-hosts)は Claude Code がそれを適用する場合を説明し、[親設定を制限](/docs/ja/claude-apps-gateway#restrict-parent-settings)は `allowManaged*Only` ロックなしでもまだ適用される許可方向設定をリストします。994[Claude Desktop](/docs/ja/desktop) などの埋め込みホストは SDK `managedSettings` オプションを通じてポリシーを提供できます。[埋め込みホストからの親設定](/docs/ja/managed-settings#parent-settings-from-embedding-hosts) は Claude Code がそれを適用する場合を示し、[親設定を制限する](/docs/ja/claude-apps-gateway#restrict-parent-settings) は `allowManaged*Only` ロックなしでもまだ適用される許可方向設定をリストします。
782 995
783ゲートウェイポリシーはマシン上のすべての Claude Code 呼び出しに適用されます。非インタラクティブ `claude -p` 実行と Agent SDK によって生成されたセッションを含みます。ゲートウェイがスタートアップ時に到達不可能な場合、署名されたセッションはポリシーなしで実行するのではなく、エラーで終了します。996ゲートウェイポリシーはマシン上のすべての Claude Code 呼び出しに適用されます。非インタラクティブ `claude -p` 実行と Agent SDK によって生成されたセッションを含みます。ゲートウェイが起動時に到達不可能な場合、署名済みセッションはポリシーなしで実行するのではなく、エラーで終了します。
784 997
785<h3 id="telemetry">998<h3 id="telemetry">
786 `telemetry`999 `telemetry`
787</h3>1000</h3>
788 1001
789CLI は OpenTelemetry Protocol(OTLP)を HTTP メトリクス、ログ、有効な場合はトレースでゲートウェイに送信します。ゲートウェイはそれらを逐語的に各設定先にリレーします。エクスポートは OpenTelemetry Protocol(OTLP)を HTTP 経由で使用します。リレーをスキップして、セッションが直接コレクターにエクスポートするには、[ポリシーでコレクターに名前を付けます](#export-directly-to-your-collector)。[使用状況の監視](/docs/ja/monitoring-usage)で、CLI が発行するメトリクスとイベントを参照してください。1002CLI はメトリクス、ログ、有効な場合はトレースをゲートウェイに送信し、ゲートウェイはそれらを逐語的に各設定された宛先にリレーします。エクスポートは OpenTelemetry Protocol(OTLP)over HTTP を使用します。リレーをスキップして、セッションが直接コレクターにエクスポートするようにするには、[ポリシーでコレクターに名前を付けます](#export-directly-to-your-collector)。[使用状況の監視](/docs/ja/monitoring-usage) については、CLI が発行するメトリクスとイベントを参照してください。
1003
1004`/login` を通じて署名されたセッションでは、CLI は各エクスポートに認証されたユーザーのアイデンティティをスタンプします。ゲートウェイが発行した JWT から読み取られます:`user.id`、`user.email`、`user.groups` 属性。デベロッパーごとのコスト帰属と使用状況帰属は、デベロッパー側の設定なしで機能します。
1005
1006[Claude Desktop](#claude-desktop-overlay) と Cowork セッションがゲートウェイを通じて署名されている場合、テレメトリに `user.email` と `user.groups` を `enduser.id` と共にスタンプするため、1 つのクエリで `user.email` または `user.groups` でターミナル、Desktop、Cowork 使用状況をカバーできます。`user.groups` はコンマ区切りの IdP グループリストです。
790 1007
791CLI は、ゲートウェイ発行 JWT から読み込まれた認証されたユーザーのアイデンティティで各エクスポートにスタンプを付けます:`user.id`、`user.email`、`user.groups` 属性。開発者ごとのコストと使用状況の属性は、開発者側の設定なしで機能します。1008Desktop と Cowork テレメトリは `enduser.sub` も含みます。ユーザーのメールが変わった場合でも同じままである `sub` クレームをアイデンティティプロバイダーが発行します。ターミナルセッションは同じ値を `user.id` の下にスタンプするため、ターミナル `user.id` に対して `enduser.sub` をマッチングするクエリは、1 人のユーザーのターミナル、Desktop、Cowork 使用状況をカバーします。Desktop と Cowork エクスポートでは、`user.id` は主体ではなく匿名識別子です。
792 1009
793[Claude Desktop](#claude-desktop-overlay) と Cowork セッションがゲートウェイ経由でサインインすると、`user.email` と `user.groups` を `enduser.id` と一緒にテレメトリにスタンプを付けるため、1 つのクエリで `user.email` または `user.groups` でターミナル、Desktop、Cowork 使用状況をカバーできます。`user.groups` はコンマ区切りの IdP グループリストです。1010Claude Code からのすべての OpenTelemetry データと同様に、これらの属性は組織が設定する宛先にのみ送信され、Anthropic には送信されません。
794 1011
795Claude Code からのすべての OpenTelemetry データと同様に、これらの属性は組織が設定する宛先にのみ移動し、Anthropic には移動しません。1012ユーザーのグループリストがパーセントエンコード後に 255 文字より長い場合、またはグループ名にコンマまたは等号が含まれている場合、ゲートウェイはそのユーザーの Desktop と Cowork テレメトリから `user.groups` を省略します。そのユーザーのターミナルセッションは完全なリストを含みます。
796 1013
797ユーザーのグループリストがパーセントエンコード後に 255 文字より長い場合、またはグループ名にコンマまたは等号が含まれている場合、ゲートウェイはそのユーザーの Desktop と Cowork テレメトリから `user.groups` を省略します。そのユーザーのターミナルセッションは完全なリストを引き続き実行します。1014主体がパーセントエンコード後に 255 文字より長い場合、またはスペース、印字可能 ASCII 外の文字、または `,` `;` `=` `\` `"` `%` のいずれかを含む場合、ゲートウェイは `enduser.sub` を省略します。そのユーザーの Desktop と Cowork テレメトリは他の属性を保持します。
798 1015
799ゲートウェイサーバー上で Claude Code v2.1.265 以降が必要で、Desktop と Cowork テレメトリで `user.email` と `user.groups` が必要です。各開発者のマシン上で Claude Desktop 1.24012 以降が `user.groups` に必要です。1016Desktop と Cowork テレメトリで `user.email` と `user.groups` を使用するには、ゲートウェイサーバー上の Claude Code v2.1.265 以降と、各デベロッパーのマシン上の Claude Desktop 1.24012 以降が必要です。
1017
1018`enduser.sub` を使用するには、ゲートウェイサーバー上の Claude Code v2.1.274 以降が必要です。
800 1019
801```yaml theme={null}1020```yaml theme={null}
802telemetry:1021telemetry:
816<Warning>1035<Warning>
817 各宛先は `metrics`、`logs`、`traces` に独立してオプトインし、デフォルトはメトリクスのみです。シグナルは感度が異なります:1036 各宛先は `metrics`、`logs`、`traces` に独立してオプトインし、デフォルトはメトリクスのみです。シグナルは感度が異なります:
818 1037
819 * **メトリクス**:トークンカウント、リクエストカウント、レイテンシなどの集計カウンター1038 * **メトリクス**:トークンカウント、リクエストカウント、レイテンシーなどの集計カウンター
820 * **ログとトレース**:完全な bash コマンド、ツール入力、ファイルパスを含むことができます。Claude Code が開発者のマシンで行うすべてをカバーします。1039 * **ログとトレース**:完全な Bash コマンド、ツール入力、ファイルパスを含むことができ、Claude Code がデベロッパーのマシンで行うすべてをカバーします。
821 1040
822 ログとトレースは、アクセス制御と保持ポリシーがデータを保証する宛先でのみ有効にします。1041 ログとトレースは、そのデータが保証するアクセス制御と保持ポリシーを持つ宛先でのみ有効にしてください。
823</Warning>1042</Warning>
824 1043
825各 `forward_to` URL は `https://` を使用する必要があります。ゲートウェイ独自のループバックインターフェース上のコレクターの場合は 1 つの例外:1044各 `forward_to` URL は `https://` を使用する必要があります。ゲートウェイ独自のループバックインターフェイス上のコレクターの場合は 1 つの例外があります:
1045
1046* `http://localhost:<port>` は設定検証を通過しますが、[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary) は `ECONNREFUSED_SSRF` ですべてのエクスポートをブロックします。ゲートウェイの環境で `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` を設定しない限り。
1047* `http://127.0.0.1:<port>` または `http://[::1]:<port>` はその変数が設定されていない限りブート失敗します。
826 1048
827* `http://localhost:<port>` は設定検証を通過しますが、[SSRF ガード](/docs/ja/claude-apps-gateway-deploy#threat-model-summary)は `ECONNREFUSED_SSRF` ですべてのエクスポートをブロックします。`CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` をゲートウェイの環境に設定しない限り。1049クラスター内コレクターの場合、独自の内部アドレスで HTTPS を公開するか、変数が設定されたサイドカーとして実行します。
828* `http://127.0.0.1:<port>` または `http://[::1]:<port>` はその変数が設定されていない限りブートに失敗します。
829 1050
830クラスター内コレクターの場合、HTTPS で独自の内部アドレスで公開するか、変数が設定されたサイドカーとして実行します。1051`HTTPS_PROXY` が設定されている場合、ゲートウェイはそのプロキシを通じてエクスポートを送信します。
831 1052
832テレメトリは CLI でデフォルトでオフです。`telemetry.forward_to` と `listen.public_url` の両方を設定すると、ゲートウェイはそれをオンにします。接続されたクライアント用に `/managed/settings` を通じて 6 つの環境変数をプッシュします:1053内部コレクターに直接到達するには、ホスト名またはドメイン(`.internal.example.com` など)の先頭ドットを持つドメインで `NO_PROXY` に追加します。ゲートウェイサーバー上の Claude Code v2.1.277 以降が必要です。ゲートウェイがプロキシなしでコレクターに到達できることを確認してください。先頭ドットのないエントリは、その下の名前ではなく、その正確な名前のみにマッチングします。CIDR 範囲はマッチングしません。
1054
1055[プロキシのみの出力](#proxy-only-egress) がオンになっている場合、プロキシでコレクターを許可してください。`NO_PROXY` エントリはプロキシのみの出力をオフにするためです。
1056
1057テレメトリは CLI ではデフォルトでオフです。`telemetry.forward_to` と `listen.public_url` の両方を設定する場合、ゲートウェイは `/managed/settings` を通じて 6 つの環境変数をプッシュして、接続されたクライアントのテレメトリをオンにします:
833 1058
834* `CLAUDE_CODE_ENABLE_TELEMETRY=1`1059* `CLAUDE_CODE_ENABLE_TELEMETRY=1`
835* `OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER`、`OTEL_TRACES_EXPORTER`。少なくとも 1 つの `forward_to` 宛先がそのシグナルを有効にする場合は `otlp` に設定され、そうでない場合は `none` に設定されます。1060* `OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER`、`OTEL_TRACES_EXPORTER`。少なくとも 1 つの `forward_to` 宛先がそのシグナルを有効にする場合は `otlp` に設定され、そうでない場合は `none` に設定されます。
836* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`1061* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`
837* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`1062* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`
838 1063
839ゲートウェイサーバー上の Claude Code v2.1.265 より前では、ゲートウェイはすべての 3 つのエクスポーターセレクターを `otlp` としてプッシュしました。宛先がオプトインしなかったシグナルを含みます。1064[独自のラベルを追加](#add-your-own-labels) する場合、ゲートウェイは `OTEL_RESOURCE_ATTRIBUTES` もプッシュします。
840 1065
841プッシュされたエンドポイントはパブリック URL から構築されるため、メトリクスとログは開発者またはポリシーからの OTEL 設定を必要としません。1066ゲートウェイサーバー上の Claude Code v2.1.265 より前では、ゲートウェイは 3 つのエクスポーターセレクターすべてを `otlp` としてプッシュしました。宛先がオプトインしなかったシグナルを含みます。
842 1067
843`/login` を通じてサインインした開発者は、独自の OTEL 設定でエクスポートをリダイレクトできません:1068プッシュされたエンドポイントはパブリック URL から構築されるため、メトリクスとログはデベロッパーまたはポリシーからの OTEL 設定を必要としません。
844 1069
845* **ローカルに設定された変数**:Claude Code はプッシュされた変数をマネージド層で適用するため、各変数はローカルで設定する値をオーバーライドします。1070`/login` を通じて署名されたデベロッパーは、独自の OTEL 設定でエクスポートをリダイレクトできません:
846* **ローカルに設定されたエンドポイント**:OTLP/HTTP エクスポート有効にすると、CLI はローカルに設定されたエンドポイントを無視します。ゲートウェイがプッシュしたテレメトリ変数があるかどうかに関わらず。エクスポートはゲートウェイに移動します。ポリシーが [コレクターをエンドポイントとして名前を付けない](#export-directly-to-your-collector)限り。
847 1071
848`forward_to` 宛先がシグナルにない場合、ゲートウェイはそれを受け入れて破棄します。開発者が既に Claude Code テレメトリを 1 つのコレクターにエクスポートしている場合、それを `forward_to` 宛先として追加します。ログまたはトレースをエクスポートする場合は、それらを有効にして、サインイン後もデータを受け取り続けるようにします。リレーをスキップするには、代わりに [ポリシーでコレクターに名前を付けます](#export-directly-to-your-collector)。1072* **ローカルに設定された変数**:Claude Code はプッシュされた変数をマネージド層で適用するため、各変数はデベロッパーがローカルで設定する値をオーバーライドします。
1073* **ローカルに設定されたエンドポイント**:OTLP/HTTP エクスポートが有効な場合、CLI はローカルに設定されたエンドポイントを無視します。ゲートウェイがテレメトリ変数をプッシュしたかどうかに関わらず。そのエクスポートはゲートウェイに送信されます。ポリシーが [コレクターをエンドポイントとして名前を付ける](#export-directly-to-your-collector) 場合を除きます。
849 1074
850[トレース](/docs/ja/monitoring-usage#traces-beta)はさらに各クライアントで `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` を必要とします。ゲートウェイはその変数をプッシュしないため、マネージドポリシーの `env` ブロックを通じて設定します。開発者はそれを [セキュリティ承認ダイアログ](#managed)で承認します。プッシュされたエンドポイントがすでてトリガーするのと同じダイアログです。1075シグナルの `forward_to` 宛先がない場合、ゲートウェイはそれを受け入れて破棄します。デベロッパーが既に Claude Code テレメトリを 1 つのコレクターにエクスポートしている場合、それを `forward_to` 宛先として追加し、ログまたはトレースを有効にします。サインイン後もデータを受け取り続けるため。リレーをスキップするには、代わりに [ポリシーでコレクターに名前を付けます](#export-directly-to-your-collector)。
851 1076
852それを `1` に設定するのは、トレースしたいグループのポリシーのみです。ポリシーが設定しない場合、`match: {}` キャッチオールポリシーが設定する場合、その値を継承します。[マージルール](#managed)に従って。グループのクライアントが開発者がローカルで変数を設定しても、トレースを送信しないようにするには、そのグループのポリシーで `0` に設定します。1077[トレース](/docs/ja/monitoring-usage#traces-beta) には各クライアントで `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` も必要です。ゲートウェイはプッシュしないため、マネージドポリシーの `env` ブロックで設定してください。デベロッパーはプッシュされたエンドポイントが既にトリガーする同じ [セキュリティ承認ダイアログ](#managed) で承認します。
853 1078
854protobuf と JSON OTLP エンコーディングの両方がリレーされ、OpenTelemetry 互換バックエンドは宛先として機能します。1079トレースしたいグループのみのポリシーで `1` に設定してください。ポリシーが設定しない場合、`match: {}` キャッチオールポリシーがそれを設定する場合、そのポリシーから値を継承します。[マージルール](#managed) に従います。デベロッパーがローカルで変数を設定した場合でも、グループのクライアントがトレースを送信しないようにするには、そのグループのポリシーで `0` に設定してください。
1080
1081Protobuf と JSON OTLP エンコーディングの両方がリレーされ、OpenTelemetry 互換のバックエンドが宛先として機能します。
1082
1083<h4 id="add-your-own-labels">
1084 独自のラベルを追加する
1085</h4>
1086
1087ゲートウェイを通じて署名されたセッションのテレメトリに `service.namespace` や `deployment.environment.name` などの固定ラベルを付けるには、`telemetry.resource_attributes` を設定します。各ラベルは OpenTelemetry リソース属性で、すべての宛先は同じラベルを受け取ります。
1088
1089セッションは `telemetry.forward_to` と `listen.public_url` も設定する場合にのみラベルを取得します。この例は 2 つのラベルを追加します:
1090
1091```yaml theme={null}
1092telemetry:
1093 forward_to:
1094 - url: https://otel-collector.internal.example.com
1095 resource_attributes:
1096 service.namespace: claude
1097 deployment.environment.name: prod
1098```
1099
1100ゲートウェイはラベルがこれらのルールのいずれかを破る場合、起動を拒否し、スタートアップエラーはラベルに名前を付けます:
1101
1102* 名前は文字、数字、`.`、`_`、`-` のみを使用します。
1103* 名前は予約されていません。任意の文字ケースで比較すると、予約名は `user.`、`enduser.`、`identity.` で始まるすべてのもの、および `service.name`、`service.version`、`claude.deployment_mode`、`host.arch`、`os.type`、`os.version`、`wsl.version` です。
1104* 値は空でない印字可能 ASCII で、スペースなし、`,` `;` `=` `\` `"` `%` なし。
1105* 値はパーセントエンコード後に最大 255 文字です。ゲートウェイがカウントするため、`/`、`:`、`@` は各 3 文字です。
1106* 値はテキストなので、数字、`true`、`false` をクォートしてください。
1107
1108ゲートウェイサーバー上の Claude Code v2.1.281 以降が必要です。`telemetry.resource_attributes` を設定するため。以前のゲートウェイはキーを見つけると起動を拒否します。すべてのレプリカをアップグレードしてからキーを追加し、以前のバージョンにロールバックする前にキーを削除してください。
1109
1110`/login` を通じて署名されたターミナルセッションは、他の [テレメトリ変数](#telemetry) と共にプッシュされた `OTEL_RESOURCE_ATTRIBUTES` としてラベルを受け取ります。ポリシーの `env` ブロックで `OTEL_RESOURCE_ATTRIBUTES` を設定する場合、そのポリシーが一致するターミナルセッションはラベルの代わりにその値を取得します。Claude Desktop はゲートウェイから `user.email` および他のアイデンティティ属性と共にラベルを受け取ります。
1111
1112Claude Code はすべてのメトリクスデータポイントに各ラベルをコピーするため、リソース属性をインデックス化しないバックエンドでそれでフィルタリングできます。そのコピーをオフにするには、[メトリクスカーディナリティ制御](/docs/ja/monitoring-usage#metrics-cardinality-control) を参照してください。
855 1113
856<h4 id="export-directly-to-your-collector">1114<h4 id="export-directly-to-your-collector">
857 コレクターに直接エクスポートする1115 コレクターに直接エクスポートする
858</h4>1116</h4>
859 1117
860`/login` を通じてサインインしたセッションがリレーを通じてではなく、コレクターに直接テレメトリを送信するには、[マネージドポリシー](#managed)の `env` ブロックでコレクターの `https://` ベース URL に `OTEL_EXPORTER_OTLP_ENDPOINT` を設定します。Claude Code は `/v1/metrics`、`/v1/logs`、`/v1/traces` を URL に追加します。例えば `https://otel-collector.example.com:4318`。各シグナルをそこに OTLP/HTTP 経由でエクスポートします。各開発者のマシン上で Claude Code v2.1.265 以降が必要です。以前のクライアントはリレーを通じてエクスポートします。1118`/login` を通じて署名されたセッションがリレーを通じてではなくコレクターにテレメトリを直接送信するようにするには、[マネージドポリシー](#managed) の `env` ブロックでコレクターの `https://` ベース URL に `OTEL_EXPORTER_OTLP_ENDPOINT` を設定します。Claude Code は URL に `/v1/metrics`、`/v1/logs`、`/v1/traces` を追加します。例えば `https://otel-collector.example.com:4318`。各シグナルを OTLP/HTTP でそこにエクスポートします。各デベロッパーのマシン上の Claude Code v2.1.265 以降が必要です。以前のクライアントはリレーを通じてエクスポートします。
861 1119
862コレクターに認証するには、同じ `env` ブロックで `OTEL_EXPORTER_OTLP_HEADERS` を設定します。セッションはこの方法で名前を付けられたコレクターに開発者のゲートウェイセッショントークンを送信しません。1120コレクターに認証するには、同じ `env` ブロックで `OTEL_EXPORTER_OTLP_HEADERS` を設定します。セッションはこの方法で名前を付けられたコレクターにデベロッパーのゲートウェイセッショントークンを送信しません。
863 1121
864ポリシーでこのエンドポイントを追加または変更すると、Claude Code は [セキュリティ承認ダイアログ](#managed)でそれを適用する前に各開発者に承認を求めます。1122ポリシーでこのエンドポイントを追加または変更する場合、Claude Code は各デベロッパーに [セキュリティ承認ダイアログ](#managed) でそれを承認するよう求めます。インタラクティブセッションで適用する前に。
865 1123
866Claude Code はシグナルを直接エクスポートする前にエンドポイントをチェックし、チェックが失敗するとそのシグナルをリレーに保持します。チェックには以下が含まれます:1124Claude Code はシグナルを直接エクスポートする前にエンドポイントをチェックし、チェックが失敗するとそのシグナルをリレーに保持します。チェックには以下が含まれます:
867 1125
868* エンドポイントはゲートウェイ自体から来ます。MDM プロファイルまたはローカル `managed-settings.json` で同じ変数を設定する場合、エクスポートはリレーに留まります。1126* エンドポイントはゲートウェイ自体から来ます。MDM プロファイルまたはローカル `managed-settings.json` で同じ変数を設定する場合、エクスポートはリレーに留まります。
869* URL は `https://` を使用するか、ループバックアドレスに `http://` を使用します。1127* URL は `https://` を使用するか、ループバックアドレスへの `http://` を使用します。
870* URL は `/v1/<signal>` で終わるパスに解決され、クエリまたはフラグメントはありません。Claude Code はジェネリック変数からそのパスを自身で構築します。`OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` などのシグナルごとの変数を使用する場合は、完全なパスをそこに含めます。1128* URL は `/v1/<signal>` で終わるパスに解決され、クエリまたはフラグメントはありません。Claude Code はジェネリック変数からそのパスを自身で構築します。`OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` などのシグナルごとの変数を記述したとおりに使用するため、完全なパスをそこに含めます。
871* URL はゲートウェイ独自のホストではありません。ゲートウェイに対処されたエンドポイントはリレーパスとセッショントークンを保持します。1129* URL はゲートウェイ独自のホストではありません。ゲートウェイに対処されたエンドポイントはリレーパスとそのセッショントークンを保持します。
872* あなたも開発者も [`otelHeadersHelper`](/docs/ja/settings-reference#otelheadershelper) を設定していません。任意の設定ソースで。ヘルパーが設定されている場合、すべてのシグナルはリレーに留まります。1130* あなたもデベロッパーも、任意の設定ソースで [`otelHeadersHelper`](/docs/ja/settings-reference#otelheadershelper) を設定していません。ヘルパーが設定されている場合、すべてのシグナルはリレーに留まります。
873 1131
874名前を付けるエンドポイントはエクスポートがどこに移動するかのみを変更します。どのシグナルがエクスポートするかは、`OTEL_*_EXPORTER` セレクターで選択します。1132あなたが名前を付けるエンドポイントはエクスポートがどこに行くかのみを変更します。ゲートウェイが既にプッシュしない限り、どのシグナルがエクスポートするかを選択する変数を設定する必要があります:
875 1133
876エンドポイント単独ではエクスポートをオンにしないため、ゲートウェイが既にプッシュしていない限り、それをオンにする変数も設定します:1134* ゲートウェイが既に [テレメトリ変数をプッシュ](#telemetry) する場合、それらは有効化、セレクター、プロトコルをカバーし、プッシュされた `<public_url>` 値をあなたの明示的なエンドポイントがオーバーライドします。`forward_to` 宛先がオプトインしないシグナルについてのみ、自分で `OTEL_*_EXPORTER` セレクターを `otlp` に設定してください。
1135* そうでない場合、`CLAUDE_CODE_ENABLE_TELEMETRY=1`、`OTEL_*_EXPORTER` セレクター、`OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf` も設定してください。
877 1136
878* ゲートウェイが既に [テレメトリ変数をプッシュ](#telemetry)する場合、それらは有効化、セレクター、プロトコルをカバーし、プッシュされた `<public_url>` 値をオーバーライドします。`forward_to` 宛先が有効にしないシグナルについてのみ、`OTEL_*_EXPORTER` セレクターを `otlp` に自身で設定します。1137デベロッパーがサインアウトするか、別のゲートウェイにサインインする場合、コレクターへのエクスポートは停止し、Claude Code は各残りのバッチを遅延配信するのではなく削除します。
879* そうでない場合、`CLAUDE_CODE_ENABLE_TELEMETRY=1`、`OTEL_*_EXPORTER` セレクター、`OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf` も設定します。
880
881開発者がサインアウトするか、別のゲートウェイにサインインすると、コレクターへのエクスポートは停止し、Claude Code は各残りのバッチをドロップします。
882 1138
883<h4 id="when-a-destination-fails">1139<h4 id="when-a-destination-fails">
884 宛先が失敗する場合1140 宛先が失敗する場合
885</h4>1141</h4>
886 1142
887ゲートウェイはバッファリング、再試行、またはテレメトリを保存しないため、宛先に到達しないエクスポートは遅く配信するのではなくドロップされます。各宛先は独立して成功または失敗し、エクスポートクライアントはどちらの方法でも成功レスポンスを受け取るため、失敗した配信はゲートウェイのログにのみ表示されます。1143ゲートウェイはバッファリング、再試行、またはテレメトリを保存しないため、宛先に到達しないエクスポートは遅延配信するのではなく削除されます。各宛先は独立して成功または失敗し、エクスポートクライアントはどちらの場合でも成功応答を受け取るため、失敗した配信はゲートウェイのログにのみ表示されます。
888 1144
8895 つの連続した失敗した配信の後、ゲートウェイは 30 秒のストレッチで宛先へのフォワーディングを一時停止し、各一時停止をログします。配信が成功するまで。エラーレスポンス、タイムアウト、接続エラーはすべて失敗した配信としてカウントされます。`400`、`413`、`415`、`422`、`431` を除き、コレクターがそのエクスポートのペイロードを形式が正しくないか大きすぎるとして拒否したことを意味します。11455 つの連続した失敗した配信の後、ゲートウェイは 30 秒間隔でそれへの転送を一時停止し、各一時停止をログに記録します。配信が成功するまで。エラー応答、タイムアウト、接続エラーはすべて失敗した配信としてカウントされます。`400`、`413`、`415`、`422`、`431` を除きます。これらはコレクターがそのエクスポートのペイロードを不正な形式または大きすぎるとして拒否したことを意味します。
890 1146
891拒否されたペイロードは失敗カウントを進めたり、リセットしたりしません:ゲートウェイは宛先へのフォワーディングを続け、最初の拒否と 100 番目ごとに、宛先に名前を付けるステータスを警告します。1147拒否されたペイロードは失敗カウントを進めたり、リセットしたりしません:ゲートウェイは宛先への転送を続け、最初の拒否と 100 番目ごとに警告をログに記録します。それに名前を付けます。
892 1148
893<h3 id="http-tuning">1149<h3 id="http-tuning">
894 HTTP チューニング1150 HTTP チューニング
895</h3>1151</h3>
896 1152
8974 つのオプションのトップレベルブロック、`access_control`、`limits`、`timeouts`、`rate_limits`。HTTP サーフェスをチューニングします。デフォルトはほとんどのデプロイメントに適しています。11534 つのオプションのトップレベルブロック `access_control`、`limits`、`timeouts`、`rate_limits` は HTTP サーフェスをチューニングします。デフォルトはほとんどのデプロイメントに適しています。
898 1154
899| ブロック | キー | デフォルト | 説明 |1155| ブロック | キー | デフォルト | 説明 |
900| - | - | - | - |1156| - | - | - | - |
901| `access_control` | `allow_cidrs` / `deny_cidrs` | 空 | `trusted_proxies` 解決後のクライアントアドレスによるインバウンド IP 許可/拒否。`deny_cidrs` が最初にチェックされます。クライアントがマッチする場合、`allow_cidrs` もマッチしても拒否されます。`allow_cidrs` が空でない場合、ゲートウェイはデフォルト拒否です。`/healthz` と `/readyz` は `allow_cidrs` から除外されます。信頼できるプロキシが `X-Forwarded-For` エントリを送信し、それが IP アドレスではない場合、実際のクライアントは不明で、ゲートウェイは何をチェックするかに名前を付ける警告を 1 回ログします。どちらかのリストがリクエストに適用される場合、それはリクエストを拒否し、`403` と監査理由 `xff_unparseable` を返します。どちらでもない場合、リクエストを提供し、プロキシ独自のアドレスを IP ごとのレート制限と監査のクライアント IP として使用します。 |1157| `access_control` | `allow_cidrs` / `deny_cidrs` | 空 | インバウンド IP は `trusted_proxies` 解決後のクライアントアドレスで許可/拒否します。`deny_cidrs` が最初にチェックされます。クライアントがそれにマッチングする場合、`allow_cidrs` もマッチングしても拒否されます。`allow_cidrs` が空でない場合、ゲートウェイはデフォルト拒否です。`/healthz` と `/readyz` は `allow_cidrs` から除外されます。信頼されたプロキシが IP アドレスではない `X-Forwarded-For` エントリを送信する場合、実際のクライアントは不明で、ゲートウェイは確認する内容に名前を付ける警告を 1 回ログに記録します。リストのいずれかがリクエストに適用される場合、それは `403` と監査理由 `xff_unparseable` で拒否します。どちらも適用されない場合、リクエストを提供し、プロキシ独自のアドレスをクライアント IP として使用します。IP ごとのレート制限と監査用。 |
902| `limits` | `max_request_bytes` | 32 MiB | 最大インバウンドリクエストボディ。サイズを超えるリクエストはボディがバッファリングされる前に `413` を取得します。大きなファイルまたは画像リクエストの場合は増やします。 |1158| `limits` | `max_request_bytes` | 32 MiB | 最大インバウンドリクエストボディ。サイズを超えたリクエストはボディがバッファリングされる前に `413` を取得します。大きなファイルまたは画像リクエストの場合は上げてください。 |
903| `limits` | `max_request_header_bytes` | 未設定 | 設定すると、サイズを超えるヘッダーは `431` を返します。 |1159| `limits` | `max_request_header_bytes` | 未設定 | 設定されている場合、サイズを超えたヘッダーは `431` を返します。 |
904| `limits` | `max_url_length` | 未設定 | 設定すると、長すぎる URL は `414` を返します。 |1160| `limits` | `max_url_length` | 未設定 | 設定されている場合、長すぎる URL は `414` を返します。 |
905| `timeouts` | `upstream_ttfb_ms` | 120000 | アップストリームのレスポンスヘッダー(初バイト時間)を待つ最大時間。レスポンスボディはその後、ウォールクロックキャップなしでストリーミングされます。直接 Anthropic アップストリームパスに適用されます。他のすべてのプロバイダーはプロバイダー SDK 独自のタイムアウトで制限されます。 |1161| `timeouts` | `upstream_ttfb_ms` | 120000 | 上流のレスポンスヘッダーの最大待機時間(最初のバイトまでの時間)。レスポンスボディはその後、ウォールクロック上限なしでストリーミングされます。直接 Anthropic 上流パスに適用されます。他のすべてのプロバイダーでは、ゲートウェイはレスポンスが開始されるまで最大 1 時間待機します。 |
906| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 認証されていないデバイス認可エンドポイントの IP ごとのレート制限。共有エグレス IP または NAT の背後にある大規模な組織の場合は増やします。これらの制限は、デバイスグラント サインインフローにのみ適用され、`/v1/messages` 推論には適用されません。[ユーザーコードブルートフォース耐性](/docs/ja/claude-apps-gateway-deploy#user-code-brute-force-resistance)を参照してください。 |1162| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 認証されていないデバイス認可エンドポイントの IP ごとのレート制限。共有出力 IP または NAT の背後にある大規模な組織の場合は上げてください。[大規模ロールアウト](/docs/ja/claude-apps-gateway-deploy#large-rollouts) はそのサイズ方法を示します。これらの制限はデバイス付与サインインフローにのみ適用され、`/v1/messages` 推論には適用されません。[ユーザーコードブルートフォース耐性](/docs/ja/claude-apps-gateway-deploy#user-code-brute-force-resistance) を参照してください。 |
907| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | `/device` での `user_code` 送信の IP ごとのレート制限。 |1163| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | `/device` での `user_code` 送信の IP ごとのレート制限。別のデベロッパーのコードを推測するのを止めるものです。[大規模ロールアウト](/docs/ja/claude-apps-gateway-deploy#large-rollouts) はどこまで上げるかを示します。 |
1164
1165両方の `access_control` リストを空のままにする場合(デフォルト)、ゲートウェイはクライアントアドレスを提供するため、ネットワークのみがそれに到達できるユーザーを制限します。ゲートウェイは [マネージド設定](#managed) をプッシュできるため、これは重要です。デベロッパーマシンでコマンドを実行します。
1166
1167`allow_cidrs` が空の間、ゲートウェイは 2 つの場所で警告を記録します。リクエストへの応答方法は変わりません:
1168
1169* **ブート時**:運用ログの警告は、プライベート範囲 `10.0.0.0/8`、`172.16.0.0/12`、`192.168.0.0/16`、`100.64.0.0/10`、`127.0.0.0/8`、`::1/128`、`fc00::/7` のみを許可することを推奨します。デベロッパーが接続する他の内部範囲も同様です。ゲートウェイをループバックアドレスにバインドし、`trusted_proxies` も `public_url` も設定しない場合(ローカル開発のように)、警告は表示されません。
1170* **実行時**:リクエストが最初にこれらのプライベート範囲外のアドレスから到着する場合、ゲートウェイは警告をログに記録し、クライアント IP を含む [`access.public_client` 監査イベント](/docs/ja/claude-apps-gateway-deploy#logs) を発行します。両方はプロセスごとに 1 回発火します。リンクローカルアドレス `169.254.0.0/16` と `fe80::/10` はパブリックとしてカウントされません。ゲートウェイは `/healthz` と `/readyz` をこのチェック実行前に応答するため、パブリック範囲からのヘルスプローブはそれをトリガーしません。
908 1171
909`access_control` リストを両方とも空のままにする場合、これはデフォルトで、ゲートウェイはすべてのクライアントアドレスに提供するため、ネットワークのみがそれに到達できるユーザーを制限します。これは重要です。ゲートウェイは [マネージド設定](#managed)をプッシュできるため、開発者マシンでコマンドを実行します。1172両方のシグナルはゲートウェイが解決するクライアントアドレスを使用します。ロードバランサー、ポートフォワード、またはトンネルがトラフィックをリレーし、`listen.trusted_proxies` にリストされていない場合、ゲートウェイはリレーのアドレスを見ます。通常はプライベートなため、実行時警告もプライベート許可リストもそれをキャッチしません。
910 1173
911`allow_cidrs` が空の間、ゲートウェイは 2 つの場所で警告します。リクエストへの回答方法を変更することなく:1174そのようなフロントエンドの背後で、最初に [`listen.trusted_proxies`](#listen) を設定して、ゲートウェイが実際のクライアントアドレスを見るようにし、ゲートウェイとその前のすべてをパブリックインターネットから到達不可能に保ってください。
912 1175
913* **ブート時**:運用ログの警告は、プライベート範囲 `10.0.0.0/8`、`172.16.0.0/12`、`192.168.0.0/16`、`100.64.0.0/10`、`127.0.0.0/8`、`::1/128`、`fc00::/7` のみを許可することを推奨します。開発者が接続する他の内部範囲を加えます。ゲートウェイをループバックアドレスにバインドし、`trusted_proxies` も `public_url` も設定しない場合、ローカル開発のように、警告は表示されません。1176<h3 id="load_test_mode">
914* **実行時**:リクエストが最初にこれらのプライベート範囲外のアドレスから到着すると、ゲートウェイは警告をログし、[`access.public_client` 監査イベント](/docs/ja/claude-apps-gateway-deploy#logs)をクライアント IP で発行します。両方とも 1 回プロセスごとに発火します。リンクローカルアドレス、`169.254.0.0/16` と `fe80::/10` は、パブリックとしてカウントされません。ゲートウェイは `/healthz` と `/readyz` をこのチェック実行前に回答するため、パブリック範囲からのヘルスプローブはそれをトリガーしません。1177 `load_test_mode`
1178</h3>
1179
1180`load_test_mode` ブロックを使用すると、モデルプロバイダーを呼び出さずにゲートウェイをロードテストできます。オンの間、ゲートウェイは各プロバイダーリクエストを通常どおり構築して署名し、送信する代わりに破棄し、通常のレスポンスパスを通じて缶詰の返信をストリーミングします。返信は、それが缶詰であることを示す文で始まるフィラーテキストです。
1181
1182ゲートウェイサーバー上の Claude Code v2.1.282 以降が必要です。以前のゲートウェイはキーを見つけると起動を拒否します。すべてのレプリカをアップグレードしてからブロックを追加し、以前のバージョンにロールバックする前にブロックを削除してください。
1183
1184以下の例はデフォルトでモードをオンにします。約 750 トークンのテキストの返信が約 10 秒でストリーミングされます:
1185
1186```yaml theme={null}
1187load_test_mode:
1188 enabled: true
1189 reply_tokens: 750 # 大体、各缶詰返信が含むテキストのトークン数
1190 reply_seconds: 9.5 # ストリーミング返信がどのくらい続くか
1191```
1192
1193| フィールド | 必須 | 説明 |
1194| - | - | - |
1195| `enabled` | はい | `true` はモードをオンにします。`false` はモードをオフにしてファイルに数字を保持します。ブロックが存在する場合、ゲートウェイはそれなしで起動を拒否します。 |
1196| `reply_tokens` | いいえ | デフォルト `750`。大体、各缶詰返信が含むテキストのトークン数。1 から 100000 までの整数。 |
1197| `reply_seconds` | いいえ | デフォルト `9.5`。ストリーミング返信がどのくらい続くか。0 から 600 まで。`0` は返信全体を一度に送信します。非ストリーミングリクエストへの返信は常に一度に来ます。 |
1198
1199このモードでのロードテストはゲートウェイ、Postgres、ゲートウェイの前のすべてをカバーします。プロバイダーの制限、速度、ネットワークパスはカバーしません。
1200
1201プロバイダーにモデルリクエストは送信されないため、レプリカの CPU リクエストは見積もりで、本番より低く読み取られます。本番はプロバイダーへのトラフィックも暗号化します。小規模なパイロットで実際のプロバイダーに対してレプリカカウントを確認してください。v2.1.283 より前では、見積もりは非常に低く読み取られます。
915 1202
916両方のシグナルはゲートウェイが解決するクライアントアドレスを使用します。ロードバランサー、ポートフォワード、またはトンネルがトラフィックをリレーし、`listen.trusted_proxies` にリストされていない場合、ゲートウェイはリレーのアドレスを見ます。通常はプライベートです。したがって、実行時警告もプライベート許可リストもそれをキャッチしません。1203モードがオンの間、リクエストは最大 7 桁の整数を保持する `x-load-test-user` ヘッダーを含むことができます。ゲートウェイは各数字を別のデベロッパーとしてカウントします。リクエストと共に来たデベロッパーのメールとグループを使用します。
917 1204
918そのようなフロントエンドの背後で、[`listen.trusted_proxies`](#listen)を最初に設定して、ゲートウェイが実際のクライアントアドレスを見るようにし、ゲートウェイとその前のすべてをパブリックインターネットから到達不可能に保ちます。1205ロードテストデプロイメントに独自の空のデータベースを与えてください。ゲートウェイはモードがオンで、任意のデベロッパーが既に何かを費やしたデータベースに対して起動を拒否するためです。
1206
1207<Warning>
1208 デベロッパーが使用するゲートウェイでこれをオンにしないでください。すべてのリクエストは缶詰の返信を取得し、モデルは呼び出されません。ゲートウェイはブート時に `load_test_mode is on` 警告をログに記録し、モードがオンの間、各 `inference` [監査イベント](/docs/ja/claude-apps-gateway-deploy#logs) を `load_test: true` でマークします。
1209</Warning>
919 1210
920<h2 id="complete-example">1211<h2 id="complete-example">
921 完全な例1212 完全な例
968store:1259store:
969 postgres_url: ${GATEWAY_POSTGRES_URL}1260 postgres_url: ${GATEWAY_POSTGRES_URL}
970 # max_connections: 51261 # max_connections: 5
1262 # connect_timeout_seconds: 5
1263 # readiness_grace_seconds: 300 # keep passing the readiness check through a database failover
971 1264
972# Enables /v1/organizations/spend_limits (mirrors the Anthropic Admin API)1265# Enables /v1/organizations/spend_limits (mirrors the Anthropic Admin API)
973# and per-developer spend enforcement on /v1/messages. Omit to disable.1266# and per-developer spend enforcement on /v1/messages. Omit to disable.
987# enforcement:1280# enforcement:
988# fail_closed_on_error: false1281# fail_closed_on_error: false
989 1282
1283# Load test this deployment without calling a model provider. Never on a
1284# gateway that developers use: every request gets a canned reply.
1285# load_test_mode:
1286# enabled: true
1287# # reply_tokens: 750
1288# # reply_seconds: 9.5
1289
990# Meter at contracted rates instead of USD list price. Requires admin: or a1290# Meter at contracted rates instead of USD list price. Requires admin: or a
991# managed: policy. With managed:, the same rates also go to signed-in clients.1291# managed: policy. With managed:, the same rates also go to signed-in clients.
992# Rates below are placeholders, not real contract prices.1292# Rates below are placeholders, not real contract prices.
1082 1382
1083`parentSettingsBehavior: "merge"` は Claude Desktop の出力許可リストの配信を埋め込み Claude Code セッションで機能させ続けます。[Claude Desktop セッションにポリシーを配信する](/docs/ja/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions)はメカニズムと opt-in が配置される場所を説明しています。1383`parentSettingsBehavior: "merge"` は Claude Desktop の出力許可リストの配信を埋め込み Claude Code セッションで機能させ続けます。[Claude Desktop セッションにポリシーを配信する](/docs/ja/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions)はメカニズムと opt-in が配置される場所を説明しています。
1084 1384
1385開発者がクラウドプロバイダー変数または独自の `ANTHROPIC_BASE_URL` でゲートウェイをバイパスするのを防ぐには、同じファイルに `"allowedProviders": ["gateway"]` を追加します。Claude Code はその後、マシン上でクラウドゲートウェイ用に設定されていないすべてのセッションを拒否し、`forceLoginGatewayUrl` が指定するゲートウェイ、またはファイルの `env` ブロックが `ANTHROPIC_BASE_URL` として設定する URL を持つゲートウェイのみを認めます。`claude gateway` はこのリストを設定するマシンでの実行を拒否するため、ゲートウェイホストではこのキーをオフのままにしてください。設定リファレンスの [`allowedProviders`](/docs/ja/settings-reference#allowedproviders) エントリを参照してください。Claude Code v2.1.285 以降が必要です。
1386
1085`managed-settings.json` ファイルを各デバイスにデプロイします。通常は MDM プラットフォーム経由です。ファイルパスはプラットフォームによって異なります。[各メカニズムがポリシーを保存する場所](/docs/ja/managed-settings#where-each-mechanism-stores-the-policy)を参照してください。1387`managed-settings.json` ファイルを各デバイスにデプロイします。通常は MDM プラットフォーム経由です。ファイルパスはプラットフォームによって異なります。[各メカニズムがポリシーを保存する場所](/docs/ja/managed-settings#where-each-mechanism-stores-the-policy)を参照してください。
1086 1388
1087デフォルトでは、Windows のレジストリポリシーまたは macOS のマネージドプリファレンス plist は、[上記の例外キーとクロスソースチェック](#precedence-with-other-managed-sources)を除き、`managed-settings.json` ファイルとマージするのではなく置き換えます。このスニペットの 3 つのキーはすべて最優先ソースルールに従うため、Group Policy または設定プロファイルを通じてポリシーを配信するフリートは、代わりにそのメカニズムにすべての 3 つを配置する必要があります。1389デフォルトでは、Windows のレジストリポリシーまたは macOS のマネージドプリファレンス plist は、[上記の例外キーとクロスソースチェック](#precedence-with-other-managed-sources)を除き、`managed-settings.json` ファイルとマージするのではなく置き換えます。このスニペットの 3 つのキーはすべて最優先ソースルールに従うため、Group Policy または設定プロファイルを通じてポリシーを配信するフリートは、代わりにそのメカニズムにすべての 3 つを配置する必要があります。
1090 1392
1091Claude Code は [`forceLoginGatewayUrl`](/docs/ja/settings-reference#forcelogingatewayurl)、[`gatewayInternalNetworks`](/docs/ja/settings-reference#gatewayinternalnetworks)、および [`forceLoginMethod`](/docs/ja/settings-reference#forceloginmethod) の `"gateway"` 値をマシン上のマネージドソースからのみ認識します。`managed-settings.json`、macOS plist または Windows HKLM レジストリ、またはポリシーヘルパーです。開発者が独自の `~/.claude/settings.json` でこれらを設定しても効果がなく、ゲートウェイペイロードで設定しても同様です。1393Claude Code は [`forceLoginGatewayUrl`](/docs/ja/settings-reference#forcelogingatewayurl)、[`gatewayInternalNetworks`](/docs/ja/settings-reference#gatewayinternalnetworks)、および [`forceLoginMethod`](/docs/ja/settings-reference#forceloginmethod) の `"gateway"` 値をマシン上のマネージドソースからのみ認識します。`managed-settings.json`、macOS plist または Windows HKLM レジストリ、またはポリシーヘルパーです。開発者が独自の `~/.claude/settings.json` でこれらを設定しても効果がなく、ゲートウェイペイロードで設定しても同様です。
1092 1394
1395`forceLoginMethod` と `forceLoginOrgUUID` をペイロードから除外してください。Claude Code はスタートアップ認証情報チェックのためにペイロードから両方のキーを読み込みます。そのため、Anthropic が発行した認証情報をマシンに保持している開発者は、サインイン後でも[管理者ポリシーがクラウドゲートウェイサインインを必要とする](/docs/ja/errors#administrator-policy-requires-a-cloud-gateway-sign-in)の下で説明されているスタートアップ終了を取得します。
1396
1093<h2 id="related">1397<h2 id="related">
1094 関連1398 関連
1095</h2>1399</h2>