๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ… ๊ตฌ์„ฑ

์ด ํŽ˜์ด์ง€์—๋Š” ์กฐ์ง, ํด๋” ๋˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์ „์— ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ… ๊ฐœ์š”์˜ ์ •๋ณด๋ฅผ ์ˆ™์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์˜ IAM ๊ถŒํ•œ ์„ค์ •

๋‹ค์Œ ์ž‘์—…์—๋Š” ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค ๊ณ„์ธต ๊ตฌ์กฐ ๋…ธ๋“œ ๋˜๋Š” ์ •์ฑ… ์ž์ฒด(์ด๋ฏธ ์žˆ๋Š” ๊ฒฝ์šฐ)์— ๋Œ€ํ•œ Identity and Access Management(IAM) ์—ญํ• ์ธ Compute ์กฐ์ง ๋ณด์•ˆ ์ •์ฑ… ๊ด€๋ฆฌ์ž ์—ญํ• (roles/compute.orgSecurityPolicyAdmin)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ์ƒˆ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ… ๋งŒ๋“ค๊ธฐ
  • ๊ทœ์น™์„ ์ถ”๊ฐ€, ์—…๋ฐ์ดํŠธ ๋˜๋Š” ์‚ญ์ œํ•˜์—ฌ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ… ์ˆ˜์ •
  • ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ… ์‚ญ์ œ

๋‹ค์Œ ์ž‘์—…์—๋Š” ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค ๊ณ„์ธต ๊ตฌ์กฐ ๋…ธ๋“œ์— ๋Œ€ํ•œ IAM Compute ์กฐ์ง ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์ž ์—ญํ• (roles/compute.orgSecurityResourceAdmin)๊ณผ ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค ๊ณ„์ธต ๊ตฌ์กฐ ๋…ธ๋“œ ๋˜๋Š” ์ •์ฑ… ์ž์ฒด์— ๋Œ€ํ•œ Compute ์กฐ์ง ๋ณด์•ˆ ์ •์ฑ… ๊ด€๋ฆฌ์ž ์—ญํ• (roles/compute.orgSecurityPolicyAdmin) ๋˜๋Š” Compute ์กฐ์ง ๋ณด์•ˆ ์ •์ฑ… ์‚ฌ์šฉ์ž ์—ญํ• (roles/compute.orgSecurityPolicyUser)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ๋ฆฌ์†Œ์Šค ๊ณ„์ธต ๊ตฌ์กฐ ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ

๋งˆ์ง€๋ง‰์œผ๋กœ, ๋‹ค์Œ ํ‘œ์—์„œ ๋‚˜์—ด๋œ ์—ญํ• ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํƒ€ ์ž‘์—… ๋ชฉ๋ก์„ ํ™•์ธํ•˜์„ธ์š”.

์ž‘์—… ์—ญํ• 
๋ฐฑ์—”๋“œ ๋ฆฌ์†Œ์Šค์˜ ๋ชจ๋“  ์œ ํšจํ•œ Google Cloud Armor ๊ทœ์น™ ๋ณด๊ธฐ
organizationSecurityPolicy์— ํฌํ•จ๋œ ํšจ๊ณผ์ ์ธ ๋ฐฑ์—”๋“œ ๋ฆฌ์†Œ์Šค ๋ณด๊ธฐ

๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ… ๊ตฌ์„ฑ

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ๋งŒ๋“ค๊ณ , ๋ฆฌ์†Œ์Šค ๊ณ„์ธต ๊ตฌ์กฐ ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐํ•˜๊ณ , ๋…ธ๋“œ ๊ฐ„์— ์ด๋™ํ•˜๊ณ , ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ์ ์šฉ๋˜๋Š” ๋ชจ๋“  Google Cloud Armor ๋ณด์•ˆ ์ •์ฑ… ๊ทœ์น™์„ ๋ณด๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ… ๋งŒ๋“ค๊ธฐ

gcloud beta compute org-security-policies create ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. --organization ๋˜๋Š” --folder ํ”Œ๋ž˜๊ทธ์™€ ํ•ด๋‹น ORGANIZATION_ID ๋˜๋Š” FOLDER_ID๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ง ๋˜๋Š” ํด๋” ์•„๋ž˜์— ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ POLICY_NAME์€ ์ƒˆ ๋ณด์•ˆ ์ •์ฑ…์— ์ง€์ •ํ•  ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • ์กฐ์ง ์ˆ˜์ค€ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud beta compute org-security-policies create \
        --organization=ORGANIZATION_ID \
        --type=CLOUD_ARMOR \
        --short-name=POLICY_NAME
    
  • ํด๋” ์ˆ˜์ค€ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud beta compute org-security-policies create \ 
        --folder=FOLDER_ID \
        --type=CLOUD_ARMOR \
        --short-name=POLICY_NAME
    

