์„œ๋น„์Šค ๊ฒฝ๊ณ„ ๊ด€๋ฆฌ

์ด ํŽ˜์ด์ง€์—์„œ๋Š” VPC ์„œ๋น„์Šค ์ œ์–ด์—์„œ ์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด ํŽ˜์ด์ง€์—๋Š” ๋‹ค์Œ ์„น์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

์„œ๋น„์Šค ๊ฒฝ๊ณ„ ๋‚˜์—ด ๋ฐ ์„ค๋ช…

์กฐ์ง์˜ ๋ชจ๋“  ์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†” ํƒ์ƒ‰ ๋ฉ”๋‰ด์—์„œ ๋ณด์•ˆ์„ ํด๋ฆญํ•œ ๋‹ค์Œ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

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

  2. VPC ์„œ๋น„์Šค ์ œ์–ด ํŽ˜์ด์ง€์˜ ํ‘œ์—์„œ ๋ณด๋ ค๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

์กฐ์ง์˜ ์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ๋‚˜์—ดํ•˜๋ ค๋ฉด list ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters list

์กฐ์ง์˜ ๊ฒฝ๊ณ„ ๋ชฉ๋ก์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

NAME           TITLE                 ETAG
ProdPerimeter  Production Perimeter  abcdefg123456789

์„œ๋น„์Šค ๊ฒฝ๊ณ„์— ๋Œ€ํ•œ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด describe ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters \
  describe PERIMETER_ID

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

  • PERIMETER_ID๋Š” ์„ธ๋ถ€์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ ์ž ํ•˜๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ID์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ„์— ๋Œ€ํ•œ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

etag: abcdefg123456789
name: accessPolicies/626111171578/servicePerimeters/ProdPerimeter
status:
  accessLevels:
  - accessPolicies/626111171578/accessLevels/corpAccess
  resources:
  - projects/111584792408
  restrictedServices:
  - bigquery.googleapis.com
  - storage.googleapis.com
title: Production Perimeter

์„œ๋น„์Šค ๊ฒฝ๊ณ„ ๋‚˜์—ด(ํ˜•์‹ ์ง€์ •)

gcloud ๋ช…๋ น์ค„ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ YAML ๋˜๋Š” JSON ํ˜•์‹์œผ๋กœ ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜•์‹์ด ์ง€์ •๋œ ๊ฒฝ๊ณ„ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด list ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters list \
  --format=FORMAT

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

  • FORMAT๋Š” ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

    • list(YAML ํ˜•์‹)

    • json(JSON ํ˜•์‹)

๋‹ค์Œ ์ถœ๋ ฅ์€ YAML ํ˜•์‹์˜ ์˜ˆ์‹œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

- etag: abcdefg123456789
  name: accessPolicies/165717541651/servicePerimeters/On_Prem
  status: {'resources': ['projects/167410821371'], 'restrictedServices': ['bigquery.googleapis.com', 'storage.googleapis.com']}
  title: On Prem
- etag: hijklmn987654321
  name: accessPolicies/165717541651/servicePerimeters/Private
  spec: {'resources': ['projects/136109111311'], 'restrictedServices': ['bigquery.googleapis.com', 'storage.googleapis.com', 'logging.googleapis.com']}
  status: {'resources': ['projects/136109111311', 'projects/401921913171'], 'restrictedServices': ['bigquery.googleapis.com']}
  title: Private
  useExplicitDryRunSpec: True
- etag: pqrstuv123456789
  name: accessPolicies/165717541651/servicePerimeters/OnpremBridge
  perimeterType: PERIMETER_TYPE_BRIDGE
  status: {'resources': ['projects/167410821371']}
  title: OnpremBridge

๋‹ค์Œ ์ถœ๋ ฅ์€ JSON ํ˜•์‹์˜ ์˜ˆ์‹œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

