VPC ์„œ๋น„์Šค ์ œ์–ด(VPC SC) ์‚ฌ์šฉ

VPC ์„œ๋น„์Šค ์ œ์–ด๋Š” ๋ฐ์ดํ„ฐ ๋ฌด๋‹จ ๋ฐ˜์ถœ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ณด์•ˆ ๊ฒฝ๊ณ„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” Cloud Run Functions Google Cloud ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ run.app URL๊ณผ ์ปค์Šคํ…€ ๋„๋ฉ”์ธ ๋ชจ๋‘ VPC ์„œ๋น„์Šค ์ œ์–ด๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” Cloud Run๊ณผ ํ•จ๊ป˜ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค์— ๋ณด์•ˆ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ์‚ฌํ•ญ ๋ฐ ๊ถŒ์žฅ์‚ฌํ•ญ

  • Artifact Registry ๋˜๋Š” Container Registry์˜ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ๋ฐฐํฌํ•˜๋ ค๋Š” ํ”„๋กœ์ ํŠธ์™€ ๋™์ผํ•œ VPC ์„œ๋น„์Šค ์ œ์–ด ์„œ๋น„์Šค ๊ฒฝ๊ณ„์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๋นŒ๋“œ ์ค‘์ธ ์ฝ”๋“œ๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ‘ธ์‹œ๋˜๋Š” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์™€ ๋™์ผํ•œ ๊ฒฝ๊ณ„์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • VPC ์„œ๋น„์Šค ์ œ์–ด ๊ฒฝ๊ณ„ ๋‚ด์— ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ง€์†์  ๋ฐฐํฌ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • Cloud Run ์„œ๋น„์Šค๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด VPC ์„œ๋น„์Šค ์ œ์–ด ์ •์ฑ… ์‹œํ–‰์€ ํด๋ผ์ด์–ธํŠธ์˜ IAM ์ธ์ฆ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์š”์ฒญ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ œํ•œ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    • IAM ์ฃผ ๊ตฌ์„ฑ์›์„ ์‚ฌ์šฉํ•˜๋Š” VPC ์„œ๋น„์Šค ์ œ์–ด ์ธ๊ทธ๋ ˆ์Šค ์ •์ฑ… ๊ทœ์น™์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • IAM ์ฃผ ๊ตฌ์„ฑ์›์„ ์‚ฌ์šฉํ•˜๋Š” VPC ์„œ๋น„์Šค ์ œ์–ด ๊ฒฝ๊ณ„์˜ ์•ก์„ธ์Šค ์ˆ˜์ค€์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์ง€์›ํ•˜๋„๋ก ์กฐ์ง ์„ค์ •

Cloud Run์— VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์กฐ์ง ์ˆ˜์ค€์—์„œ ์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์กฐ์ง ์ •์ฑ…์„ ๊ตฌ์„ฑํ•˜๋ฉด Cloud Run์„ ์‚ฌ์šฉํ•  ๋•Œ VPC ์„œ๋น„์Šค ์ œ์–ด ๊ฒ€์‚ฌ๊ฐ€ ์‹œํ–‰๋˜๋ฉฐ ๊ฐœ๋ฐœ์ž๋Š” VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์ค€์ˆ˜ํ•˜๋Š” ์„œ๋น„์Šค๋งŒ ๋ฐฐํฌํ•˜๋„๋ก ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ์ง ์ •์ฑ…์„ ์„ค์ •ํ•  ๋•Œ ์ƒ์†์„ฑ ๋ฐ ์œ„๋ฐ˜์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

gcloud functions๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Cloud Run Functions๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ๋˜๋Š” ๊ด€๋ฆฌ์ž๊ฐ€ Cloud Build ์„œ๋น„์Šค ๊ณ„์ •์— VPC ์„œ๋น„์Šค ์ œ์–ด ๊ฒฝ๊ณ„์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

VPC ์„œ๋น„์Šค ์ œ์–ด ๊ฒฝ๊ณ„ ์„ค์ •

