claude-apps-gateway-deploy.md +76 โ5
126 126
127๊ฐ ๋ฉ์ปค๋์ฆ์ด ์ ์ฑ
์ ์ ์ฅํ๋ ์์น๋ [๊ฐ ๋ฉ์ปค๋์ฆ์ด ์ ์ฑ
์ ์ ์ฅํ๋ ์์น](/docs/ko/managed-settings#where-each-mechanism-stores-the-policy)๋ฅผ ์ฐธ์กฐํ๊ณ , Claude Desktop `bootstrapUrl` ๋๋ฑ๋ฌผ์ [ํด๋ผ์ด์ธํธ ์ธก ๊ด๋ฆฌํ ์ค์ ](/docs/ko/claude-apps-gateway-config#client-side-managed-settings)์ ์ฐธ์กฐํ์ธ์.127๊ฐ ๋ฉ์ปค๋์ฆ์ด ์ ์ฑ
์ ์ ์ฅํ๋ ์์น๋ [๊ฐ ๋ฉ์ปค๋์ฆ์ด ์ ์ฑ
์ ์ ์ฅํ๋ ์์น](/docs/ko/managed-settings#where-each-mechanism-stores-the-policy)๋ฅผ ์ฐธ์กฐํ๊ณ , Claude Desktop `bootstrapUrl` ๋๋ฑ๋ฌผ์ [ํด๋ผ์ด์ธํธ ์ธก ๊ด๋ฆฌํ ์ค์ ](/docs/ko/claude-apps-gateway-config#client-side-managed-settings)์ ์ฐธ์กฐํ์ธ์.
128 128
129<h3 id="large-rollouts">
130 ๋๊ท๋ชจ ๋กค์์
131</h3>
132
133๋ก๊ทธ์ธ์ ํด๋ผ์ด์ธํธ IP ์ฃผ์๋ณ๋ก ์๋ ์ ํ๋๋ฉฐ, ๊ธฐ๋ณธ๊ฐ์ ์๊ท๋ชจ ํ์ ์ ํฉํฉ๋๋ค. ๊ฐ ์ฃผ์๋ 10๋ถ๋ง๋ค 30๊ฐ์ ๋ก๊ทธ์ธ ์์๊ณผ 10๊ฐ์ ์ฝ๋ ์ ์ถ์ ๋ฐ์ต๋๋ค. ์์ฒ ๋ช
์ ๊ฐ๋ฐ์๋ก์ ๋กค์์์ ์ฒซ ๋ฒ์งธ ์์นจ์ ํด๋น ์ ํ์ ๋๋ฌํ ์ ์์ผ๋ฉฐ, ๋ ๊ฐ์ง ์ด์ ์ค ํ๋์
๋๋ค:
134
135* **๊ฒ์ดํธ์จ์ด๊ฐ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๋ณผ ์ ์์ต๋๋ค.** [`listen.trusted_proxies`](/docs/ko/claude-apps-gateway-config#listen)๊ฐ ์์ผ๋ฉด, ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ๋ก๋ ๋ฐธ๋ฐ์์ ์ฃผ์์์ ์ค๋ ๊ฒ์ผ๋ก ๋ํ๋๊ณ ํ๋์ ์ ํ์ ๊ณต์ ํฉ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒ๋ณด๋ค ๋จผ์ ์ค์ ํ์ธ์. ๊ฒ์ดํธ์จ์ด๋ `X-Forwarded-For` ํค๋๋ฅผ ๋ฌด์ํ ๋ ์ฒ์์ผ๋ก ๊ฒฝ๊ณ ๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
136* **๋ง์ ๊ฐ๋ฐ์๊ฐ ๋ช ๊ฐ์ NAT ๋๋ VPN ์ก์ ์ฃผ์๋ฅผ ๊ณต์ ํฉ๋๋ค.** `trusted_proxies`๊ฐ ์ฌ๋ฐ๋ฅผ ๋๋ ํด๋น ์ฃผ์์ ์ ํ์ ๊ณต์ ํฉ๋๋ค. [`rate_limits`](/docs/ko/claude-apps-gateway-config#http-tuning)๋ฅผ ๋ง์ถ๋๋ก ์ฌ๋ฆฌ์ธ์.
137
138`max`๋ฅผ ํฌ๊ธฐ ์กฐ์ ํ๋ ค๋ฉด, ๊ฐ๋ฐ์๋ฅผ ๊ณต์ ํ๋ ์ก์ ์ฃผ์๋ก ๋๋์ธ์. ๊ธฐ๋ณธ๊ฐ์ธ 10๋ถ์ธ ํ๋์ `window_seconds` ๊ธฐ๊ฐ ๋ด์ ๊ทธ ์ค ๋ช ๋ช
์ด ๋ก๊ทธ์ธํ๋์ง ์ถ์ ํ์ธ์. ๊ทธ๋ฐ ๋ค์ ์ฌ์๋ ๋ฐ Claude Code์ Claude Desktop ๋ชจ๋์ ๋ก๊ทธ์ธํ๋ ๊ฐ๋ฐ์๋ฅผ ํฌํจํ๋๋ก ๋ ๋ฐฐ๋ก ๋๋ฆฌ์ธ์.
139
140์๋ฅผ ๋ค์ด, 4๊ฐ์ ์ก์ ์ฃผ์ ๋ค์ ์๋ 10,000๋ช
์ ๊ฐ๋ฐ์๊ฐ 1์๊ฐ์ ๊ฑธ์ณ ๊ท ๋ฑํ๊ฒ ๋ก๊ทธ์ธํฉ๋๋ค. ์ด๋ ์ฃผ์๋น 2,500๋ช
์ ๊ฐ๋ฐ์์ด๊ณ ๊ฐ 10๋ถ๋ง๋ค ์ฝ 420๋ช
์ด๋ฉฐ, ์ด๋ฅผ ๋ ๋ฐฐ๋ก ๋๋ฆฌ๊ณ 1,000์ผ๋ก ์ฌ๋ฆผํฉ๋๋ค. ์๋ ์์ ๋ ๋ ์ ํ์ ๋ชจ๋ 1,000์ผ๋ก ์ค์ ํฉ๋๋ค:
141
142```yaml theme={null}
143rate_limits:
144 device_authorization: { max: 1000, window_seconds: 600 }
145 device_verify: { max: 1000, window_seconds: 600 }
146```
147
148`device_verify`๋ ๋๊ตฐ๊ฐ๊ฐ ๋ค๋ฅธ ๊ฐ๋ฐ์์ ๋ก๊ทธ์ธ ์ฝ๋๋ฅผ ์ถ์ธกํ๋ ๊ฒ์ ๋ง๋ ๊ฒ์ด๋ฏ๋ก, ์ถ์ ์ด ํ์ํ ๋งํผ๋ง ์ฌ๋ฆฌ์ธ์. ์ด ์ ํ์์๋, ์ฝ๋๋ 20์ ์ํ๋ฒณ์์ 8์์ด๊ณ 10๋ถ ํ์ ๋ง๋ฃ๋๋ฏ๋ก, ์ถ์ธก์ ๋น์ค์ฉ์ ์ผ๋ก ์ ์ง๋ฉ๋๋ค. [์ฌ์ฉ์ ์ฝ๋ ๋ฌด์ฐจ๋ณ ๋์
๊ณต๊ฒฉ ์ ํญ](#user-code-brute-force-resistance)์ ์ฐธ์กฐํ์ธ์.
149
150IdP๊ฐ ์๋ก๊ณ ์นจ ํ ํฐ์ ๋ฐ๊ธํ ๋, Claude Code๋ ์ธ์
์ ์๋์ผ๋ก ๊ฐฑ์ ํ๋ฏ๋ก, ๋กค์์ ํ ์ ํ์ ๋ค์ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ก๊ณ ์นจ ํ ํฐ์ด ์์ผ๋ฉด, ๊ฐ๋ฐ์๋ [`session.ttl_hours`](/docs/ko/claude-apps-gateway-config#session)๋ง๋ค ๋ค์ ๋ก๊ทธ์ธํฉ๋๋ค. ํด๋น ์ ์ ์ํ ์๋์ ๋ํด ๋ ์ ํ์ ๋ชจ๋ ํฌ๊ธฐ ์กฐ์ ํ๊ณ ์ฌ๋ฆฐ ์ํ๋ก ์ ์งํ์ธ์.
151
152์ ํ์ ๋๋ฌํ๋ฉด, Claude Code v2.1.274 ์ด์์ `The gateway is limiting sign-in attempts right now`๋ฅผ ํ์ํฉ๋๋ค. v2.1.274 ์ด์์ ๊ฒ์ดํธ์จ์ด๋ ํ์ธ ํ์ด์ง์ `Too many attempts came from your network address`๋ฅผ ํ์ํ๋ฉฐ, ํ์ธํ ์ค์ ์ด ์์ต๋๋ค. ๋ํ ๋ณ๊ฒฝํ ์ค์ ์ ์ด๋ฆ์ ์ง์ ํ๋ `sign-in refused` ๋ก๊ทธ ๋ผ์ธ์ ์์ฑํฉ๋๋ค.
153
129<h2 id="operations">154<h2 id="operations">
130 ์ด์155 ์ด์
131</h2>156</h2>
160 185
161`/.well-known/oauth-authorization-server`์ OAuth ๊ฒ์ ๋ฌธ์๋ ๊ตฌ์ฑ ๋ก๋, OIDC ๊ฒ์, ์
์คํธ๋ฆผ ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ ๋ฐ Postgres ๋ง์ด๊ทธ๋ ์ด์
์ด ๋ชจ๋ ์ฑ๊ณตํ ํ์๋ง `200`์ ๋ฐํํ๋ฏ๋ก, ์๋ ํฌ ์๋ ๋ถํ
ํ์ธ์ผ๋ก๋ ์๋ํฉ๋๋ค.186`/.well-known/oauth-authorization-server`์ OAuth ๊ฒ์ ๋ฌธ์๋ ๊ตฌ์ฑ ๋ก๋, OIDC ๊ฒ์, ์
์คํธ๋ฆผ ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ ๋ฐ Postgres ๋ง์ด๊ทธ๋ ์ด์
์ด ๋ชจ๋ ์ฑ๊ณตํ ํ์๋ง `200`์ ๋ฐํํ๋ฏ๋ก, ์๋ ํฌ ์๋ ๋ถํ
ํ์ธ์ผ๋ก๋ ์๋ํฉ๋๋ค.
162 187
188<h3 id="concurrent-upstream-requests">
189 ๋์ ์
์คํธ๋ฆผ ์์ฒญ
190</h3>
191
192๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ๊ฒ์ดํธ์จ์ด ๋ณต์ ๋ณธ์ ๋์์ ์ต๋ 256๊ฐ์ ์์ฒญ์ ์
์คํธ๋ฆผ์ผ๋ก ๋ณด๋
๋๋ค. ์คํธ๋ฆฌ๋ฐ ์๋ต์ ์คํธ๋ฆผ์ด ๋๋ ๋๊น์ง ์ ํ์ ๋ํด ๊ณ์ฐ๋ฉ๋๋ค.
193
194๋ณต์ ๋ณธ์ด ์ ํ์ ์์ ๋ ๋์ฐฉํ๋ ์์ฒญ์ ๊ฒ์ดํธ์จ์ด ๋ด์์ ๋น ์ฌ๋กฏ์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ๊ฐ๋ฐ์๋ ์์์ด ๋๋ฆฌ๊ฑฐ๋ ์ค๋จ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ์๋ต์ ๋ด
๋๋ค. `provider: anthropic` ์
์คํธ๋ฆผ์์, [`timeouts.upstream_ttfb_ms`](/docs/ko/claude-apps-gateway-config#http-tuning)๋ณด๋ค ์ค๋ ๊ธฐ๋ค๋ฆฌ๋ ์์ฒญ์ ํด๋น ์
์คํธ๋ฆผ์ ํฌ๊ธฐํ๊ณ , ๋์ค ์
์คํธ๋ฆผ์ด ์ด๋ฅผ ์ ๊ณตํ์ง ์์ผ๋ฉด 502๋ก ์คํจํฉ๋๋ค.
195
196`upstream requests:`๋ฅผ ํฌํจํ๋ ์์ ๋ก๊ทธ ์ค์ ์ ์ฉ ์ค์ธ ์ ํ์ ๋ณด์ฌ์ค๋๋ค. ๋ณต์ ๋ณธ์ด ์ ํ๋ณด๋ค ๋ ๋ง์ ์์ฒญ์ ์ด์ด ๋๋ ๋์, ๋ํ `client requests are open`์ ํฌํจํ๋ ๊ฒฝ๊ณ ๋ฅผ ์ต๋ ๋ถ๋น ํ ๋ฒ ๊ธฐ๋กํฉ๋๋ค.
197
198๋์์ ๋ ๋ง์ ์์ฒญ์ ์ ๊ณตํ๋ ค๋ฉด ๋ ๊ฐ์ง ์ต์
์ด ์์ต๋๋ค:
199
200* ๋ณต์ ๋ณธ์ ์ถ๊ฐํฉ๋๋ค.
201* ๊ฐ ๋ณต์ ๋ณธ์ ์ ํ์ ๋์
๋๋ค. ๊ฒ์ดํธ์จ์ด ์ปจํ
์ด๋์์ `BUN_CONFIG_MAX_HTTP_REQUESTS` ํ๊ฒฝ ๋ณ์๋ฅผ 1์์ 65535 ์ฌ์ด์ ์ ์๋ก ์ค์ ํ ๋ค์ ์ปจํ
์ด๋๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
202
203๋ณต์ ๋ณธ์ ์์ฒญ์ด ์ด๋ ค ์๋ ํ๊ท ์ด ์๋ก ๋๋ ์ ํ ์ ๋์ ์์ฒญ ์๋๋ก ์ ํ์ ์ฑ์๋๋ค. ์๋ฅผ ๋ค์ด, ์์ฒญ์ด ํ๊ท 10์ด ๋์ ์ด๋ ค ์์ผ๋ฉด, ๊ธฐ๋ณธ ์ ํ 256์ ๋ณต์ ๋ณธ์ ์ฝ ์ด๋น 26๊ฐ ์์ฒญ์ผ๋ก ์ ํ์ ์ฑ์๋๋ค.
204
205CPU์์ ์๋ ์ค์ผ์ผ๋งํ๋ฉด, ์ ํ์ ๋ณต์ ๋ณธ์ ์ค์ผ์ผ ์์์ ํธ๋ฆฌ๊ฑฐํ์ง ์๊ณ ์์ฒญ์ ํ์ ๋ฃ์ผ๋ฏ๋ก, ๋ณต์ ๋ณธ์ด `client requests are open` ๊ฒฝ๊ณ ๋ฅผ ๊ธฐ๋กํ ๋ ํ์ํ๋ CPU ์์ค ์๋๋ก ๋์์ ์ค์ ํฉ๋๋ค.
206
207<Warning>
208 ๋ชจ๋ ์ด๋ฆฐ ์์ฒญ์ ์คํธ๋ฆฌ๋ฐ ์ค ๋ฐ ์ฌ๋กฏ์ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ๊ฒ์ดํธ์จ์ด ํ๋ก์ธ์ค์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ณด์ ํฉ๋๋ค. ์ ํ์ 256์ผ๋ก ์ ์งํ๋ฉด, ๊ณผ๋ถํ ๋ณต์ ๋ณธ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ฌ์ ํ ์ฆ๊ฐํฉ๋๋ค. ๋๊ธฐ ์์ฒญ์ด ์์ฒญ ๋ณธ๋ฌธ์ ์ ์งํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ปจํ
์ด๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํผํฌ ์ ์ด๋ฆฐ ์์ฒญ ์์ ๋ง๊ฒ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๊ณ , ์ ํ์ ๋ณ๊ฒฝํ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋ณต์ ๋ณธ์ ์ข
๋ฃ๋๊ณ ๋ณด์ ํ ๋ชจ๋ ์คํธ๋ฆผ์ ์ญ์ ํฉ๋๋ค.
209</Warning>
210
163<h3 id="outage-behavior">211<h3 id="outage-behavior">
164 ์ค๋จ ๋์212 ์ค๋จ ๋์
165</h3>213</h3>
207 ์
๊ทธ๋ ์ด๋255 ์
๊ทธ๋ ์ด๋
208</h3>256</h3>
209 257
210258๋ณต์ ๋ณธ์ ์ํ ๋น์ ์ฅ์ด๋ฏ๋ก ๋กค๋ง ์ฌ์์์ ์ธ์ ๋ ์ง ์์ ํฉ๋๋ค. ๊ฒ์ดํธ์จ์ด๋ ๋ถํ
์ ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์
์ ์คํํ๋ฏ๋ก, ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ฐฐํฌํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
๋ฉ๋๋ค. ๋์ ๋ณต์ ๋ณธ์ Postgres ์๋ฌธ ์ ๊ธ์์ ์ง๋ ฌํ๋๋ฏ๋ก ๊ฐ ๋ง์ด๊ทธ๋ ์ด์
์ ์ ์ฉํ๋ ๊ฒ์ ํ๋๋ฟ์
๋๋ค.๋ณต์ ๋ณธ์ ์ํ ๋น์ ์ฅ์ด๋ฏ๋ก ๋กค๋ง ์ฌ์์์ ๊ฒ์ดํธ์จ์ด ์ํ๋ฅผ ์์ง ์์ต๋๋ค. ๊ฒ์ดํธ์จ์ด๋ ๋ถํ
์ ์คํค๋ง ๋ง์ด๊ทธ๋ ์ด์
์ ์คํํ๋ฏ๋ก, ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ฐฐํฌํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
๋ฉ๋๋ค. ๋์ ๋ณต์ ๋ณธ์ Postgres ์๋ฌธ ์ ๊ธ์์ ์ง๋ ฌํ๋๋ฏ๋ก ๊ฐ ๋ง์ด๊ทธ๋ ์ด์
์ ์ ์ฉํ๋ ๊ฒ์ ํ๋๋ฟ์
๋๋ค.
259
260์ค์ผ์คํธ๋ ์ดํฐ๊ฐ ๋กค๋ง ์ฌ์์ ๋๋ ์ค์ผ์ผ ์ธ์์์ฒ๋ผ `SIGTERM`์ผ๋ก ๋ณต์ ๋ณธ์ ์ค์งํ ๋, ๊ฒ์ดํธ์จ์ด๋ ์ ์ฐ๊ฒฐ์ ์๋ฝํ๋ ๊ฒ์ ์ค์งํ๊ณ ์ด๋ฏธ ์งํ ์ค์ธ ์์ฒญ ๋ฐ ์คํธ๋ฆผ์ด ์ข
๋ฃ๋๊ธฐ ์ ์ ์๋ฃ๋๋๋ก ํฉ๋๋ค. ๋๋ ์ธ ์๋์ฐ๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ต๋ 25์ด๋ฅผ ๊ธฐ๋ค๋ฆฐ ๋ค์ ์ฌ์ ํ ์ด๋ ค ์๋ ๊ฒ์ ๋ซ์ต๋๋ค. `SIGINT`(์: ํฐ๋ฏธ๋์ Ctrl+C)๋ ๋์ผํ ๋๋ ์ธ์ ์์ํ๊ณ , ๋๋ ์ธ ์ค ๋ ๋ฒ์งธ ์ ํธ๋ ์ด๋ฆฐ ์์ฒญ์ ๋ซ๊ณ ์ฆ์ ์ข
๋ฃํฉ๋๋ค. ๋๋ ์ธ์ ๊ฒ์ดํธ์จ์ด v2.1.274 ์ด์์ด ํ์ํฉ๋๋ค.
261
262๊ธด ์์ฑ์ ๋ช ๋ถ ๋์ ์คํธ๋ฆฌ๋ฐํ ์ ์์ต๋๋ค. Kubernetes ๋ฐ Amazon ECS์์ ์ด ๋์ ํจ๊ป ๋์ฌ ํด๋น ์คํธ๋ฆผ์ ๋ ๋ง์ ์๊ฐ์ ์ ๊ณตํฉ๋๋ค:
263
264* **๋๋ ์ธ ์๋์ฐ**: ๊ฒ์ดํธ์จ์ด ์ปจํ
์ด๋์์ `CLAUDE_GATEWAY_DRAIN_TIMEOUT_MS` ํ๊ฒฝ ๋ณ์๋ฅผ `120000`๊ณผ ๊ฐ์ ์์ ์ ์ ๋ฐ๋ฆฌ์ด๋ก ์ค์ ํฉ๋๋ค. ๊ฒ์ดํธ์จ์ด๋ `120s`์ ๊ฐ์ ๋ค๋ฅธ ํ์์ ๊ฐ์ ๋ฌด์ํ๊ณ 25์ด ๊ธฐ๋ณธ๊ฐ์ ์ ์งํฉ๋๋ค
265* **์ค์ผ์คํธ๋ ์ดํฐ์ ์ ์ ๊ธฐ๊ฐ**: Kubernetes์ `terminationGracePeriodSeconds` ๋๋ Amazon ECS์ `stopTimeout`
266
267์ ์ ๊ธฐ๊ฐ์ ๋ ํ๋ซํผ ๋ชจ๋์์ ๊ธฐ๋ณธ๊ฐ 30์ด์
๋๋ค. ๋๋ ์ธ ์๋์ฐ๋ณด๋ค ์ต์ 5์ด ์ด์ ๊ธธ๊ฒ ์ ์งํ๊ฑฐ๋, ์ค์ผ์คํธ๋ ์ดํฐ๊ฐ ๋๋ ์ธ์ด ์๋ฃ๋๊ธฐ ์ ์ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ข
๋ฃํฉ๋๋ค. Kubernetes์์ ์ ์ ๊ธฐ๊ฐ์ด ๊ฒ์ดํธ์จ์ด๊ฐ `SIGTERM`์ ๋ฐ์ ๋๊ฐ ์๋๋ผ ํ
์ด ์คํ๋๊ธฐ ์ ์ ๊ณ์ฐ์ ์์ํ๊ธฐ ๋๋ฌธ์ `preStop` ํ
์ ๊ธฐ๊ฐ๋ ์ถ๊ฐํฉ๋๋ค.
268
269ํ๋ซํผ์ ๋ํ ๋๋ ์ธ์ด ์คํ๋ ์ ์๋ ๊ธฐ๊ฐ์ ์ ํํ ์ ์์ต๋๋ค:
270
271* **Amazon ECS on Fargate**: `stopTimeout`์ ์ต๋ 120์ด๋ฅผ ํ์ฉํฉ๋๋ค
272* **Cloud Run**: `SIGTERM` ํ 10์ด ํ์ ์ธ์คํด์ค๋ฅผ ์ค์งํ๋ฏ๋ก, ์ด๋ฆฐ ์คํธ๋ฆผ์ ๋๋ ์ธ ์๋์ฐ๊ฐ ๋ฌด์์ด๋ ์ต๋ 10์ด๋ฅผ ์ป์ต๋๋ค
273
274๋๋ ์ธ ์๋์ฐ๊ฐ ์ฌ์ ํ ์ด๋ฆฐ ์์ฒญ์ผ๋ก ๋๋๋ฉด, ๊ฒ์ดํธ์จ์ด๋ `drain window over after`๋ฅผ ํฌํจํ๋ ๊ฒฝ๊ณ ๋ฅผ ๊ธฐ๋กํ๊ณ , ์๋ฅธ ์์ฒญ์ ๊ณ์ฐํ๋ฉฐ, ๋์ผ ๋ ์ค์ ์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
211 275
212๋ง์ด๊ทธ๋ ์ด์
์ ์ถ๊ฐ ์ ์ฉ์ด๋ฏ๋ก ๋ ์ ์ ๋ง์ด๊ทธ๋ ์ด์
์ ์๋ ์ด์ ๋ฐ์ด๋๋ฆฌ๋ก ๋กค๋ฐฑํ๋ ๊ฒ์ ์์ ํฉ๋๋ค. ์ถ๊ฐ ํ์ ๋ฌด์ํฉ๋๋ค. ๋กค๋ฐฑ์ ๋ํ YAML์ ์ด์ ๋ฐ์ด๋๋ฆฌ์ ์คํค๋ง์ ๋ํด ์ฌ๊ฒ์ฆํ๋ฏ๋ก, ์ ๋ฆด๋ฆฌ์ค์์ ๋์
ํ ํค๋ฅผ ์ฑํํ ๊ตฌ์ฑ์ ์ด์ ๋ฐ์ด๋๋ฆฌ์์ ๋ถํ
์ด ์คํจํฉ๋๋ค. ๋กค๋ฐฑ ์ ์ ์ ํค๋ฅผ ์ ๊ฑฐํ์ธ์.276๋ง์ด๊ทธ๋ ์ด์
์ ์ถ๊ฐ ์ ์ฉ์ด๋ฏ๋ก ๋ ์ ์ ๋ง์ด๊ทธ๋ ์ด์
์ ์๋ ์ด์ ๋ฐ์ด๋๋ฆฌ๋ก ๋กค๋ฐฑํ๋ ๊ฒ์ ์์ ํฉ๋๋ค. ์ถ๊ฐ ํ์ ๋ฌด์ํฉ๋๋ค. ๋กค๋ฐฑ์ ๋ํ YAML์ ์ด์ ๋ฐ์ด๋๋ฆฌ์ ์คํค๋ง์ ๋ํด ์ฌ๊ฒ์ฆํ๋ฏ๋ก, ์ ๋ฆด๋ฆฌ์ค์์ ๋์
ํ ํค๋ฅผ ์ฑํํ ๊ตฌ์ฑ์ ์ด์ ๋ฐ์ด๋๋ฆฌ์์ ๋ถํ
์ด ์คํจํฉ๋๋ค. ๋กค๋ฐฑ ์ ์ ์ ํค๋ฅผ ์ ๊ฑฐํ์ธ์.
213 277
239 303
240* ๊ฐ๋ฐ์๋ ์์ ์
์คํธ๋ฆผ ํค ๋์ ๋จ๊ธฐ JWT๋ฅผ ๋ณด์ ํฉ๋๋ค. CLI-๊ฒ์ดํธ์จ์ด ๋ ๊ทธ๋ RFC 8628 ์ฅ์น ๋ถ์ฌ๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฒ์ดํธ์จ์ด์ IdP์์ ์ธ์ฆ ์ฝ๋ ๊ตํ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ์์ PKCE๋ฅผ ์คํํ๋ฏ๋ก, ๊ฐ๋ก์ฑ IdP ์ธ์ฆ ์ฝ๋๋ ์ธ๋ชจ๊ฐ ์์ต๋๋ค.304* ๊ฐ๋ฐ์๋ ์์ ์
์คํธ๋ฆผ ํค ๋์ ๋จ๊ธฐ JWT๋ฅผ ๋ณด์ ํฉ๋๋ค. CLI-๊ฒ์ดํธ์จ์ด ๋ ๊ทธ๋ RFC 8628 ์ฅ์น ๋ถ์ฌ๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฒ์ดํธ์จ์ด์ IdP์์ ์ธ์ฆ ์ฝ๋ ๊ตํ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ์์ PKCE๋ฅผ ์คํํ๋ฏ๋ก, ๊ฐ๋ก์ฑ IdP ์ธ์ฆ ์ฝ๋๋ ์ธ๋ชจ๊ฐ ์์ต๋๋ค.
241* ์ฅ์น ๊ฒ์ฆ ํ์ด์ง๋ ๋์ผ ์ถ์ฒ POST ๋ฐ RFC 8628 ยง5.1๋น IP๋น ์๋ ์ ํ์ ์ ์ฉํฉ๋๋ค. [์ฌ์ฉ์ ์ฝ๋ ๋ฌด์ฐจ๋ณ ๋์
์ ํญ](#user-code-brute-force-resistance)์ ์ฐธ์กฐํ์ธ์.305* ์ฅ์น ๊ฒ์ฆ ํ์ด์ง๋ ๋์ผ ์ถ์ฒ POST ๋ฐ RFC 8628 ยง5.1๋น IP๋น ์๋ ์ ํ์ ์ ์ฉํฉ๋๋ค. [์ฌ์ฉ์ ์ฝ๋ ๋ฌด์ฐจ๋ณ ๋์
์ ํญ](#user-code-brute-force-resistance)์ ์ฐธ์กฐํ์ธ์.
242306* ์์๋ฐ์ด๋ ์์ฒญ์ DNS๋ฅผ ํ์ธํ๊ณ , ๋งํฌ ๋ก์ปฌ ๋ฐ ํด๋ผ์ฐ๋ ๋ฉํ๋ฐ์ดํฐ ์ฃผ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฃจํ๋ฐฑ์ ์ฐจ๋จํ๋ฉฐ, ์ฐ๊ฒฐ์ ํ์ธ๋ IP์ ๊ณ ์ ํ๋ ์๋ฒ ์ธก ์์ฒญ ์์กฐ(SSRF) ๊ฐ๋๋ฅผ ํต๊ณผํฉ๋๋ค. ๋ฐ๋ผ์ IdP ๋ฐ OTLP ๋์๊ณผ ๊ฐ์ ์ด์์ ์ํฅ URL์ ํด๋ผ์ฐ๋ ๋ฉํ๋ฐ์ดํฐ ์๋ํฌ์ธํธ๋ก ๋ฆฌ๋๋ ์
๋ ์ ์์ต๋๋ค. RFC 1918 ํ๋ผ์ด๋น ๋ฒ์๋ ์๋์ ์ผ๋ก ํ์ฉ๋ฉ๋๋ค. IdP ๋ฐ OTLP ์์ง๊ธฐ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ํ๋ผ์ด๋น IP์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ฃจํ๋ฐฑ IdP ๋๋ `localhost`์ ์ฌ์ด๋์นด OTLP ์์ง๊ธฐ์ ๊ฐ์ด ๊ฒ์ดํธ์จ์ด๊ฐ ์ ๋นํ๊ฒ ๋๋ฌํด์ผ ํ๋ ๊ฒ์ด ๋ฃจํ๋ฐฑ์ ์์ ๋๋ง ๊ฒ์ดํธ์จ์ด์ ํ๊ฒฝ์์ `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`์ ์ค์ ํ์ธ์. ๋ณ์๋ ๋ชจ๋ ์ด์์ ๊ตฌ์ฑ URL์ ๋ํด ๋ฃจํ๋ฐฑ ๋ธ๋ก์ ์ํํ๊ณ ๋ํ ํฌ๋๊ฐ ํด๋ผ์ฐ๋ ๋ฉํ๋ฐ์ดํฐ ์๋ํฌ์ธํธ์ ๋๋ฌํ ์ ์๋์ง ํ์ธํ๋ ๋ถํ
์๊ฐ ๊ฒฝ๊ณ ๋ฅผ ๊ฑด๋๋๋๋ค. ๋ฐ๋ผ์ ์์ง๊ธฐ์ ์์ฒด ๋ด๋ถ ์ฃผ์๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ์ ํธํ์ธ์.* ๊ฒ์ดํธ์จ์ด์ IdP, OTLP ์์ง๊ธฐ ๋ฐ `provider: anthropic` ์
์คํธ๋ฆผ์ ๋ํ ์์ฒญ์ DNS๋ฅผ ํ์ธํ๊ณ , ๋งํฌ ๋ก์ปฌ ๋ฐ ํด๋ผ์ฐ๋ ๋ฉํ๋ฐ์ดํฐ ์ฃผ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฃจํ๋ฐฑ์ ์ฐจ๋จํ๋ฉฐ, ์ฐ๊ฒฐ์ ํ์ธ๋ IP์ ๊ณ ์ ํ๋ ์๋ฒ ์ธก ์์ฒญ ์์กฐ(SSRF) ๊ฐ๋๋ฅผ ํต๊ณผํฉ๋๋ค. ๋ฐ๋ผ์ ์ด์์ ์ํฅ URL์ ํด๋ผ์ฐ๋ ๋ฉํ๋ฐ์ดํฐ ์๋ํฌ์ธํธ๋ก ๋ฆฌ๋๋ ์
๋ ์ ์์ต๋๋ค. RFC 1918 ํ๋ผ์ด๋น ๋ฒ์๋ ์๋์ ์ผ๋ก ํ์ฉ๋ฉ๋๋ค. IdP ๋ฐ OTLP ์์ง๊ธฐ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ํ๋ผ์ด๋น IP์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ค๋ฅธ ๊ณต๊ธ์์ ๊ฒฝ์ฐ, ๊ฒ์ดํธ์จ์ด๋ ๊ตฌ์ฑ์ ๋ก๋ํ ๋ ์ด๋ฌํ ์ฃผ์ ๋๋ ๋ฉํ๋ฐ์ดํฐ ํธ์คํธ๋ช
์ ์ง์ ํ๋ `base_url`์ ๊ฑฐ๋ถํ๊ณ , ๊ณต๊ธ์์ SDK๋ DNS ํ์ธ ์์ด ์ฐ๊ฒฐํฉ๋๋ค.
307
308 [ํ๋ก์ ์ ์ฉ ์ก์ ](/docs/ko/claude-apps-gateway-config#proxy-only-egress)์ ์ผ๋ฉด, ํด๋น ์ฃผ์ ํ์ธ์ด ํฌ์๋ ํ๋ก์๋ก ์ด๋ํฉ๋๋ค: ๊ฒ์ดํธ์จ์ด๋ ํธ์คํธ๋ช
์ ์ ๋ฌํ๊ณ ํ๋ก์์ ํ์ฉ ๋ชฉ๋ก์ ํด๋น ๋์์ ๊ฑฐ๋ถํด์ผ ํฉ๋๋ค.
309
310 ๊ฒ์ดํธ์จ์ด๊ฐ ์ ๋นํ๊ฒ ๋๋ฌํด์ผ ํ๋ ๊ฒ์ด ๋ฃจํ๋ฐฑ์ ์์ ๋๋ง ๊ฒ์ดํธ์จ์ด์ ํ๊ฒฝ์์ `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`์ ์ค์ ํ์ธ์. ์๋ฅผ ๋ค์ด ๋ก์ปฌ ๊ฐ๋ฐ IdP ๋๋ `localhost`์ ์ฌ์ด๋์นด OTLP ์์ง๊ธฐ. ๋ณ์๋ ๋ชจ๋ ์ด์์ ๊ตฌ์ฑ URL์ ๋ํด ๋ฃจํ๋ฐฑ ๋ธ๋ก์ ์ํํ๊ณ ๋ํ ํฌ๋๊ฐ ํด๋ผ์ฐ๋ ๋ฉํ๋ฐ์ดํฐ ์๋ํฌ์ธํธ์ ๋๋ฌํ ์ ์๋์ง ํ์ธํ๋ ๋ถํ
์๊ฐ ๊ฒฝ๊ณ ๋ฅผ ๊ฑด๋๋๋๋ค. ๋ฐ๋ผ์ ์์ง๊ธฐ์ ์์ฒด ๋ด๋ถ ์ฃผ์๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ์ ํธํ์ธ์.
243 311
244์์ ์ ์ก์ ์ ์ด๋ฅผ ์ถ๊ฐํ๋ฉด, ๊ฒ์ดํธ์จ์ด๋ ์ํฌ๋ก๋ ID์ ๊ฐ์ ์ธ์คํด์ค ๋ฉํ๋ฐ์ดํฐ ์๊ฒฉ ์ฆ๋ช
์ ์ฌ์ฉํ ๋๋ง๋ค ๋ฉํ๋ฐ์ดํฐ ์๋ฒ์ ๋๋ฌํด์ผ ํฉ๋๋ค.312์์ ์ ์ก์ ์ ์ด๋ฅผ ์ถ๊ฐํ๋ฉด, ๊ฒ์ดํธ์จ์ด๋ ์ํฌ๋ก๋ ID์ ๊ฐ์ ์ธ์คํด์ค ๋ฉํ๋ฐ์ดํฐ ์๊ฒฉ ์ฆ๋ช
์ ์ฌ์ฉํ ๋๋ง๋ค ๋ฉํ๋ฐ์ดํฐ ์๋ฒ์ ๋๋ฌํด์ผ ํฉ๋๋ค.
245 313
254 322
255`user_code` ๊ฐ๋ฐ์๊ฐ `/device` ๊ฒ์ฆ ํ์ด์ง์ ์
๋ ฅํ๋ ๊ฒ์ 20์ ์ํ๋ฒณ์์ ๊ทธ๋ ค์ง 8์์ด๋ฉฐ, 20โธ ๋๋ ์ฝ 2.56ร10ยนโฐ ์กฐํฉ์ ์ฐ์ถํ๊ณ 10๋ถ ํ ๋ง๋ฃ๋ฉ๋๋ค.323`user_code` ๊ฐ๋ฐ์๊ฐ `/device` ๊ฒ์ฆ ํ์ด์ง์ ์
๋ ฅํ๋ ๊ฒ์ 20์ ์ํ๋ฒณ์์ ๊ทธ๋ ค์ง 8์์ด๋ฉฐ, 20โธ ๋๋ ์ฝ 2.56ร10ยนโฐ ์กฐํฉ์ ์ฐ์ถํ๊ณ 10๋ถ ํ ๋ง๋ฃ๋ฉ๋๋ค.
256 324
257325๊ฒ์ดํธ์จ์ด๋ [`rate_limits`](/docs/ko/claude-apps-gateway-config#http-tuning)๋ฅผ ํตํด ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ฅ์น ๋ถ์ฌ ์๋ํฌ์ธํธ์ IP๋น ์๋ ์ ํ์ ์ ์ฉํฉ๋๋ค. ๋ง์ ๊ฐ๋ฐ์๊ฐ ๋จ์ผ ๊ณต์ ํ์ฌ NAT ์ฃผ์์์ ๋ก๊ทธ์ธํ๋ฉด ์ ํ์ ์ฌ๋ฆฌ์ธ์. ์ ํ์ ๋ก๊ทธ์ธ ํ๋ฆ์๋ง ์ ์ฉ๋๋ฉฐ ์ถ๋ก ์๋ ์ ์ฉ๋์ง ์์ต๋๋ค.๊ฒ์ดํธ์จ์ด๋ [`rate_limits`](/docs/ko/claude-apps-gateway-config#http-tuning)๋ฅผ ํตํด ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ฅ์น ๋ถ์ฌ ์๋ํฌ์ธํธ์ IP๋น ์๋ ์ ํ์ ์ ์ฉํฉ๋๋ค. ๋ง์ ๊ฐ๋ฐ์๊ฐ ๋จ์ผ ๊ณต์ ํ์ฌ NAT ์ฃผ์์์ ๋ก๊ทธ์ธํ๋ฉด ์ ํ์ ์ฌ๋ฆฌ์ธ์. [๋๊ท๋ชจ ๋กค์์](#large-rollouts)์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ ํ์ ๋ก๊ทธ์ธ ํ๋ฆ์๋ง ์ ์ฉ๋๋ฉฐ ์ถ๋ก ์๋ ์ ์ฉ๋์ง ์์ต๋๋ค.
258 326
259<h3 id="compliance-posture">327<h3 id="compliance-posture">
260 ๊ท์ ์ค์ ํ์ธ328 ๊ท์ ์ค์ ํ์ธ
284gateway stderr์๋ ๊ฐ์ฌ ์ด๋ฒคํธ ์คํธ๋ฆผ์ด ํฌํจ๋๊ณ , ๊ฐ์ฌ ๋ก๊ทธ๋ ๊ฐ๋ฐ์ ์ ์์ ๊ธฐ๋กํ๋ฉฐ, ๋๋ฒ๊ทธ ํ์ผ์ ๊ฐ๋ฐ์ ๋จธ์ ์ hook ๋ฐ MCP ์๋ฒ ์ถ๋ ฅ์ ๊ธฐ๋กํฉ๋๋ค. ๊ณต๊ฐ ์ด์์ ๊ฒ์ํ๊ธฐ ์ ์ ์ด๋ฅผ ๊ฒํ ํ๊ณ ์์ ํ์ธ์.352gateway stderr์๋ ๊ฐ์ฌ ์ด๋ฒคํธ ์คํธ๋ฆผ์ด ํฌํจ๋๊ณ , ๊ฐ์ฌ ๋ก๊ทธ๋ ๊ฐ๋ฐ์ ์ ์์ ๊ธฐ๋กํ๋ฉฐ, ๋๋ฒ๊ทธ ํ์ผ์ ๊ฐ๋ฐ์ ๋จธ์ ์ hook ๋ฐ MCP ์๋ฒ ์ถ๋ ฅ์ ๊ธฐ๋กํฉ๋๋ค. ๊ณต๊ฐ ์ด์์ ๊ฒ์ํ๊ธฐ ์ ์ ์ด๋ฅผ ๊ฒํ ํ๊ณ ์์ ํ์ธ์.
285 353
286| ์ฆ์ | ์์ธ | ํด๊ฒฐ ๋ฐฉ๋ฒ |354| ์ฆ์ | ์์ธ | ํด๊ฒฐ ๋ฐฉ๋ฒ |
287355| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- || ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
288| ๊ฐ๋ฐ์์ `/login`์ด **Cloud gateway** ํ๋ฉด ๋์ ํ์ค ๊ณ์ ์ ํ๊ธฐ๋ฅผ ํ์ํจ | ํด๋น ๋จธ์ ์ ๊ด๋ฆฌ ์ค์ ์์ `forceLoginMethod` ๋๋ `forceLoginGatewayUrl`์ด ์ค์ ๋์ง ์์ | [๊ด๋ฆฌ ์ค์ ํ์ผ](/docs/ko/claude-apps-gateway#set-the-gateway-url)์ ๊ธฐ๊ธฐ์ ๋ฐฐํฌํ์ธ์. `/login`์ ์ฌ๊ธฐ์ gateway URL์ ์ฝ์ต๋๋ค |356| ๊ฐ๋ฐ์์ `/login`์ด **Cloud gateway** ํ๋ฉด ๋์ ํ์ค ๊ณ์ ์ ํ๊ธฐ๋ฅผ ํ์ํจ | ํด๋น ๋จธ์ ์ ๊ด๋ฆฌ ์ค์ ์์ `forceLoginMethod` ๋๋ `forceLoginGatewayUrl`์ด ์ค์ ๋์ง ์์ | [๊ด๋ฆฌ ์ค์ ํ์ผ](/docs/ko/claude-apps-gateway#set-the-gateway-url)์ ๊ธฐ๊ธฐ์ ๋ฐฐํฌํ์ธ์. `/login`์ ์ฌ๊ธฐ์ gateway URL์ ์ฝ์ต๋๋ค |
289| ๊ฐ๋ฐ์์ ์์ฒญ์ด `Not signed in to the Cloud gateway โ run /login.`์ผ๋ก ์คํจํจ | ๋จธ์ ์ ๊ด๋ฆฌ ์ค์ ์ด `forceLoginMethod: "gateway"` ๋๋ `forceLoginGatewayUrl`์ ์ค์ ํ๊ณ , ์ธ์
์ gateway ๋ก๊ทธ์ธ์ด ์์. ๋จ์ claude.ai ๋ก๊ทธ์ธ์ ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ์ง ์์ | ๊ฐ๋ฐ์๊ฐ `/login`์ ์คํํ๊ณ gateway ๋ก๊ทธ์ธ์ ์๋ฃํ๋๋ก ํ์ธ์. [๊ด๋ฆฌ์ ์ ์ฑ
์ด Cloud gateway ๋ก๊ทธ์ธ์ ์๊ตฌํจ](/docs/ko/errors#administrator-policy-requires-a-cloud-gateway-sign-in)๋ ์ฐธ์กฐํ์ธ์. |357| ๊ฐ๋ฐ์์ ์์ฒญ์ด `Not signed in to the Cloud gateway โ run /login.`์ผ๋ก ์คํจํจ | ๋จธ์ ์ ๊ด๋ฆฌ ์ค์ ์ด `forceLoginMethod: "gateway"` ๋๋ `forceLoginGatewayUrl`์ ์ค์ ํ๊ณ , ์ธ์
์ gateway ๋ก๊ทธ์ธ์ด ์์. ๋จ์ claude.ai ๋ก๊ทธ์ธ์ ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ์ง ์์ | ๊ฐ๋ฐ์๊ฐ `/login`์ ์คํํ๊ณ gateway ๋ก๊ทธ์ธ์ ์๋ฃํ๋๋ก ํ์ธ์. [๊ด๋ฆฌ์ ์ ์ฑ
์ด Cloud gateway ๋ก๊ทธ์ธ์ ์๊ตฌํจ](/docs/ko/errors#administrator-policy-requires-a-cloud-gateway-sign-in)๋ ์ฐธ์กฐํ์ธ์. |
290| Claude Desktop์ด ๋ถํธ์คํธ๋ฉ ๊ตฌ์ฑ์ ๊ฐ์ ธ์ฌ ์ ์๋ค๊ณ ๋ณด๊ณ ํจ | `/user/bootstrap`์ด 404๋ฅผ ๋ฐํํจ: ์ฌ์ฉ์์ ์ผ์นํ๋ ์ ์ฑ
์ด `desktop` ํค๋ฅผ ํฌํจํ์ง ์๊ฑฐ๋ ์ผ์นํ๋ ์ ์ฑ
์ด ์์. gateway ๊ฐ์ฌ ๋ก๊ทธ๋ ๊ฐ ๊ฑฐ๋ถ๋ฅผ `desktop_bootstrap.denied`๋ก ์ด์ ์ ํจ๊ป ๊ธฐ๋กํจ | ์ฌ์ฉ์์ ์ผ์นํ๋ ์ ์ฑ
๋๋ `match: {}` ๊ธฐ๋ณธ ๊ณ์ธต์ `desktop` ๋ธ๋ก์ ์ถ๊ฐํ์ธ์. ๋น `desktop: {}`์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. [Claude Desktop ์ค๋ฒ๋ ์ด](/docs/ko/claude-apps-gateway-config#claude-desktop-overlay)๋ฅผ ์ฐธ์กฐํ์ธ์. |358| Claude Desktop์ด ๋ถํธ์คํธ๋ฉ ๊ตฌ์ฑ์ ๊ฐ์ ธ์ฌ ์ ์๋ค๊ณ ๋ณด๊ณ ํจ | `/user/bootstrap`์ด 404๋ฅผ ๋ฐํํจ: ์ฌ์ฉ์์ ์ผ์นํ๋ ์ ์ฑ
์ด `desktop` ํค๋ฅผ ํฌํจํ์ง ์๊ฑฐ๋ ์ผ์นํ๋ ์ ์ฑ
์ด ์์. gateway ๊ฐ์ฌ ๋ก๊ทธ๋ ๊ฐ ๊ฑฐ๋ถ๋ฅผ `desktop_bootstrap.denied`๋ก ์ด์ ์ ํจ๊ป ๊ธฐ๋กํจ | ์ฌ์ฉ์์ ์ผ์นํ๋ ์ ์ฑ
๋๋ `match: {}` ๊ธฐ๋ณธ ๊ณ์ธต์ `desktop` ๋ธ๋ก์ ์ถ๊ฐํ์ธ์. ๋น `desktop: {}`์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. [Claude Desktop ์ค๋ฒ๋ ์ด](/docs/ko/claude-apps-gateway-config#claude-desktop-overlay)๋ฅผ ์ฐธ์กฐํ์ธ์. |
291| ์์ ์ `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.`๋ฅผ ํ์ํจ | ์ค์น๋ Claude Code ๋น๋๊ฐ gateway ์ง์๋ณด๋ค ์ด์ ๋ฒ์ ์ | ๊ฐ๋ฐ์๊ฐ Cloud gateway ์ง์์ ํฌํจํ๋ ๋ฆด๋ฆฌ์ค๋ก Claude Code๋ฅผ ์
๋ฐ์ดํธํ๋๋ก ํ์ธ์ |359| ์์ ์ `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.`๋ฅผ ํ์ํจ | ์ค์น๋ Claude Code ๋น๋๊ฐ gateway ์ง์๋ณด๋ค ์ด์ ๋ฒ์ ์ | ๊ฐ๋ฐ์๊ฐ Cloud gateway ์ง์์ ํฌํจํ๋ ๋ฆด๋ฆฌ์ค๋ก Claude Code๋ฅผ ์
๋ฐ์ดํธํ๋๋ก ํ์ธ์ |
292| ์์์ด `Administrator policy requires a Cloud gateway sign-in on this machine`์ผ๋ก ์ข
๋ฃ๋จ | ๊ฐ๋ฐ์์ ํ๊ฒฝ์ด `ANTHROPIC_API_KEY` ๋๋ `ANTHROPIC_AUTH_TOKEN`์ ์ค์ ํ๊ฑฐ๋, ์ค์ ์ด [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper)๋ฅผ ๊ตฌ์ฑํ๊ฑฐ๋, ์ด์ Claude Console ๋ก๊ทธ์ธ์ API ํค๊ฐ ์ฌ์ ํ ์ ์ฅ๋์ด ์์ | ํด๋นํ๋ ๊ฐ๊ฐ์ ์ง์ฐ๋๋ก ๊ฐ๋ฐ์์๊ฒ ์ง์ํ์ธ์: ๋ณ์๋ฅผ ์ค์ ํด์ ํ๊ฑฐ๋, `apiKeyHelper` ํญ๋ชฉ์ ์ ๊ฑฐํ๊ฑฐ๋, `claude auth logout`์ ์คํํ์ฌ ์ ์ฅ๋ ํค๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ `claude`๋ฅผ ์์ํ๊ณ `/login`์ผ๋ก ๋ก๊ทธ์ธํ๋๋ก ํ์ธ์. [๊ด๋ฆฌ์ ์ ์ฑ
์ด Cloud gateway ๋ก๊ทธ์ธ์ ์๊ตฌํจ](/docs/ko/errors#administrator-policy-requires-a-cloud-gateway-sign-in)๋ ์ฐธ์กฐํ์ธ์. |360| ์์์ด `Administrator policy requires a Cloud gateway sign-in on this machine`์ผ๋ก ์ข
๋ฃ๋จ | ๊ฐ๋ฐ์์ ํ๊ฒฝ์ด `ANTHROPIC_API_KEY` ๋๋ `ANTHROPIC_AUTH_TOKEN`์ ์ค์ ํ๊ฑฐ๋, ์ค์ ์ด [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper)๋ฅผ ๊ตฌ์ฑํ๊ฑฐ๋, ์ด์ Claude Console ๋ก๊ทธ์ธ์ API ํค๊ฐ ์ฌ์ ํ ์ ์ฅ๋์ด ์์ | ํด๋นํ๋ ๊ฐ๊ฐ์ ์ง์ฐ๋๋ก ๊ฐ๋ฐ์์๊ฒ ์ง์ํ์ธ์: ๋ณ์๋ฅผ ์ค์ ํด์ ํ๊ฑฐ๋, `apiKeyHelper` ํญ๋ชฉ์ ์ ๊ฑฐํ๊ฑฐ๋, `claude auth logout`์ ์คํํ์ฌ ์ ์ฅ๋ ํค๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ `claude`๋ฅผ ์์ํ๊ณ `/login`์ผ๋ก ๋ก๊ทธ์ธํ๋๋ก ํ์ธ์. [๊ด๋ฆฌ์ ์ ์ฑ
์ด Cloud gateway ๋ก๊ทธ์ธ์ ์๊ตฌํจ](/docs/ko/errors#administrator-policy-requires-a-cloud-gateway-sign-in)๋ ์ฐธ์กฐํ์ธ์. |
293| ์์ ๋๋ `/login`์ด `/managed/settings` ๋ก๋์์ 403 ํ `Claude Code may not be enabled for your organization`์ ๋ณด๊ณ ํจ | gateway ๋๋ ๊ทธ ์์ ๋ฌด์ธ๊ฐ๊ฐ `/managed/settings` ์์ฒญ์ 403์ผ๋ก ์๋ตํจ. gateway ์์ฒด ์ค์ ๊ฒฝ๋ก๋ ์ ๋ 403์ผ๋ก ์๋ตํ์ง ์์. ์ํ๋ [`access_control`](/docs/ko/claude-apps-gateway-config#http-tuning) IP ํ์ธ ๋๋ gateway ์์ ํ๋ก์ ๋๋ WAF์์ ์ด. ๊ฐ์ฌ ๋ก๊ทธ๋ IP ํ์ธ ๊ฑฐ๋ถ๋ฅผ `access.denied`๋ก ์ด์ ์ ํจ๊ป ๊ธฐ๋กํจ. ๊ฐ๋ฐ์๋ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํจ | ์คํจ ์๊ฐ์ `access.denied`์ ๋ํ ๊ฐ์ฌ ๋ก๊ทธ๋ฅผ ํ์ธํ๊ณ `access_control` ๋ชฉ๋ก ๋๋ ํ๋ก ํธ ์๋๋ฅผ ์์ ํ ํ ๊ฐ๋ฐ์๊ฐ `claude`๋ฅผ ๋ค์ ์์ํ๋๋ก ํ์ธ์ |361| ์์ ๋๋ `/login`์ด `/managed/settings` ๋ก๋์์ 403 ํ `Claude Code may not be enabled for your organization`์ ๋ณด๊ณ ํจ | gateway ๋๋ ๊ทธ ์์ ๋ฌด์ธ๊ฐ๊ฐ `/managed/settings` ์์ฒญ์ 403์ผ๋ก ์๋ตํจ. gateway ์์ฒด ์ค์ ๊ฒฝ๋ก๋ ์ ๋ 403์ผ๋ก ์๋ตํ์ง ์์. ์ํ๋ [`access_control`](/docs/ko/claude-apps-gateway-config#http-tuning) IP ํ์ธ ๋๋ gateway ์์ ํ๋ก์ ๋๋ WAF์์ ์ด. ๊ฐ์ฌ ๋ก๊ทธ๋ IP ํ์ธ ๊ฑฐ๋ถ๋ฅผ `access.denied`๋ก ์ด์ ์ ํจ๊ป ๊ธฐ๋กํจ. ๊ฐ๋ฐ์๋ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํจ | ์คํจ ์๊ฐ์ `access.denied`์ ๋ํ ๊ฐ์ฌ ๋ก๊ทธ๋ฅผ ํ์ธํ๊ณ `access_control` ๋ชฉ๋ก ๋๋ ํ๋ก ํธ ์๋๋ฅผ ์์ ํ ํ ๊ฐ๋ฐ์๊ฐ `claude`๋ฅผ ๋ค์ ์์ํ๋๋ก ํ์ธ์ |
362| CLI `/login`: `The gateway is limiting sign-in attempts right now`, ๋๋ ์ด์ ๋ฒ์ ์์ `Request failed with status code 429`. `/device` ํ์ด์ง๋ ์ด์ ์ ์๋ํ์ง ์์ ๊ฐ๋ฐ์์๊ฒ `Too many attempts`๋ฅผ ํ์ํ ์ ์์ | IP๋น ๋ก๊ทธ์ธ ์๋ ์ ํ์ ๋๋ฌํจ. `listen.trusted_proxies`๊ฐ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ํฌํจํ์ง ์์ ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ํด๋น ์ฃผ์๋ฅผ ๊ณต์ ํ๊ฑฐ๋, ๋ง์ ๊ฐ๋ฐ์๊ฐ NAT ๋๋ VPN ์ก์ ์ฃผ์๋ฅผ ๊ณต์ ํจ. `result: rate_limited`๊ฐ ์๋ ๊ฐ์ฌ ์ด๋ฒคํธ๋ ๋์ผํ ํ๋ ๋๋ ๋ช ๊ฐ์ `client_ip` ๊ฐ์ ํ์ํจ. | ๋จผ์ `listen.trusted_proxies`๋ฅผ ๋ก๋ ๋ฐธ๋ฐ์์ ์์ค ๋ฒ์๋ก ์ค์ ํ ํ, ๊ฐ๋ฐ์๊ฐ ์ฌ์ ํ ์ฃผ์๋ฅผ ๊ณต์ ํ๋ ๊ฒฝ์ฐ `rate_limits`๋ฅผ ๋์ด์ธ์. [๋๊ท๋ชจ ๋กค์์](#large-rollouts)์ ์ฐธ์กฐํ์ธ์. |
294| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | gateway ํธ์คํธ๋ช
์ด ์ต์ ํ๋์ ๊ณต๊ฐ IP ์ฃผ์๋ก ํ์ธ๋จ. Claude Code๋ ๊ฐ ํ์ธ๋ ์ฃผ์๋ฅผ ํ์ธํ๊ณ ๋ชจ๋ ์ฃผ์๊ฐ ๋น๊ณต๊ฐ์ฌ์ผ ํจ. ์ผ๋ฐ์ ์ธ ์์ธ์ ํ ํจ๋ฐ๋ฆฌ๊ฐ ๊ณต๊ฐ ์ฃผ์๋ก ํ์ธ๋๋ ์ด์ค ์คํ ์ด๋ฆ์ด๋ฉฐ, AWS ๋ด๋ถ ์ด์ค ์คํ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ํฌํจํ์ฌ ๊ณต๊ฐ ๋ฒ์ AAAA ์ฃผ์๋ฅผ ๋ฐํํจ | gateway ์ด๋ฆ์ด ๊ฐ๋ฐ์ ๋จธ์ ์์ ๋น๊ณต๊ฐ ์ฃผ์๋ก๋ง ํ์ธ๋๋๋ก ํ์ธ์. ์ด์ค ์คํ ์ด๋ฆ์ ๊ฒฝ์ฐ ๊ณต๊ฐ ๋ฒ์ ๋ ์ฝ๋๋ฅผ ์ญ์ ํ๊ฑฐ๋ ๋ณ๋์ ๋ด๋ถ ์ ์ฉ DNS ์ด๋ฆ์ ์ ๊ณตํ์ธ์. [๋น๊ณต๊ฐ ๋คํธ์ํฌ ์ ์ ์กฐ๊ฑด](/docs/ko/claude-apps-gateway#prerequisites)์ ์ฐธ์กฐํ์ธ์. ์ฃผ์๊ฐ ์กฐ์ง์ด ์์ ํ๊ณ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ณต๊ฐ ๊ณต๊ฐ์ธ ๊ฒฝ์ฐ [ํด๋น ๋ธ๋ก์ ์ ์ธ](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)ํ์ธ์. |363| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | gateway ํธ์คํธ๋ช
์ด ์ต์ ํ๋์ ๊ณต๊ฐ IP ์ฃผ์๋ก ํ์ธ๋จ. Claude Code๋ ๊ฐ ํ์ธ๋ ์ฃผ์๋ฅผ ํ์ธํ๊ณ ๋ชจ๋ ์ฃผ์๊ฐ ๋น๊ณต๊ฐ์ฌ์ผ ํจ. ์ผ๋ฐ์ ์ธ ์์ธ์ ํ ํจ๋ฐ๋ฆฌ๊ฐ ๊ณต๊ฐ ์ฃผ์๋ก ํ์ธ๋๋ ์ด์ค ์คํ ์ด๋ฆ์ด๋ฉฐ, AWS ๋ด๋ถ ์ด์ค ์คํ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ํฌํจํ์ฌ ๊ณต๊ฐ ๋ฒ์ AAAA ์ฃผ์๋ฅผ ๋ฐํํจ | gateway ์ด๋ฆ์ด ๊ฐ๋ฐ์ ๋จธ์ ์์ ๋น๊ณต๊ฐ ์ฃผ์๋ก๋ง ํ์ธ๋๋๋ก ํ์ธ์. ์ด์ค ์คํ ์ด๋ฆ์ ๊ฒฝ์ฐ ๊ณต๊ฐ ๋ฒ์ ๋ ์ฝ๋๋ฅผ ์ญ์ ํ๊ฑฐ๋ ๋ณ๋์ ๋ด๋ถ ์ ์ฉ DNS ์ด๋ฆ์ ์ ๊ณตํ์ธ์. [๋น๊ณต๊ฐ ๋คํธ์ํฌ ์ ์ ์กฐ๊ฑด](/docs/ko/claude-apps-gateway#prerequisites)์ ์ฐธ์กฐํ์ธ์. ์ฃผ์๊ฐ ์กฐ์ง์ด ์์ ํ๊ณ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ณต๊ฐ ๊ณต๊ฐ์ธ ๊ฒฝ์ฐ [ํด๋น ๋ธ๋ก์ ์ ์ธ](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)ํ์ธ์. |
295| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | `HTTPS_PROXY` ๋๋ `HTTP_PROXY`๊ฐ gateway ํธ์คํธ์ ์ ์ฉ๋๊ณ ํ๋ก์์ ํธ์คํธ๋ช
์ด ๊ณต๊ฐ ์ฃผ์๋ก ํ์ธ๋จ. ํธ์คํธ๊ฐ ๋น๊ณต๊ฐ ์ฃผ์๋ก๋ง ํ์ธ๋๋ ํ๋ก์๋ ํ์ฉ๋๋ฉฐ ์ด ์ค๋ฅ๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ง ์์ | ๊ฐ๋ฐ์ ๋จธ์ ์ `NO_PROXY`์ gateway ํธ์คํธ๋ฅผ ์ถ๊ฐํ์ฌ ์ฐ๊ฒฐ์ด ์ง์ ์ด๋ฃจ์ด์ง๋๋ก ํ๊ฑฐ๋, ํธ์คํธ๋ช
์ด ๋น๊ณต๊ฐ ์ฃผ์๋ก ํ์ธ๋๋ ํ๋ก์๋ฅผ ์ฌ์ฉํ์ธ์. ๋ฉ์์ง๋ ์ถ๊ฐํ ์ ํํ `NO_PROXY` ํญ๋ชฉ์ ์ด๋ฆ์ผ๋ก ์ง์ ํฉ๋๋ค |364| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | `HTTPS_PROXY` ๋๋ `HTTP_PROXY`๊ฐ gateway ํธ์คํธ์ ์ ์ฉ๋๊ณ ํ๋ก์์ ํธ์คํธ๋ช
์ด ๊ณต๊ฐ ์ฃผ์๋ก ํ์ธ๋จ. ํธ์คํธ๊ฐ ๋น๊ณต๊ฐ ์ฃผ์๋ก๋ง ํ์ธ๋๋ ํ๋ก์๋ ํ์ฉ๋๋ฉฐ ์ด ์ค๋ฅ๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ง ์์ | ๊ฐ๋ฐ์ ๋จธ์ ์ `NO_PROXY`์ gateway ํธ์คํธ๋ฅผ ์ถ๊ฐํ์ฌ ์ฐ๊ฒฐ์ด ์ง์ ์ด๋ฃจ์ด์ง๋๋ก ํ๊ฑฐ๋, ํธ์คํธ๋ช
์ด ๋น๊ณต๊ฐ ์ฃผ์๋ก ํ์ธ๋๋ ํ๋ก์๋ฅผ ์ฌ์ฉํ์ธ์. ๋ฉ์์ง๋ ์ถ๊ฐํ ์ ํํ `NO_PROXY` ํญ๋ชฉ์ ์ด๋ฆ์ผ๋ก ์ง์ ํฉ๋๋ค |
296| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | gateway๊ฐ [`gatewayInternalNetworks`](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)์ ์ ์ธ๋ ๋ธ๋ก์ ์๊ณ , ๊ฐ๋ฐ์ ๋จธ์ ์ด ํด๋น ๋ธ๋ก ์ธ๋ถ์ ์ฃผ์์์ ๋๋ฌํจ: VPN ์ฃผ์ ํ, ์ปจํ
์ด๋ ๋๋ WSL2 NAT ์ธ๊ทธ๋จผํธ, ๋๋ ์กฐ์ง์ ๋คํธ์ํฌ๊ฐ ์๋ | ๊ฐ๋ฐ์๊ฐ ๋คํธ์ํฌ์ ํธ์คํธ OS์์ `/login`์ ์คํํ๋๋ก ํ์ธ์. ํ์๋ ์ฃผ์๋ ์กฐ์ง์ ๊ณต๊ฐ ๊ณต๊ฐ์ธ ๊ฒฝ์ฐ gateway ํญ๋ชฉ์ ๋ ์ฃผ์๋ฅผ ๋ชจ๋ ํฌํจํ๋ ๋ธ๋ก์ผ๋ก ๋ฐ๊พธ์ธ์(`/8`๊น์ง). ๋ ๋ฒ์งธ ๊ฒน์น๋ ํญ๋ชฉ์ ๊ฑฐ๋ถ๋ฉ๋๋ค |365| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | gateway๊ฐ [`gatewayInternalNetworks`](/docs/ko/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)์ ์ ์ธ๋ ๋ธ๋ก์ ์๊ณ , ๊ฐ๋ฐ์ ๋จธ์ ์ด ํด๋น ๋ธ๋ก ์ธ๋ถ์ ์ฃผ์์์ ๋๋ฌํจ: VPN ์ฃผ์ ํ, ์ปจํ
์ด๋ ๋๋ WSL2 NAT ์ธ๊ทธ๋จผํธ, ๋๋ ์กฐ์ง์ ๋คํธ์ํฌ๊ฐ ์๋ | ๊ฐ๋ฐ์๊ฐ ๋คํธ์ํฌ์ ํธ์คํธ OS์์ `/login`์ ์คํํ๋๋ก ํ์ธ์. ํ์๋ ์ฃผ์๋ ์กฐ์ง์ ๊ณต๊ฐ ๊ณต๊ฐ์ธ ๊ฒฝ์ฐ gateway ํญ๋ชฉ์ ๋ ์ฃผ์๋ฅผ ๋ชจ๋ ํฌํจํ๋ ๋ธ๋ก์ผ๋ก ๋ฐ๊พธ์ธ์(`/8`๊น์ง). ๋ ๋ฒ์งธ ๊ฒน์น๋ ํญ๋ชฉ์ ๊ฑฐ๋ถ๋ฉ๋๋ค |
301| CLI `/login`: `Could not resolve gateway host <host>` | ๋จธ์ ์ด gateway์ ๋ด๋ถ DNS ์ด๋ฆ์ ํ์ธํ ์ ์์. ์ผ๋ฐ์ ์ผ๋ก ํ์ฌ ๋คํธ์ํฌ์ ์๊ธฐ ๋๋ฌธ | ๊ฐ๋ฐ์๊ฐ ๋คํธ์ํฌ ๋๋ VPN์ ์ฐ๊ฒฐํ ํ `/login`์ ๋ค์ ์๋ํ๋๋ก ํ์ธ์ |370| CLI `/login`: `Could not resolve gateway host <host>` | ๋จธ์ ์ด gateway์ ๋ด๋ถ DNS ์ด๋ฆ์ ํ์ธํ ์ ์์. ์ผ๋ฐ์ ์ผ๋ก ํ์ฌ ๋คํธ์ํฌ์ ์๊ธฐ ๋๋ฌธ | ๊ฐ๋ฐ์๊ฐ ๋คํธ์ํฌ ๋๋ VPN์ ์ฐ๊ฒฐํ ํ `/login`์ ๋ค์ ์๋ํ๋๋ก ํ์ธ์ |
302| ๋ถํธ๊ฐ `store.postgres_url`์ ์ด๋ฆ์ผ๋ก ์ง์ ํ๋ ๊ตฌ์ฑ ๊ฒ์ฆ ์ค๋ฅ๋ก ์ข
๋ฃ๋จ | Postgres๊ฐ ๊ตฌ์ฑ๋์ง ์์. gateway๋ Postgres๋ฅผ ์๊ตฌํจ | `store.postgres_url`์ ์ค์ ํ์ธ์. ๋ก์ปฌ ๊ฐ๋ฐ์ ๊ฒฝ์ฐ ์ผํ์ฉ ์ปจํ
์ด๋๋ฅผ ์ฌ์ฉํ์ธ์: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |371| ๋ถํธ๊ฐ `store.postgres_url`์ ์ด๋ฆ์ผ๋ก ์ง์ ํ๋ ๊ตฌ์ฑ ๊ฒ์ฆ ์ค๋ฅ๋ก ์ข
๋ฃ๋จ | Postgres๊ฐ ๊ตฌ์ฑ๋์ง ์์. gateway๋ Postgres๋ฅผ ์๊ตฌํจ | `store.postgres_url`์ ์ค์ ํ์ธ์. ๋ก์ปฌ ๊ฐ๋ฐ์ ๊ฒฝ์ฐ ์ผํ์ฉ ์ปจํ
์ด๋๋ฅผ ์ฌ์ฉํ์ธ์: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |
303| ๋ถํธ ์ข
๋ฃ: `requires the native binary` | Node ๋์ ๋ค์ดํฐ๋ธ ๋ฐ์ด๋๋ฆฌ์์ ์คํ ์ค | [๋
๋ฆฝ ์คํํ ์ค์น ๋ฐฉ๋ฒ](/docs/ko/setup) ์ค ํ๋๋ก Claude Code๋ฅผ ์ค์นํ์ธ์ |372| ๋ถํธ ์ข
๋ฃ: `requires the native binary` | Node ๋์ ๋ค์ดํฐ๋ธ ๋ฐ์ด๋๋ฆฌ์์ ์คํ ์ค | [๋
๋ฆฝ ์คํํ ์ค์น ๋ฐฉ๋ฒ](/docs/ko/setup) ์ค ํ๋๋ก Claude Code๋ฅผ ์ค์นํ์ธ์ |
304373| ๋ถํธ๊ฐ `config.load` ํ OIDC ๊ฒ์ ์ค๋ฅ๋ก ์ข
๋ฃ๋จ | `oidc.issuer`์ ๋๋ฌํ ์ ์๊ฑฐ๋ TLS ์ฒด์ธ์ ์ ๋ขฐํ์ง ์์ | ๋ฐ๊ธ์๊ฐ ํฌ๋์์ ๋๋ฌ ๊ฐ๋ฅํ๊ณ `/.well-known/openid-configuration`์ ์ ๊ณตํ๋์ง ํ์ธํ์ธ์. ๋น๊ณต๊ฐ PKI์ ๊ฒฝ์ฐ `ca_cert_pem`์ ์ค์ ํ์ธ์. ํฌ๋๊ฐ ์ ๋ฐฉํฅ ํ๋ก์๋ฅผ ํตํด์๋ง IdP์ ๋๋ฌํ๋ ๊ฒฝ์ฐ [`oidc.use_proxy: true`](/docs/ko/claude-apps-gateway-config#idp-requests-through-a-forward-proxy)๋ฅผ ์ค์ ํ์ธ์. v2.1.227 ์ด์ ๋ฒ์ ์์๋ ๋์ ํฌ๋์ IdP์ ๊ฐ ์๋ํฌ์ธํธ์ ๋ํ ์ง์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ์ธ์. || ๋ถํธ๊ฐ `config.load` ํ OIDC ๊ฒ์ ์ค๋ฅ๋ก ์ข
๋ฃ๋จ | `oidc.issuer`์ ๋๋ฌํ ์ ์๊ฑฐ๋ TLS ์ฒด์ธ์ ์ ๋ขฐํ์ง ์์ | ๋ฐ๊ธ์๊ฐ ํฌ๋์์ ๋๋ฌ ๊ฐ๋ฅํ๊ณ `/.well-known/openid-configuration`์ ์ ๊ณตํ๋์ง ํ์ธํ์ธ์. ๋น๊ณต๊ฐ PKI์ ๊ฒฝ์ฐ `ca_cert_pem`์ ์ค์ ํ์ธ์. ํฌ๋๊ฐ ์ ๋ฐฉํฅ ํ๋ก์๋ฅผ ํตํด์๋ง IdP์ ๋๋ฌํ๋ ๊ฒฝ์ฐ [`oidc.use_proxy: true`](/docs/ko/claude-apps-gateway-config#idp-requests-through-a-forward-proxy)๋ฅผ ์ค์ ํ์ธ์. v2.1.227 ์ด์ ๋ฒ์ ์์๋ ๋์ ํฌ๋์ IdP์ ๊ฐ ์๋ํฌ์ธํธ์ ๋ํ ์ง์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ์ธ์. ํฌ๋๊ฐ IdP์ ํธ์คํธ๋ช
์ ํ์ธํ ์ ์๊ฑฐ๋ ํ๋ก์๊ฐ IP ์ฃผ์์ ๋ํ `CONNECT`๋ฅผ ๊ฑฐ๋ถํ๋ ๊ฒฝ์ฐ [ํ๋ก์ ์ ์ฉ ์ก์ ](/docs/ko/claude-apps-gateway-config#proxy-only-egress)์ ์ฐธ์กฐํ์ธ์. v2.1.277 ์ด์์ด ํ์ํฉ๋๋ค. |
305| ๋ถํธ๊ฐ Postgres ๊ถํ ์ค๋ฅ๋ก ์ข
๋ฃ๋จ | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ญํ ์ด ์คํค๋ง์ ๋ํ DDL ๊ถํ์ด ์์ | ๋ถํธ ์ ํ
์ด๋ธ์ ์์ฑํ๊ณ ๋ณ๊ฒฝํ ์ ์๋๋ก gateway ์คํค๋ง์ ๋ํด ์ญํ ์ `CREATE` ๊ถํ์ ๋ถ์ฌํ์ธ์ |374| ๋ถํธ๊ฐ Postgres ๊ถํ ์ค๋ฅ๋ก ์ข
๋ฃ๋จ | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ญํ ์ด ์คํค๋ง์ ๋ํ DDL ๊ถํ์ด ์์ | ๋ถํธ ์ ํ
์ด๋ธ์ ์์ฑํ๊ณ ๋ณ๊ฒฝํ ์ ์๋๋ก gateway ์คํค๋ง์ ๋ํด ์ญํ ์ `CREATE` ๊ถํ์ ๋ถ์ฌํ์ธ์ |
375| ๋ก๊ทธ: `could not connect to Postgres at boot, attempt 1 of 3` | gateway๊ฐ ์์๋ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ฌํ ์ ์์์. ์๋ฅผ ๋ค์ด ๋คํธ์ํฌ๊ฐ ์์ง ์์ ์ค์ธ ์ฝ๋ ์ธ์คํด์ค | gateway๊ฐ ๋ถํ
์ ์๋ฃํ๋ฉด ์กฐ์น๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ฌํ ์ ์์ ๋ gateway๋ ์ข
๋ฃ๋๊ธฐ ์ ์ 2์ด ๊ฐ๊ฒฉ์ผ๋ก ์ฐ๊ฒฐ์ 3๋ฒ ์๋ํฉ๋๋ค. `could not connect to Postgres`๋ก ์ข
๋ฃ๋๋ฉด `store.postgres_url`๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก์ ๋คํธ์ํฌ ๊ฒฝ๋ก๋ฅผ ํ์ธํ์ธ์. ์๋๊ฐ ๊ฑฐ๋ถ๋์ง ์๊ณ ์๊ฐ ์ด๊ณผ๋๋ฉด ๊ฐ ์๋์ ๋ ๋ง์ ์๊ฐ์ ์ฃผ๊ธฐ ์ํด [`store.connect_timeout_seconds`](/docs/ko/claude-apps-gateway-config#store)๋ฅผ ๋์ด์ธ์. |
306| `/oauth/callback`์ด "Sign-in could not be completed"๋ฅผ ํ์ํจ | ์ด๋ฉ์ผ ๋๋ฉ์ธ์ด ๊ฑฐ๋ถ๋จ, id\_token ๊ฒ์ฆ ์คํจ, ๋๋ `email_verified`๊ฐ ๋ช
์์ ์ผ๋ก `false`์ด๋ฉฐ gateway๋ ํญ์ ์ฌ์ ์ ์์ด ๊ฑฐ๋ถํจ | `allowed_email_domains`์ ํ์ธํ๊ณ IdP๊ฐ ํ์ธ๋ `email` ํด๋ ์์ ๋ฐํํ๋์ง ํ์ธํ์ธ์. `email_verified: false`์ ๊ฒฝ์ฐ IdP ์ธก ๊ฒ์ฆ์ ์์ ํ์ธ์. IdP๊ฐ ๋ค๋ฅธ ํด๋ ์ ์ด๋ฆ ์๋์์ ์ด๋ฉ์ผ์ ๋ด๋ณด๋ด๋ ๊ฒฝ์ฐ `oidc.email_claim`์ ์ค์ ํ์ธ์. |376| `/oauth/callback`์ด "Sign-in could not be completed"๋ฅผ ํ์ํจ | ์ด๋ฉ์ผ ๋๋ฉ์ธ์ด ๊ฑฐ๋ถ๋จ, id\_token ๊ฒ์ฆ ์คํจ, ๋๋ `email_verified`๊ฐ ๋ช
์์ ์ผ๋ก `false`์ด๋ฉฐ gateway๋ ํญ์ ์ฌ์ ์ ์์ด ๊ฑฐ๋ถํจ | `allowed_email_domains`์ ํ์ธํ๊ณ IdP๊ฐ ํ์ธ๋ `email` ํด๋ ์์ ๋ฐํํ๋์ง ํ์ธํ์ธ์. `email_verified: false`์ ๊ฒฝ์ฐ IdP ์ธก ๊ฒ์ฆ์ ์์ ํ์ธ์. IdP๊ฐ ๋ค๋ฅธ ํด๋ ์ ์ด๋ฆ ์๋์์ ์ด๋ฉ์ผ์ ๋ด๋ณด๋ด๋ ๊ฒฝ์ฐ `oidc.email_claim`์ ์ค์ ํ์ธ์. |
307| ๋ก๊ทธ: `token exchange failed request_id=<id>: id_token missing email claim` | IdP๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก id\_token์ `email`์ ํฌํจํ์ง ์์. ์ด ๊ฑฐ๋ถ๋ `allowed_email_domains`์ด ์ค์ ๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํจ. ์์ผ๋ฉด ๋๋ฝ๋ ์ด๋ฉ์ผ์ด ์ด๋ฉ์ผ ์์ด ์ธ์
์ ๋ฐํํจ | IdP๋ฅผ ๊ตฌ์ฑํ์ฌ id\_token์ `email`์ ๋ด๋ณด๋ด๋๋ก ํ์ธ์. Okta: ์ฌ์ฉ์ ์ ์ ๊ถํ ๋ถ์ฌ ์๋ฒ์ ID ํ ํฐ ํด๋ ์์ `email`์ ์ถ๊ฐํ์ธ์. Entra: ์ฑ ๋ฑ๋ก์์ `email`์ ์ ํ์ ํด๋ ์์ผ๋ก ์ถ๊ฐํ์ธ์. PingFederate: `email`์ ๋ด๋ณด๋ด๋ OpenID Connect ์ ์ฑ
์ ํ์ฑํํ์ธ์. IdP๊ฐ userinfo ์๋ํฌ์ธํธ์์ `email`์ ์ ๊ณตํ์ง๋ง id\_token์ ํฌํจํ์ง ์๋ ๊ฒฝ์ฐ(์: Okta org ๊ถํ ๋ถ์ฌ ์๋ฒ) `oidc.userinfo_fallback: true`๋ฅผ ์ค์ ํ์ธ์. |377| ๋ก๊ทธ: `token exchange failed request_id=<id>: id_token missing email claim` | IdP๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก id\_token์ `email`์ ํฌํจํ์ง ์์. ์ด ๊ฑฐ๋ถ๋ `allowed_email_domains`์ด ์ค์ ๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํจ. ์์ผ๋ฉด ๋๋ฝ๋ ์ด๋ฉ์ผ์ด ์ด๋ฉ์ผ ์์ด ์ธ์
์ ๋ฐํํจ | IdP๋ฅผ ๊ตฌ์ฑํ์ฌ id\_token์ `email`์ ๋ด๋ณด๋ด๋๋ก ํ์ธ์. Okta: ์ฌ์ฉ์ ์ ์ ๊ถํ ๋ถ์ฌ ์๋ฒ์ ID ํ ํฐ ํด๋ ์์ `email`์ ์ถ๊ฐํ์ธ์. Entra: ์ฑ ๋ฑ๋ก์์ `email`์ ์ ํ์ ํด๋ ์์ผ๋ก ์ถ๊ฐํ์ธ์. PingFederate: `email`์ ๋ด๋ณด๋ด๋ OpenID Connect ์ ์ฑ
์ ํ์ฑํํ์ธ์. IdP๊ฐ userinfo ์๋ํฌ์ธํธ์์ `email`์ ์ ๊ณตํ์ง๋ง id\_token์ ํฌํจํ์ง ์๋ ๊ฒฝ์ฐ(์: Okta org ๊ถํ ๋ถ์ฌ ์๋ฒ) `oidc.userinfo_fallback: true`๋ฅผ ์ค์ ํ์ธ์. |
308| ๋ก๊ทธ: `refresh failed request_id=<id>: invalid_token (โฆ) (at userinfo_no_id_token, โฆ)`, ๊ฐ๋ฐ์๊ฐ ๋งค `session.ttl_hours`๋ง๋ค `Cloud gateway session expired`๋ฅผ ๋ด | IdP๊ฐ ์๋ก ๊ณ ์นจ ํ ํฐ์ ์๋ฝํ์ง๋ง ํจ๊ป id\_token์ ๋ฐํํ์ง ์์์ผ๋ฏ๋ก gateway๊ฐ IdP์ userinfo ์๋ํฌ์ธํธ์ ์ฌ์ฉ์์ ํด๋ ์์ ์์ฒญํ์ต๋๋ค. IdP๊ฐ ์๋ก ๊ณ ์ณ์ง ์ก์ธ์ค ํ ํฐ์ ๊ฑฐ๊ธฐ์ ๊ฑฐ๋ถํ์ต๋๋ค. gateway๊ฐ `temporarily_unavailable`์ผ๋ก ์๋ตํ๋ฏ๋ก Claude Code๋ ์๋ก ๊ณ ์นจ ํ ํฐ์ ์ ์งํ์ง๋ง ์ธ์
์ ๊ฐฑ์ ํ ์ ์์ต๋๋ค. v2.1.260 ์ด์ ์ gateway ๋ฒ์ ์ `(at โฆ)` ์ธ๋ถ ์ ๋ณด ์์ด ๋์ผํ ์ค์ ๊ธฐ๋กํฉ๋๋ค. | [`oidc.scope_on_refresh: true`](/docs/ko/claude-apps-gateway-config#oidc)๋ฅผ ์ค์ ํ์ธ์. gateway v2.1.260 ์ด์์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฏ๋ก ์๋ก ๊ณ ์นจ ์์ฒญ์ด `openid`๋ฅผ ๋ค์ ์์ฒญํฉ๋๋ค. Okta์ ๊ฐ์ ์ผ๋ถ IdP๋ ์์ฒญํ ๋๋ง ์๋ก ๊ณ ์นจ ์ id\_token์ ๋ฐํํฉ๋๋ค. PingFederate์์๋ ๋์ **Applications > OAuth > OpenID Connect Policy Management** ์๋์์ **Return ID Token On Refresh Grant**๋ฅผ ํ์ฑํํ์ธ์. ํค๋ PingFederate์ ๋์์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ์ฌ์ ํ ์๋ตํ๋ ๋ค๋ฅธ IdP์ ๊ฒฝ์ฐ userinfo ์๋ํฌ์ธํธ๊ฐ ์๋ก ๊ณ ์นจ์ผ๋ก ๋ฐ๊ธ๋ ์ก์ธ์ค ํ ํฐ์ ์๋ฝํ๋์ง ํ์ธํ์ธ์. ์์ ๋ฐฉํธ์ผ๋ก [`session.ttl_hours`](/docs/ko/claude-apps-gateway-config#session)๋ฅผ ๋์ด์ธ์. ํ๋ก๋น์ ๋ ํด์ ํธ๋ ์ด๋์คํ๋ [Identity provider setup](#identity-provider-setup)์ ์ฐธ์กฐํ์ธ์. |378| ๋ก๊ทธ: `refresh failed request_id=<id>: invalid_token (โฆ) (at userinfo_no_id_token, โฆ)`, ๊ฐ๋ฐ์๊ฐ ๋งค `session.ttl_hours`๋ง๋ค `Cloud gateway session expired`๋ฅผ ๋ด | IdP๊ฐ ์๋ก ๊ณ ์นจ ํ ํฐ์ ์๋ฝํ์ง๋ง ํจ๊ป id\_token์ ๋ฐํํ์ง ์์์ผ๋ฏ๋ก gateway๊ฐ IdP์ userinfo ์๋ํฌ์ธํธ์ ์ฌ์ฉ์์ ํด๋ ์์ ์์ฒญํ์ต๋๋ค. IdP๊ฐ ์๋ก ๊ณ ์ณ์ง ์ก์ธ์ค ํ ํฐ์ ๊ฑฐ๊ธฐ์ ๊ฑฐ๋ถํ์ต๋๋ค. gateway๊ฐ `temporarily_unavailable`์ผ๋ก ์๋ตํ๋ฏ๋ก Claude Code๋ ์๋ก ๊ณ ์นจ ํ ํฐ์ ์ ์งํ์ง๋ง ์ธ์
์ ๊ฐฑ์ ํ ์ ์์ต๋๋ค. v2.1.260 ์ด์ ์ gateway ๋ฒ์ ์ `(at โฆ)` ์ธ๋ถ ์ ๋ณด ์์ด ๋์ผํ ์ค์ ๊ธฐ๋กํฉ๋๋ค. | [`oidc.scope_on_refresh: true`](/docs/ko/claude-apps-gateway-config#oidc)๋ฅผ ์ค์ ํ์ธ์. gateway v2.1.260 ์ด์์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฏ๋ก ์๋ก ๊ณ ์นจ ์์ฒญ์ด `openid`๋ฅผ ๋ค์ ์์ฒญํฉ๋๋ค. Okta์ ๊ฐ์ ์ผ๋ถ IdP๋ ์์ฒญํ ๋๋ง ์๋ก ๊ณ ์นจ ์ id\_token์ ๋ฐํํฉ๋๋ค. PingFederate์์๋ ๋์ **Applications > OAuth > OpenID Connect Policy Management** ์๋์์ **Return ID Token On Refresh Grant**๋ฅผ ํ์ฑํํ์ธ์. ํค๋ PingFederate์ ๋์์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ์ฌ์ ํ ์๋ตํ๋ ๋ค๋ฅธ IdP์ ๊ฒฝ์ฐ userinfo ์๋ํฌ์ธํธ๊ฐ ์๋ก ๊ณ ์นจ์ผ๋ก ๋ฐ๊ธ๋ ์ก์ธ์ค ํ ํฐ์ ์๋ฝํ๋์ง ํ์ธํ์ธ์. ์์ ๋ฐฉํธ์ผ๋ก [`session.ttl_hours`](/docs/ko/claude-apps-gateway-config#session)๋ฅผ ๋์ด์ธ์. ํ๋ก๋น์ ๋ ํด์ ํธ๋ ์ด๋์คํ๋ [Identity provider setup](#identity-provider-setup)์ ์ฐธ์กฐํ์ธ์. |
309| ๋ชจ๋ Amazon Bedrock ์์ฒญ์ด 502๋ฅผ ๋ฐํํจ. ๋ก๊ทธ๊ฐ `Could not load credentials from any providers`๋ฅผ ํ์ํจ | EC2์์ IMDSv2์ ๊ธฐ๋ณธ ํ ์ ํ 1์ด ์ปจํ
์ด๋ ๋ด๋ถ์ ์ธ์คํด์ค ๋ฉํ๋ฐ์ดํฐ ์์ฒญ์ ์ฐจ๋จํจ. ๋ถํธ ๋ฐ `/readyz`๋ AWS SDK๊ฐ ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ์ด ์๋ ์ฒซ ๋ฒ์งธ ์์ฒญ์์ ์ธ์คํด์ค ์๊ฒฉ ์ฆ๋ช
์ ํ์ธํ๋ฏ๋ก ์ด์จ๋ ํต๊ณผํจ | `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`๋ก ํ ์ ํ์ ๋์ด๊ฑฐ๋ ์์ ํ
ํ๋ฆฟ์์ ์ค์ ํ์ธ์. ๋ณ๊ฒฝ ์ฌํญ์ ์ธ์คํด์ค์ ๋ชจ๋ ์ปจํ
์ด๋์ ์ ์ฉ๋ฉ๋๋ค. ๊ฐ๋ฅํ ๊ฒฝ์ฐ ECS ์์
์ญํ ์ ์ ํธํ์ธ์. ์ด๋ ECS ์ปจํ
์ด๋ ์๊ฒฉ ์ฆ๋ช
์๋ํฌ์ธํธ์์ ์๊ฒฉ ์ฆ๋ช
์ ์ฝ๊ณ ๋ณ๊ฒฝ์ ์์ ํ ํผํ๊ฑฐ๋, ๋
ธ์ถ์ ์ ํํ๊ธฐ ์ํด ์ ์ฉ gateway ์ธ์คํด์ค์ ๋ณ๊ฒฝ์ ์ ์ฉํ์ธ์. |379| ๋ชจ๋ Amazon Bedrock ์์ฒญ์ด 502๋ฅผ ๋ฐํํจ. ๋ก๊ทธ๊ฐ `Could not load credentials from any providers`๋ฅผ ํ์ํจ | EC2์์ IMDSv2์ ๊ธฐ๋ณธ ํ ์ ํ 1์ด ์ปจํ
์ด๋ ๋ด๋ถ์ ์ธ์คํด์ค ๋ฉํ๋ฐ์ดํฐ ์์ฒญ์ ์ฐจ๋จํจ. ๋ถํธ ๋ฐ `/readyz`๋ AWS SDK๊ฐ ํด๋ผ์ด์ธํธ ๊ตฌ์ฑ์ด ์๋ ์ฒซ ๋ฒ์งธ ์์ฒญ์์ ์ธ์คํด์ค ์๊ฒฉ ์ฆ๋ช
์ ํ์ธํ๋ฏ๋ก ์ด์จ๋ ํต๊ณผํจ | `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`๋ก ํ ์ ํ์ ๋์ด๊ฑฐ๋ ์์ ํ
ํ๋ฆฟ์์ ์ค์ ํ์ธ์. ๋ณ๊ฒฝ ์ฌํญ์ ์ธ์คํด์ค์ ๋ชจ๋ ์ปจํ
์ด๋์ ์ ์ฉ๋ฉ๋๋ค. ๊ฐ๋ฅํ ๊ฒฝ์ฐ ECS ์์
์ญํ ์ ์ ํธํ์ธ์. ์ด๋ ECS ์ปจํ
์ด๋ ์๊ฒฉ ์ฆ๋ช
์๋ํฌ์ธํธ์์ ์๊ฒฉ ์ฆ๋ช
์ ์ฝ๊ณ ๋ณ๊ฒฝ์ ์์ ํ ํผํ๊ฑฐ๋, ๋
ธ์ถ์ ์ ํํ๊ธฐ ์ํด ์ ์ฉ gateway ์ธ์คํด์ค์ ๋ณ๊ฒฝ์ ์ ์ฉํ์ธ์. |
380| ํผํฌ ๋ก๋์์ ์๋ต์ด ์์๋๊ธฐ ๋๋ฆฌ๊ฑฐ๋ ์ค๋จ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฑฐ๋, ์
์คํธ๋ฆผ์ด ์ ์์ธ๋ฐ๋ 502 `all upstreams failed`๋ก ์คํจํจ | ๋ณต์ ๋ณธ์ด ์
์คํธ๋ฆผ์ผ๋ก ํ ๋ฒ์ ๋ณด๋ด๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ ์์ฒญ์ ์ด์ด ๋์์ผ๋ฏ๋ก ์ถ๊ฐ ์์ฒญ์ gateway ๋ด๋ถ์์ ๋๊ธฐํจ. `provider: anthropic` ์
์คํธ๋ฆผ์์ `timeouts.upstream_ttfb_ms`๋ณด๋ค ์ค๋ ๋๊ธฐํ๋ ์์ฒญ์ ํด๋น ์
์คํธ๋ฆผ์ ํฌ๊ธฐํ๋ฉฐ, ์ดํ ์
์คํธ๋ฆผ์ด ์ ๊ณตํ์ง ์์ผ๋ฉด 502๋ฅผ ์์ฑํจ. ๋ก๊ทธ๋ `client requests are open`์ ํฌํจํ๋ ๊ฒฝ๊ณ ๋ฅผ ํ์ํจ. | ๋ณต์ ๋ณธ์ ์ถ๊ฐํ๊ฑฐ๋ ๊ฐ ๋ณต์ ๋ณธ์ ์ ํ์ ๋์ด์ธ์. [๋์ ์
์คํธ๋ฆผ ์์ฒญ](#concurrent-upstream-requests)์ ์ฐธ์กฐํ์ธ์. |
310| IdP ์ค๋ฅ: unknown or unsupported scope | IdP๊ฐ ์ธ์ํ์ง ๋ชปํ๋ ๋ฒ์๋ฅผ ๊ฑฐ๋ถํจ | `oidc.scopes`๋ฅผ ์ ํํ IdP๊ฐ ์๋ฝํ๋ ๋ชฉ๋ก์ผ๋ก ์ค์ ํ์ธ์. `openid`๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ `openid profile email offline_access`์
๋๋ค. |381| IdP ์ค๋ฅ: unknown or unsupported scope | IdP๊ฐ ์ธ์ํ์ง ๋ชปํ๋ ๋ฒ์๋ฅผ ๊ฑฐ๋ถํจ | `oidc.scopes`๋ฅผ ์ ํํ IdP๊ฐ ์๋ฝํ๋ ๋ชฉ๋ก์ผ๋ก ์ค์ ํ์ธ์. `openid`๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ `openid profile email offline_access`์
๋๋ค. |
311| `oidc.scopes` ์ค์ ํ ์ธ์
์ด ์๋์ผ๋ก ๊ฐฑ์ ๋์ง ์์ | `offline_access`๊ฐ ์ฌ์ ์์์ ์ญ์ ๋จ | IdP๊ฐ ์ง์ํ๋ ๊ฒฝ์ฐ `offline_access`๋ฅผ ๋ค์ ์ถ๊ฐํ์ธ์. ์๋ก ๊ณ ์นจ ํ ํฐ ์์ด ๊ฐ๋ฐ์๋ ๋งค `session.ttl_hours`๋ง๋ค ๋ธ๋ผ์ฐ์ ๋ก๊ทธ์ธ์ ๋ค์ ์คํํฉ๋๋ค. |382| `oidc.scopes` ์ค์ ํ ์ธ์
์ด ์๋์ผ๋ก ๊ฐฑ์ ๋์ง ์์ | `offline_access`๊ฐ ์ฌ์ ์์์ ์ญ์ ๋จ | IdP๊ฐ ์ง์ํ๋ ๊ฒฝ์ฐ `offline_access`๋ฅผ ๋ค์ ์ถ๊ฐํ์ธ์. ์๋ก ๊ณ ์นจ ํ ํฐ ์์ด ๊ฐ๋ฐ์๋ ๋งค `session.ttl_hours`๋ง๋ค ๋ธ๋ผ์ฐ์ ๋ก๊ทธ์ธ์ ๋ค์ ์คํํฉ๋๋ค. |
312| ๋ธ๋ผ์ฐ์ ๊ฐ "This request came from another site and was blocked"๋ฅผ ํ์ํจ | ๊ต์ฐจ ์ฌ์ดํธ ์์ POST, CSRF ๋ณดํธ๋ก ์ฐจ๋จ๋จ. ํฌํจ๋๊ฑฐ๋ ํ๋ก์๋ ํ์ด์ง์ ๊ฒฝ์ฐ ์์๋จ | ๊ฒ์ฆ ๋งํฌ๋ฅผ ์ง์ ์ด๊ธฐ |383| ๋ธ๋ผ์ฐ์ ๊ฐ "This request came from another site and was blocked"๋ฅผ ํ์ํจ | ๊ต์ฐจ ์ฌ์ดํธ ์์ POST, CSRF ๋ณดํธ๋ก ์ฐจ๋จ๋จ. ํฌํจ๋๊ฑฐ๋ ํ๋ก์๋ ํ์ด์ง์ ๊ฒฝ์ฐ ์์๋จ | ๊ฒ์ฆ ๋งํฌ๋ฅผ ์ง์ ์ด๊ธฐ |