[
  {
    "etag": "abcdefg123456789",
    "name": "accessPolicies/165717541651/servicePerimeters/On_Prem",
    "status": {
      "resources": [
        "projects/167410821371"
      ],
      "restrictedServices": [
        "bigquery.googleapis.com",
        "storage.googleapis.com"
      ]
    },
    "title": "On Prem"
  },
  {
    "etag": "hijklmn987654321",
    "name": "accessPolicies/165717541651/servicePerimeters/Private",
    "spec": {
      "resources": [
        "projects/136109111311"
      ],
      "restrictedServices": [
        "bigquery.googleapis.com",
        "storage.googleapis.com",
        "logging.googleapis.com"
      ]
    },
    "status": {
      "resources": [
        "projects/136109111311",
        "projects/401921913171"
      ],
      "restrictedServices": [
        "bigquery.googleapis.com"
      ]
    },
    "title": "Private",
    "useExplicitDryRunSpec": true
  },
  {
    "etag": "pqrstuv123456789",
    "name": "accessPolicies/165717541651/servicePerimeters/OnpremBridge",
    "perimeterType": "PERIMETER_TYPE_BRIDGE",
    "status": {
      "resources": [
        "projects/167410821371"
      ]
    },
    "title": "OnpremBridge"
  }
]

์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์—…๋ฐ์ดํŠธ

์ด ์„น์…˜์—์„œ๋Š” ๊ฐœ๋ณ„ ์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ์˜ ์ž‘์—…์œผ๋กœ ์กฐ์ง์˜ ๋ชจ๋“  ์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์ผ๊ด„ ๋ณ€๊ฒฝ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ํƒœ์Šคํฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ „ํŒŒ๋˜๊ณ  ์ ์šฉ๋˜๋ ค๋ฉด ์ตœ๋Œ€ 30๋ถ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ๊ฐ„ ๋™์•ˆ ๊ฒฝ๊ณ„์—์„œ Error 403: Request is prohibited by organization's policy. ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์š”์ฒญ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†” ํƒ์ƒ‰ ๋ฉ”๋‰ด์—์„œ ๋ณด์•ˆ์„ ํด๋ฆญํ•œ ๋‹ค์Œ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

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

  2. VPC ์„œ๋น„์Šค ์ œ์–ด ํŽ˜์ด์ง€์˜ ํ‘œ์—์„œ ์ˆ˜์ •ํ•˜๋ ค๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์ˆ˜์ • ํŽ˜์ด์ง€์—์„œ ์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

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

gcloud

์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒฝ๊ณ„์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด update ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๊ฐ€ํ•  ๋ฆฌ์†Œ์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters update PERIMETER_ID \
  --add-resources=RESOURCES

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

  • PERIMETER_ID๋Š” ์„ธ๋ถ€์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ ์ž ํ•˜๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ID์ž…๋‹ˆ๋‹ค.

  • RESOURCES๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํ”„๋กœ์ ํŠธ ๋ฒˆํ˜ธ ๋˜๋Š” VPC ๋„คํŠธ์›Œํฌ ์ด๋ฆ„์˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด projects/12345 ๋˜๋Š” //compute.googleapis.com/projects/my-project/global/networks/vpc1์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋ฐ VPC ๋„คํŠธ์›Œํฌ๋งŒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ํ˜•์‹: projects/project_number. VPC ํ˜•์‹: //compute.googleapis.com/projects/project-id/global/networks/network_name.

์ œํ•œ๋œ ์„œ๋น„์Šค ๋ชฉ๋ก์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด update ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์œผ๋กœ ์ถ”๊ฐ€ํ•  ์„œ๋น„์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters update PERIMETER_ID \
  --add-restricted-services=SERVICES

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

  • PERIMETER_ID๋Š” ์„ธ๋ถ€์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ ์ž ํ•˜๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ID์ž…๋‹ˆ๋‹ค.

  • SERVICES๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์„œ๋น„์Šค ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด storage.googleapis.com ๋˜๋Š” storage.googleapis.com,bigquery.googleapis.com์ž…๋‹ˆ๋‹ค.

๊ธฐ์กด ๊ฒฝ๊ณ„์— ์•ก์„ธ์Šค ์ˆ˜์ค€ ์ถ”๊ฐ€