๋‹ค์Œ ๋‹จ๊ณ„๋Š” VPC ์„œ๋น„์Šค ์ œ์–ด ๊ฒฝ๊ณ„๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

  1. VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์—ญํ• ์„ ๋ฐ›์•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  2. Google Cloud ์ฝ˜์†”์—์„œ VPC ์„œ๋น„์Šค ์ œ์–ด ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    VPC ์„œ๋น„์Šค ์ œ์–ด ํŽ˜์ด์ง€๋กœ ์ด๋™

  3. ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ์กฐ์ง์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  4. ์•ก์„ธ์Šค ์ •์ฑ… ๊ด€๋ฆฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์•ก์„ธ์Šค ์ •์ฑ…์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์•ก์„ธ์Šค ์ •์ฑ…์—๋Š” ๊ฒฝ๊ณ„์— ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  5. ์ƒˆ ๊ฒฝ๊ณ„์„ ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ„์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  6. ๊ฒฝ๊ณ„ ๋‚ด์—์„œ ๋ณดํ˜ธํ•˜๋ ค๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    1. ํ”„๋กœ์ ํŠธ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    2. ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€ ์ฐฝ์—์„œ ์ถ”๊ฐ€ํ•  ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      ๊ณต์œ  VPC๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ˜ธ์ŠคํŠธ ํ”„๋กœ์ ํŠธ ๋ฐ ์„œ๋น„์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    3. ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. ๊ฒฝ๊ณ„ ๋‚ด์—์„œ ๋ณดํ˜ธํ•  ์„œ๋น„์Šค๋กœ Cloud Run์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    1. ์ œํ•œ๋œ ์„œ๋น„์Šค๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    2. ์„œ๋น„์Šค ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    3. "Cloud Run"์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ํ›„ Cloud Run Admin API๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. (gcloud functions๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ Cloud Functions V2 API๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.)

    4. Cloud Run Admin API ์ถ”๊ฐ€(๋˜๋Š” gcloud functions๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ Cloud Functions V2 API)๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  8. ๊ฐœ๋ฐœ์ž์˜ ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    Cloud Run์šฉ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด ํšŒ์‚ฌ ๋…ธํŠธ๋ถ๊ณผ ๊ฐ™์€ ๊ฒฝ๊ณ„ ์™ธ๋ถ€์— ์žˆ๋Š” ๋จธ์‹ ์—์„œ ์„œ๋น„์Šค๋ฅผ ๋ณด๊ณ  ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•œ ๊ฒฝ๊ณ„ ์™ธ๋ถ€์˜ ๋ชจ๋“  ์•ก์„ธ์Šค๊ฐ€ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์šด์˜์ž๊ฐ€ ๊ฒฝ๊ณ„ ๋‚ด์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณด๊ณ  ๋ฐฐํฌํ•˜๋ ค๋ฉด ๊ฒฝ๊ณ„ ์ธ๊ทธ๋ ˆ์Šค ์ •์ฑ…์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    1. ์ธ๊ทธ๋ ˆ์Šค ์ •์ฑ…์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    2. ์†Œ์Šค, ID, ํ”„๋กœ์ ํŠธ, ์„œ๋น„์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

    3. '๊ทœ์น™ ์ถ”๊ฐ€'๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ์กฐ์ง์—์„œ Access Context Manager๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์„ค์ •ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  9. ๊ฒฝ๊ณ„ ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์ด ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•˜๋ฉด Cloud Run Admin API์— ๋Œ€ํ•œ ๋ชจ๋“  ํ˜ธ์ถœ์„ ๊ฒ€์‚ฌํ•˜์—ฌ ์ด๋“ค์ด ๋™์ผํ•œ ๊ฒฝ๊ณ„ ๋‚ด์—์„œ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ์ง ์ •์ฑ… ์„ค์ •

์กฐ์ง ์ •์ฑ…์„ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด ์กฐ์ง ์ •์ฑ… ๊ด€๋ฆฌ์ž(roles/orgpolicy.policyAdmin) ์—ญํ• ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์ค€์ˆ˜ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๋ฌด๋‹จ ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์„œ๋น„์Šค ๊ฒฝ๊ณ„์—์„œ Cloud Run์— ํ—ˆ์šฉ๋˜๋Š” ์ธ๊ทธ๋ ˆ์Šค ๋ฐ ์ด๊ทธ๋ ˆ์Šค ์„ค์ •์„ ์ œ์–ดํ•˜๋„๋ก ๋‹ค์Œ ์กฐ์ง ์ •์ฑ…์„ ์„ค์ •ํ•˜์„ธ์š”.