๊ธฐ์กด ๋ณด์•ˆ ์ •์ฑ…์„ ๋ฆฌ์†Œ์Šค ๊ณ„์ธต ๊ตฌ์กฐ ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ

๊ธฐ์กด ๋ณด์•ˆ ์ •์ฑ…์ด ์žˆ๋Š” ๊ฒฝ์šฐ gcloud beta compute org-security-policies associations create ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ๊ณ„์ธต ๊ตฌ์กฐ ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • POLICY_ID: ๋ณด์•ˆ ์ •์ฑ…์˜ ID
  • POLICY_NAME: ๋ณด์•ˆ ์ •์ฑ…์˜ ์ด๋ฆ„
  • ORGANIZATION_ID: ์กฐ์ง์˜ ID
  • FOLDER_ID: ํด๋”์˜ ID
  • PROJECT_ID: ํ”„๋กœ์ ํŠธ ID

  • ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ์กฐ์ง์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    gcloud beta compute org-security-policies associations create \
        --security-policy=POLICY_ID \
        --organization=ORGANIZATION_ID \
        --name=ASSOCIATION_NAME
    
  • ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ํด๋”์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    gcloud beta compute org-security-policies associations create \
        --security-policy=POLICY_ID \
        --folder=FOLDER_ID \
        --name=ASSOCIATION_NAME
    
  • ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ํ”„๋กœ์ ํŠธ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    gcloud beta compute org-security-policies associations create \
      --security-policy=POLICY_ID \
      --project-number=PROJECT_ID \
      --name=ASSOCIATION_NAME
    

๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์—์„œ ํ”„๋กœ์ ํŠธ ์ œ์™ธ

๋˜ํ•œ ํด๋” ์ˆ˜์ค€ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์กฐ์ง ์ˆ˜์ค€ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์—์„œ ํ”„๋กœ์ ํŠธ์™€ ํด๋”๋ฅผ ๋ชจ๋‘ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • beta compute org-security-policies associations create ๋ช…๋ น์–ด์™€ --excluded-projects ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋‹ค์Œ ์˜ˆ์‹œ ๋ช…๋ น์–ด๋Š” ID๊ฐ€ 2000000002์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ œ์™ธํ•˜๋ฉด์„œ ๋ณด์•ˆ ์ •์ฑ… example-policy๋ฅผ ์กฐ์ง 10000001์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    gcloud beta compute org-security-policies associations create \
        --security-policy=example-policy \
        --excluded-projects="projects/2000000002" \
        --organization=10000001
    
  • --excluded-folders ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ beta compute org-security-policies associations create ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ง ์ˆ˜์ค€ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์—์„œ ํด๋”๋ฅผ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋‹ค์Œ ์˜ˆ์‹œ ๋ช…๋ น์–ด๋Š” ID๊ฐ€ 3000000003์ธ ํด๋”๋ฅผ ์ œ์™ธํ•˜๋ฉด์„œ ๋ณด์•ˆ ์ •์ฑ… example-policy๋ฅผ ์กฐ์ง 10000001์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    gcloud beta compute org-security-policies associations create \
        --security-policy=example-policy \
        --excluded-folders="folders/3000000003" \
        --organization=10000001
    

๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ… ์ด๋™

gcloud beta compute org-security-policies move๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ๋‹ค๋ฅธ ์ƒ์œ„ ๋ฆฌ์†Œ์Šค ๊ณ„์ธต ๊ตฌ์กฐ ๋…ธ๋“œ๋กœ ์ด๋™ํ•˜์—ฌ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์˜ ์ƒ์œ„๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ํ”Œ๋ž˜๊ทธ๋กœ ์†Œ์Šค๋ฅผ, ๋‘ ๋ฒˆ์งธ ํ”Œ๋ž˜๊ทธ๋กœ ๋Œ€์ƒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ์ด๋™ํ•˜๋ฉด ์†Œ์œ ๊ถŒ์ด ๋ณ€๊ฒฝ๋˜์ง€๋งŒ ์—ฐ๊ฒฐ๋œ ๋ฆฌ์†Œ์Šค๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์กฐ์ง๊ณผ ํด๋”๋งŒ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ์†Œ์œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ”„๋กœ์ ํŠธ ์•„๋ž˜๋กœ ์ด๋™ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์—์„œ๋Š” ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ์กฐ์ง ORGANIZATION_ID์—์„œ ํด๋” FOLDER_ID๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