์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์ƒ์„ฑํ–ˆ์œผ๋ฉด ์„œ๋น„์Šค ๊ฒฝ๊ณ„์— ์ ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ „ํŒŒ๋˜๊ณ  ์ ์šฉ๋˜๋ ค๋ฉด ์ตœ๋Œ€ 30๋ถ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ๊ฐ„ ๋™์•ˆ ๊ฒฝ๊ณ„์—์„œ Error 403: Request is prohibited by organization's policy. ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์š”์ฒญ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†” ํƒ์ƒ‰ ๋ฉ”๋‰ด์—์„œ ๋ณด์•ˆ์„ ํด๋ฆญํ•œ ๋‹ค์Œ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

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

  2. VPC ์„œ๋น„์Šค ์ œ์–ด ํŽ˜์ด์ง€์˜ ํ‘œ์—์„œ ์ˆ˜์ •ํ•˜๋ ค๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์ˆ˜์ • ํŽ˜์ด์ง€์—์„œ ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ์•ก์„ธ์Šค ์ˆ˜์ค€ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. ์•ก์„ธ์Šค ์ˆ˜์ค€ ์ถ”๊ฐ€ ์ฐฝ์—์„œ ์„œ๋น„์Šค ๊ฒฝ๊ณ„์— ์ ์šฉํ•  ์•ก์„ธ์Šค ์ˆ˜์ค€์— ํ•ด๋‹นํ•˜๋Š” ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

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

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

gcloud

์•ก์„ธ์Šค ์ˆ˜์ค€์„ ๊ธฐ์กด ์„œ๋น„์Šค ๊ฒฝ๊ณ„์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด update ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters update PERIMETER_ID \
  --add-access-levels=LEVEL_NAME

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

  • PERIMETER_ID๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ID์ž…๋‹ˆ๋‹ค.

  • LEVEL_NAME์€ ๊ฒฝ๊ณ„์— ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ์•ก์„ธ์Šค ์ˆ˜์ค€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ„์—์„œ ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฒฝ๊ณ„ ์™ธ๋ถ€์—์„œ ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํ—ˆ์šฉ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์‚ญ์ œ

์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๊ฒฝ๊ณ„์™€ ๊ด€๋ จ๋œ ๋ณด์•ˆ ์ œ์–ด๊ฐ€ ๋” ์ด์ƒ ๊ด€๋ จ Google Cloudํ”„๋กœ์ ํŠธ์— ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉค๋ฒ„ Google Cloud ํ”„๋กœ์ ํŠธ ๋˜๋Š” ๊ด€๋ จ ๋ฆฌ์†Œ์Šค๋Š” ์ด์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†” ํƒ์ƒ‰ ๋ฉ”๋‰ด์—์„œ ๋ณด์•ˆ์„ ํด๋ฆญํ•œ ๋‹ค์Œ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

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

  2. VPC ์„œ๋น„์Šค ์ œ์–ด ํŽ˜์ด์ง€์—์„œ ์‚ญ์ œํ•  ๊ฒฝ๊ณ„์— ํ•ด๋‹นํ•˜๋Š” ํ…Œ์ด๋ธ” ํ–‰์—์„œ ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด delete ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

gcloud access-context-manager perimeters delete PERIMETER_ID

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

  • PERIMETER_ID๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ID์ž…๋‹ˆ๋‹ค.

VPC ์•ก์„ธ์Šค ์„œ๋น„์Šค๋กœ ๊ฒฝ๊ณ„ ๋‚ด๋ถ€์˜ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ œํ•œ

์ด ์„น์…˜์—์„œ๋Š” VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •, ์ถ”๊ฐ€, ์‚ญ์ œ, ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

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

VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค ์‚ฌ์šฉ ์„ค์ •