ํ—ˆ์šฉ๋˜๋Š” ์ธ๊ทธ๋ ˆ์Šค ์„ค์ • ์ œํ•œ

run.allowedIngress ์กฐ์ง ์ •์ฑ…์€ ๊ฐœ๋ฐœ์ž๊ฐ€ Cloud Run์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๊ทธ๋ ˆ์Šค ์„ค์ •์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ์š”์ฒญ๋งŒ ํ—ˆ์šฉํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ internal ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ณ , Cloud Load Balancing์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๋ฅผ ํ†ตํ•œ ์š”์ฒญ์„ ํ—ˆ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋Š” internal-and-cloud-load-balancing ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋„๋ก ์กฐ์ง ์ •์ฑ…์„ ์„ค์ •ํ•˜์„ธ์š”.

์ด๋Ÿฌํ•œ ์„ค์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud Run์— ๋Œ€ํ•œ ์ธ๊ทธ๋ ˆ์Šค ์ œํ•œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ ํ—ˆ์šฉ๋œ ์ธ๊ทธ๋ ˆ์Šค ์„ค์ •(Cloud Run) ์ •์ฑ… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์กฐ์ง ์ •์ฑ…์œผ๋กœ ์ด๋™

  2. ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์ˆ˜์ • ํŽ˜์ด์ง€์—์„œ ๋งž์ถค์„ค์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  4. ์ •์ฑ… ์‹œํ–‰์—์„œ ๊ต์ฒด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  5. ์ •์ฑ… ๊ฐ’์—์„œ ์ปค์Šคํ…€์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. ์ •์ฑ… ์œ ํ˜•์—์„œ ํ—ˆ์šฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  7. ์ปค์Šคํ…€ ๊ฐ’ ์•„๋ž˜์— internal์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. Cloud Load Balancing ํŠธ๋ž˜ํ”ฝ๋„ ํ—ˆ์šฉํ•˜๋ ค๋ฉด ์ƒˆ ์ •์ฑ… ๊ฐ’์„ ํด๋ฆญํ•˜๊ณ  internal-and-cloud-load-balancing์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  8. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

gcloud resource-manager org-policies allow ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud resource-manager org-policies allow \
  run.allowedIngress internal \
  --organization ORGANIZATION_ID

์—ฌ๊ธฐ์„œ ORGANIZATION_ID๋Š” ์กฐ์ง ID์ž…๋‹ˆ๋‹ค. Cloud Load Balancing ํŠธ๋ž˜ํ”ฝ๋„ ํ—ˆ์šฉํ•˜๋ ค๋ฉด run.allowedIngress internal์„ run.allowedIngress internal-and-cloud-load-balancing์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

์ด ์กฐ์ง ์ •์ฑ…์„ ์ ์šฉํ•œ ํ›„์—๋Š” ๋ชจ๋“  ์„œ๋น„์Šค๊ฐ€ ์ธ๊ทธ๋ ˆ์Šค ์„ค์ •์— ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, Cloud Run ์„œ๋น„์Šค๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ๋‚ด์˜ VPC ๋„คํŠธ์›Œํฌ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ๋งŒ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๊ทธ๋ ˆ์Šค๋ฅผ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉด ์กฐ์ง ์ •์ฑ…์— ์˜ํ•ด ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

ํ—ˆ์šฉ๋˜๋Š” VPC ์ด๊ทธ๋ ˆ์Šค ์„ค์ • ์ œํ•œ

run.allowedVPCEgress ์กฐ์ง ์ •์ฑ…์€ ๊ฐœ๋ฐœ์ž๊ฐ€ Cloud Run์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ด๊ทธ๋ ˆ์Šค ์„ค์ •์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. all-traffic ๊ฐ’๋งŒ ํ—ˆ์šฉํ•˜๋„๋ก ์ด ์กฐ์ง ์ •์ฑ…์„ ์„ค์ •ํ•˜์„ธ์š”.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ ํ—ˆ์šฉ๋œ VPC ์ด๊ทธ๋ ˆ์Šค ์„ค์ •(Cloud Run) ์ •์ฑ… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์กฐ์ง ์ •์ฑ…์œผ๋กœ ์ด๋™

  2. ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์ˆ˜์ • ํŽ˜์ด์ง€์—์„œ ๋งž์ถค์„ค์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  4. ์ •์ฑ… ์‹œํ–‰์—์„œ ๊ต์ฒด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  5. ์ •์ฑ… ๊ฐ’์—์„œ ์ปค์Šคํ…€์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. ์ •์ฑ… ์œ ํ˜•์—์„œ ํ—ˆ์šฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  7. ์ปค์Šคํ…€ ๊ฐ’ ์•„๋ž˜์— all-traffic์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  8. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