gcloud beta compute org-security-policies move policy-1 \
    --organization ORGANIZATION_ID \
    --folder FOLDER_ID

๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ… ์‚ญ์ œ

๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋จผ์ € ์ •์ฑ…๊ณผ ๋ฆฌ์†Œ์Šค ๊ณ„์ธต ๊ตฌ์กฐ ๋…ธ๋“œ ๊ฐ„์˜ ๋ชจ๋“  ์—ฐ๊ฒฐ์„ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์—์„œ๋Š” beta compute org-security-policies associations delete ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ POLICY_NAME์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…๊ณผ ORGANIZATION_ID ์กฐ์ง ๊ฐ„์˜ ASSOCIATION_NAME์ด๋ผ๋Š” ์—ฐ๊ฒฐ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

gcloud beta compute org-security-policies associations delete ASSOCIATION_NAME \
    --security-policy=POLICY_NAME \
    --organization=ORGANIZATION_ID

๋ณด์•ˆ ์ •์ฑ…์— ์—ฐ๊ฒฐ๋œ ํ•ญ๋ชฉ์ด ํ•˜๋‚˜๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๊ฐ ์—ฐ๊ฒฐ์— ๋Œ€ํ•ด ์ด์ „ ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์— ์—ฐ๊ฒฐ์ด ์—†์œผ๋ฉด ๋‹ค์Œ ์˜ˆ์™€ ๊ฐ™์ด compute org-security-policies delete ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gcloud beta compute org-security-policies delete POLICY_NAME \
    --organization=ORGANIZATION_ID

๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์˜ ๋ชจ๋“  ์œ ํšจํ•œ Google Cloud Armor ๊ทœ์น™ ๋ณด๊ธฐ

gcloud beta compute backend-services get-effective-security-policies ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ์ ์šฉ๋˜๋Š” ๋ชจ๋“  Google Cloud Armor ๋ณด์•ˆ ์ •์ฑ… ๊ทœ์น™์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ์—์„œ RESOURCE_NAME์„ ํ™•์ธํ•  ๋ณดํ˜ธ ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

gcloud beta compute backend-services get-effective-security-policies PROTECTED_RESOURCE

์‚ฌ์šฉ ์‚ฌ๋ก€

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์กฐ์ง์˜ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์— ๋Œ€ํ•œ ํŠน์ • IP ์ฃผ์†Œ์˜ ํŠธ๋ž˜ํ”ฝ ๊ฑฐ๋ถ€

๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒด ์กฐ์ง ๋„คํŠธ์›Œํฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋Š” IP ์ฃผ์†Œ ๋ชฉ๋ก์„ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์ง€์—ญ ๋˜๋Š” ๊ตญ๊ฐ€์˜ ํŠธ๋ž˜ํ”ฝ์„ ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํšŒ์‚ฌ๋ณ„ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜ ๊ทœ์ • ์ค€์ˆ˜๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” IP ์ฃผ์†Œ ๋ฒ”์œ„ 192.0.2.0/24์˜ ํŠธ๋ž˜ํ”ฝ์„ ๊ฑฐ๋ถ€ํ•˜๋Š” ์กฐ์ง ์ˆ˜์ค€ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

  1. ID๊ฐ€ 1000000001์ธ ์กฐ์ง์— ์—ฐ๊ฒฐ๋œ org-level-deny-ip-policy๋ผ๋Š” ๊ณ„์ธต์‹ ๋ณด์•ˆ ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

     gcloud beta compute org-security-policies create \
         --organization=1000000001 \
         --type=CLOUD_ARMOR \
         --description= "this is an org policy to deny a set of IP addresses for all resources" \
         --short-name=org-level-deny-ip-policy
    
  2. IP ์ฃผ์†Œ ๋ฒ”์œ„ 192.0.2.0/24์˜ ์ผ์น˜ ์กฐ๊ฑด๊ณผ deny ์ž‘์—…์ด ์žˆ๋Š” ์šฐ์„ ์ˆœ์œ„ 1000์˜ ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

     gcloud beta compute org-security-policies rules create 1000 \
         --action=deny \
         --security-policy=org-level-deny-ip-policy \
         --organization=1000000001 \
         --description "Deny traffic from 192.0.2.0/24" \
         --src-ip-ranges "192.0.2.0/24"
    
  3. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ณด์•ˆ ์ •์ฑ…์„ ์กฐ์ง๊ณผ ์—ฐ๊ฒฐํ•˜์—ฌ 192.0.2.0/24 IP ์ฃผ์†Œ์—์„œ ์กฐ์ง์˜ ๋ชจ๋“  ์„œ๋น„์Šค๋กœ์˜ ์š”์ฒญ์„ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.

     gcloud beta compute org-security-policies associations create \
         --security-policy=org-level-deny-ip-policy \
         --organization=ORGANIZATION_ID
    