์„œ๋น„์Šค ๊ฒฝ๊ณ„์— VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด update ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters update PERIMETER_ID \
  --enable-vpc-accessible-services \
  --add-vpc-allowed-services=SERVICES

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

  • PERIMETER_ID๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ID์ž…๋‹ˆ๋‹ค.

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

    ๊ฒฝ๊ณ„๋กœ ๋ณดํ˜ธ๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ํฌํ•จํ•˜๋ ค๋ฉด SERVICES์˜ ๋ชฉ๋ก์— RESTRICTED-SERVICES๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. RESTRICTED-SERVICES ์™ธ์— ๋‹ค๋ฅธ ์„œ๋น„์Šค๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒฝ๊ณ„ ๋‚ด๋ถ€์˜ VPC ๋„คํŠธ์›Œํฌ๊ฐ€ Logging ๋ฐ Cloud Storage ์„œ๋น„์Šค์—๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters update example_perimeter \
  --enable-vpc-accessible-services \
  --add-vpc-allowed-services=RESTRICTED-SERVICES,logging.googleapis.com,storage.googleapis.com \
  --policy=11271009391

VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค์— ์„œ๋น„์Šค ์ถ”๊ฐ€

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

gcloud access-context-manager perimeters update PERIMETER_ID \
  --add-vpc-allowed-services=SERVICES

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

  • PERIMETER_ID๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ID์ž…๋‹ˆ๋‹ค.

  • SERVICES๋Š” ๊ฒฝ๊ณ„ ๋‚ด์˜ ๋„คํŠธ์›Œํฌ์— ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋ ค๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์„œ๋น„์Šค๊ฐ€ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

    ๊ฒฝ๊ณ„๋กœ ๋ณดํ˜ธ๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ํฌํ•จํ•˜๋ ค๋ฉด SERVICES์˜ ๋ชฉ๋ก์— RESTRICTED-SERVICES๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. RESTRICTED-SERVICES ์™ธ์— ๊ฐœ๋ณ„ ์„œ๋น„์Šค๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๊ณ  ๊ฒฝ๊ณ„ ๋‚ด์˜ VPC ๋„คํŠธ์›Œํฌ๊ฐ€ Pub/Sub ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters update example_perimeter \
  --add-vpc-allowed-services=RESTRICTED-SERVICES,pubsub.googleapis.com \
  --policy=11271009391

VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค์—์„œ ์„œ๋น„์Šค ์‚ญ์ œ

์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค์—์„œ ์„œ๋น„์Šค๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด update ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters update PERIMETER_ID \
  --remove-vpc-allowed-services=SERVICES

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

  • PERIMETER_ID๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ID์ž…๋‹ˆ๋‹ค.

  • SERVICES๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ๋‚ด์˜ ๋„คํŠธ์›Œํฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค ๋ชฉ๋ก์—์„œ ์ œ๊ฑฐํ•  ํ•˜๋‚˜ ์ด์ƒ์˜ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ–ˆ๊ณ  ๋” ์ด์ƒ ๊ฒฝ๊ณ„ ๋‚ด์˜ VPC ๋„คํŠธ์›Œํฌ๊ฐ€ Cloud Storage ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters update example_perimeter \
  --remove-vpc-allowed-services=storage.googleapis.com \
  --policy=11271009391

VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค ์‚ฌ์šฉ ์ค‘์ง€

์„œ๋น„์Šค ๊ฒฝ๊ณ„์— ๋Œ€ํ•œ VPC ์„œ๋น„์Šค ์ œํ•œ์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋ฉด update ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters update PERIMETER_ID \
  --no-enable-vpc-accessible-services \
  --clear-vpc-allowed-services

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

  • PERIMETER_ID๋Š” ์„œ๋น„์Šค ๊ฒฝ๊ณ„์˜ ID์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด example_perimeter์— ๋Œ€ํ•œ VPC ์„œ๋น„์Šค ์ œํ•œ์„ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud access-context-manager perimeters update example_perimeter \
  --no-enable-vpc-accessible-services \
  --clear-vpc-allowed-services \
  --policy=11271009391

VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค ๋ฐ Access Context Manager API

Access Context Manager API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ๋•Œ ์‘๋‹ต ๋ณธ๋ฌธ์—์„œ ServicePerimeterConfig ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VPC ์•ก์„ธ์Šค ๊ฐ€๋Šฅ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.