gcloud resource-manager org-policies allow ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud resource-manager org-policies allow \
  run.allowedVPCEgress all-traffic \
  --organization ORGANIZATION_ID

์—ฌ๊ธฐ์„œ ORGANIZATION_ID๋Š” ์กฐ์ง ID์ž…๋‹ˆ๋‹ค.

์กฐ์ง ์ •์ฑ…์„ ์„ค์ •ํ•œ ์ดํ›„์˜ ๋™์ž‘

์กฐ์ง ์ •์ฑ…์„ ์ ์šฉํ•œ ํ›„์—๋Š” ๋ชจ๋“  ์ƒˆ ๋ฒ„์ „์—์„œ ์ง์ ‘ VPC ์ด๊ทธ๋ ˆ์Šค ๋˜๋Š” ์„œ๋ฒ„๋ฆฌ์Šค VPC ์•ก์„ธ์Šค ์ปค๋„ฅํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ ์ด๊ทธ๋ ˆ์Šค ์„ค์ •์— all-traffic ๊ฐ’์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์„ค์ •์„ ์กฐํ•ฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋ฒ„์ „์˜ ๋ชจ๋“  ์ด๊ทธ๋ ˆ์Šค ํŠธ๋ž˜ํ”ฝ์ด VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…๋˜๋ฉฐ, ์ด ํŠธ๋ž˜ํ”ฝ์€ VPC ๋„คํŠธ์›Œํฌ์˜ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™ ๋ฐ ๊ธฐํƒ€ ์„ค์ •์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐ’์„ ์ง€์ •ํ•˜๋Š” ์ƒˆ ๋ฒ„์ „ ๋ฐฐํฌ๋Š” ์กฐ์ง ์ •์ฑ…์— ์˜ํ•ด ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

์กฐ์ง ์ •์ฑ… ๋ฐ ํŠธ๋ž˜ํ”ฝ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

์กฐ์ง ์ •์ฑ…์ด ์„ค์ •๋˜๊ธฐ ์ „์— ์กด์žฌํ•œ ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ, ํŠธ๋ž˜ํ”ฝ์„ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  ๋ฒ„์ „์ด ๊ทœ์ •์„ ์ค€์ˆ˜ํ•  ๋•Œ๊นŒ์ง€ ๊ทœ์ • ๋ฏธ์ค€์ˆ˜ ๋ฒ„์ „์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๊ณ„์† ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋™์ž‘์„ ์‚ฌ์šฉํ•˜๋ฉด ์ •์ฑ…์„ ์ค€์ˆ˜ํ•˜๋Š” ์ƒˆ ๋ฒ„์ „์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์ ์ง„์ ์œผ๋กœ ์ถœ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋ž˜ํ”ฝ์„ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  ๋ฒ„์ „์ด ์ •์ฑ…์„ ์ค€์ˆ˜ํ•˜๋ฉด ์ •์ฑ…์„ ์ค€์ˆ˜ํ•˜์ง€ ์•Š๋Š” ๋ฒ„์ „์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ด๋™ํ•˜๋ ค๋Š” ๋ชจ๋“  ์‹œ๋„๋Š” ์กฐ์ง ์ •์ฑ…์— ์˜ํ•ด ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์ง€์›ํ•˜๋„๋ก ํ”„๋กœ์ ํŠธ ์„ค์ •

์„œ๋น„์Šค ๊ฒฝ๊ณ„ ๋‚ด์˜ ๊ฐœ๋ณ„ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ถ”๊ฐ€ ๊ตฌ์„ฑ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

VPC ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ

์ด ์„น์…˜์—์„œ๋Š” ์ผ๋ฐ˜ googleapis.com ๋„๋ฉ”์ธ์œผ๋กœ ์ „์†ก๋œ ์š”์ฒญ์ด ์ž๋™์œผ๋กœ ์ œํ•œ๋œ ๊ฐ€์ƒ IP(VIP) ๋ฒ”์œ„(Cloud Run ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” 199.36.153.4/30(restricted.googleapis.com))๋กœ ๋ผ์šฐํŒ…๋˜๋„๋ก VPC ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ VPC ๋„คํŠธ์›Œํฌ๋งˆ๋‹ค ์ œํ•œ๋œ VIP ๋ฒ”์œ„์— ๋Œ€ํ•œ ํŠธ๋ž˜ํ”ฝ์„ ์ œ์™ธํ•œ ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ์ฐจ๋‹จํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. VPC ๋„คํŠธ์›Œํฌ ๋ฆฌ์†Œ์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ์„œ๋ธŒ๋„ท์—์„œ ๋น„๊ณต๊ฐœ Google ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ฐ์ดํ„ฐ๊ฐ€ VPC ๋„คํŠธ์›Œํฌ์—์„œ ๋‚˜๊ฐ€๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋„๋ก ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    • ๋ชจ๋“  ์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ์ฐจ๋‹จํ•˜๋Š” ์ด๊ทธ๋ ˆ์Šค ๊ฑฐ๋ถ€ ๊ทœ์น™์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    • TCP ํฌํŠธ 443์— 199.36.153.4/30์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ํ—ˆ์šฉํ•˜๋Š” ์ด๊ทธ๋ ˆ์Šค ํ—ˆ์šฉ ๊ทœ์น™์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด ๊ทœ์น™์ด ๋ฐฉ๊ธˆ ๋งŒ๋“  ์ด๊ทธ๋ ˆ์Šค ๊ฑฐ๋ถ€ ๊ทœ์น™๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ œํ•œ๋œ VIP ๋ฒ”์œ„๋กœ๋งŒ ์ด๊ทธ๋ ˆ์Šค๊ฐ€ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

  3. Cloud DNS ์‘๋‹ต ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud dns response-policies create RESPONSE_POLICY \
    --networks=NETWORK \
    --description=DESCRIPTION
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • RESPONSE_POLICY: ์‘๋‹ต ์ •์ฑ…์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • NETWORK: ์ด ์ •์ฑ…๊ณผ ์—ฐ๊ฒฐํ•  ๋„คํŠธ์›Œํฌ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋„คํŠธ์›Œํฌ๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด ๊ฐ ๋„คํŠธ์›Œํฌ์˜ ์ด๋ฆ„์„ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: network1,network2).
    • DESCRIPTION: ์‘๋‹ต ์ •์ฑ…์˜ ์„ค๋ช…์ž…๋‹ˆ๋‹ค(์˜ˆ: Cloud Run VPC Service Controls response policy).
  4. ์‘๋‹ต ์ •์ฑ…์— ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•˜์—ฌ *.googleapis.com์„ restricted.googleapis.com์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. restricted.googleapis.com์˜ IP ์ฃผ์†Œ ๋ฒ”์œ„๋Š” 199.36.153.4/30์ž…๋‹ˆ๋‹ค.

    gcloud dns response-policies rules create RESPONSE_POLICY_RULE \
    --response-policy=RESPONSE_POLICY \
    --dns-name="*.googleapis.com." \
    --local-data=name="restricted.googleapis.com.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7"
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • RESPONSE_POLICY_RULE: ์‘๋‹ต ์ •์ฑ… ๊ทœ์น™์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • RESPONSE_POLICY: ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋งŒ๋“  ์‘๋‹ต ์ •์ฑ…์˜ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์ธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
  5. ์‘๋‹ต ์ •์ฑ…์— ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•˜์—ฌ *.run.app(๋˜๋Š” gcloud functions deploy๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“  ๊ฒฝ์šฐ *.cloudfunctions.net)์„ restricted.googleapis.com์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. restricted.googleapis.com์˜ IP ์ฃผ์†Œ ๋ฒ”์œ„๋Š” 199.36.153.4/30์ž…๋‹ˆ๋‹ค.

    gcloud dns response-policies rules create RESPONSE_POLICY_RULE \
    --response-policy=RESPONSE_POLICY \
    --dns-name="*.run.app." \
    --local-data=name="restricted.googleapis.com.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7"
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • RESPONSE_POLICY_RULE: ์‘๋‹ต ์ •์ฑ… ๊ทœ์น™์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • RESPONSE_POLICY: ์ด์ „ ๋‹จ๊ณ„์—์„œ ์ง€์ •ํ•œ ์‘๋‹ต ์ •์ฑ…์˜ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์ธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์ด ์‹œ์ ์—์„œ VPC ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์š”์ฒญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • VPC ๋„คํŠธ์›Œํฌ๋ฅผ ๋‚˜๊ฐˆ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์™ธ๋ถ€์˜ ์ด๊ทธ๋ ˆ์Šค๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
  • VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” Google API ๋ฐ ์„œ๋น„์Šค์—๋งŒ ๋„๋‹ฌํ•˜๋ฏ€๋กœ Google API๋ฅผ ํ†ตํ•œ ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์ค€์ˆ˜ํ•˜๋Š” Cloud Run ์„œ๋น„์Šค ๋ฐ ์ž‘์—… ๋ฐฐํฌ