์กฐ์ง ๋‚ด ์ผ๋ถ€ ํ”„๋กœ์ ํŠธ์— ์†Œ์Šค IP ์ฃผ์†Œ ์ง‘ํ•ฉ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ ๋ถ€์—ฌ

์กฐ์ง ๋‚ด ์ผ๋ถ€ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ IP ์ฃผ์†Œ ๋˜๋Š” ์—ฌ๋Ÿฌ IP ์ฃผ์†Œ์— ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์—…์ŠคํŠธ๋ฆผ ํ”„๋ก์‹œ๊ฐ€ ์žˆ๊ณ  ์ด๋ฅผ ์ผ๋ถ€ ํ”„๋กœ์ ํŠธ์—์„œ๋งŒ ๊ทœ์น™ ํ‰๊ฐ€์—์„œ ์ œ์™ธํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ Cloud CDN ๊ธฐ๋ฐ˜ ์˜ˆ์—์„œ๋Š” ํด๋” ์ˆ˜์ค€ ๊ณ„์ธต์  ๋ณด์•ˆ ์ •์ฑ…์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ง 10000001์˜ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์ด project-1, project-2, project-3์ธ ํ”„๋กœ์ ํŠธ์— IP ์ฃผ์†Œ ๋ฒ”์œ„ 192.0.2.0/24 ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

  1. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ project-1, project-2, project-3์„ ID๊ฐ€ 20000002์ธ ํด๋”๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    gcloud projects move project-1 --folder=20000002
    gcloud projects move project-2 --folder=20000002
    gcloud projects move project-3 --folder=20000002
    
  2. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ org-level-proxy-filtering์ด๋ผ๋Š” ๋ณด์•ˆ ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

     gcloud beta compute org-security-policies create \
         --folder=20000002 \
         --type=CLOUD_ARMOR \
         --short-name=org-level-proxy-filtering
    
  3. IP ์ฃผ์†Œ ๋ฒ”์œ„ 192.0.2.0/24์˜ ์ผ์น˜ ์กฐ๊ฑด๊ณผ goto_next ๊ทœ์น™ ์ž‘์—…์ด ์žˆ๋Š” ์šฐ์„ ์ˆœ์œ„ 1000์˜ ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์ด ์ด ์กฐ๊ฑด๊ณผ ์ผ์น˜ํ•˜๋ฉด Google Cloud Armor๋Š” ์ด ๋ณด์•ˆ ์ •์ฑ… ๋‚ด์—์„œ ๊ทœ์น™ ํ‰๊ฐ€๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

     gcloud beta compute org-security-policies rules create 1000 \
         --action=goto_next \
         --security-policy=org-level-proxy-filtering \
         --organization=10000001 \
         --src-ip-ranges="192.0.2.0/24"
    
  4. ์„ ํƒ์‚ฌํ•ญ: 192.0.2.0/24์—์„œ ๋ฐœ์ƒํ•˜์ง€ ์•Š์€ ์š”์ฒญ์— ๋Œ€ํ•ด ์ด๋Ÿฌํ•œ ํ”„๋กœ์ ํŠธ์— ๋ณด์•ˆ ์ •์ฑ… ๊ทœ์น™์„ ์ ์šฉํ•˜๋ ค๋ฉด 1000๋ณด๋‹ค ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋กœ ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„๋Š” ๋‚˜์ค‘์— ์‹คํ–‰ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.

  5. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 1๋‹จ๊ณ„์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ด๋™ํ•œ ID 20000002์˜ ํด๋”์— ์ •์ฑ…์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

     gcloud beta compute org-security-policies associations create \
         --security-policy=org-level-proxy-filtering \
         --folder=20000002
    

๋‹ค์Œ ๋‹จ๊ณ„