Cloud Run์— ๋Œ€ํ•ด VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ๊ตฌ์„ฑํ•œ ํ›„์—๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ๋‚ด์— ๋ฐฐํฌํ•œ ๋ชจ๋“  Cloud Run ์„œ๋น„์Šค ๋ฐ ์ž‘์—…์—์„œ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ ค๋ฉด ๋‹ค์Œ ์กฐ์น˜๋ฅผ ์ทจํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Cloud Run ์„œ๋น„์Šค ๋ฐ ์ž‘์—…์€ ์ง์ ‘ VPC ์ด๊ทธ๋ ˆ์Šค ๋˜๋Š” ์„œ๋ฒ„๋ฆฌ์Šค VPC ์•ก์„ธ์Šค ์ปค๋„ฅํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ VPC ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ์„ ์ฐธ์กฐํ•˜์„ธ์š”.
  • Cloud Run ์„œ๋น„์Šค ๋ฐ ์ž‘์—…์€ VPC ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๋ฐœ์‹  ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๊ทธ๋ ˆ์Šค ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.
  • Cloud Run ์„œ๋น„์Šค๋Š” ๋‚ด๋ถ€ ์†Œ์Šค์˜ ํŠธ๋ž˜ํ”ฝ๋งŒ ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ธ๊ทธ๋ ˆ์Šค ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”. ์ธ๊ทธ๋ ˆ์Šค๋ฅผ '๋ชจ๋‘'๋กœ ์„ค์ •ํ•˜๋ฉด VPC ์„œ๋น„์Šค ์ œ์–ด ์‹œํ–‰์ด ์‚ฌ์šฉ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด ์„œ๋น„์Šค์˜ VPC ์„œ๋น„์Šค ์ œ์–ด ๊ทœ์ • ์ค€์ˆ˜ ์—ฌ๋ถ€ ๊ฐ์‚ฌ

VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์„ค์ •ํ•œ ํ›„ ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ๋‚ด๋ถ€์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์ƒˆ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๋ฉด ํ•ด๋‹น ์„œ๋น„์Šค์˜ ๊ทœ์ • ์ค€์ˆ˜ ์—ฌ๋ถ€๊ฐ€ ์ž๋™์œผ๋กœ ๊ฒ€์‚ฌ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ์กด ์›Œํฌ๋กœ๋“œ์˜ ์ค‘๋‹จ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด ์„œ๋น„์Šค๋Š” ๊ณ„์† ์ž‘๋™ํ•˜๋ฉฐ ์กฐ์ง ์ •์ฑ…์„ ์ค€์ˆ˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ๊ฐ์‚ฌํ•˜์—ฌ ์ธ๊ทธ๋ ˆ์Šค ๋ฐ ์ด๊ทธ๋ ˆ์Šค ์„ค์ •์ด ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ์„œ๋น„์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ์žฌ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Cloud Run Admin API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ๋‚˜์—ดํ•˜๊ณ  ์ ์ ˆํ•œ ๋„คํŠธ์›Œํฌ ์„ค์ •์ด ์ง€์ •๋˜์ง€ ์•Š์€ ์„œ๋น„์Šค๋ฅผ ๊ฐ•์กฐํ‘œ์‹œํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.