ํ‚ค ๋ฒ„์ „ ํ๊ธฐ ์ œ์–ด

Google Cloud์—์„œ๋Š” ์กฐ์ง ์ „์ฒด์—์„œ ํ‚ค ๋ฒ„์ „ ํ๊ธฐ ์ •์ฑ…์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐ€์ง€ ์กฐ์ง ์ •์ฑ… ์ œ์•ฝ์กฐ๊ฑด์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • constraints/cloudkms.minimumDestroyScheduledDuration์€ ์กฐ์ง ๋‚ด ์ƒˆ ํ‚ค์˜ ํ๊ธฐ ์˜ˆ์•ฝ ๊ธฐ๊ฐ„์— ๋Œ€ํ•œ ์ตœ์†Œ ๊ธธ์ด๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • constraints/cloudkms.disableBeforeDestroy๋Š” ํ‚ค ๋ฒ„์ „ ํ๊ธฐ๋ฅผ ์˜ˆ์•ฝํ•˜๊ธฐ ์ „์— ๋จผ์ € ํ‚ค ๋ฒ„์ „์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋„๋ก ์š”๊ตฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

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

์ด ํŽ˜์ด์ง€์˜ ์•ˆ๋‚ด์—์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ œ์•ฝ์กฐ๊ฑด ์‚ฌ์šฉ์— ์ต์ˆ™ํ•˜๋ฉฐ ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค์™€ ์—ญํ• ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค

์ด ํŽ˜์ด์ง€์˜ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์กฐ์ง
  • ์„ ํƒ์‚ฌํ•ญ: ์กฐ์ง ๋‚ด ํด๋” ๋˜๋Š” ํ”„๋กœ์ ํŠธ ๋ฆฌ์†Œ์Šค

ํ•„์š”ํ•œ ์—ญํ• 

์กฐ์ง ์ •์ฑ…์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์–ป์œผ๋ ค๋ฉด ๊ด€๋ฆฌ์ž์—๊ฒŒ ์กฐ์ง์˜ ์กฐ์ง ์ •์ฑ… ๊ด€๋ฆฌ์ž(roles/orgpolicy.policyAdmin) IAM ์—ญํ• ์„ ์š”์ฒญํ•˜์„ธ์š”. ์—ญํ•  ๋ถ€์—ฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ”„๋กœ์ ํŠธ, ํด๋”, ์กฐ์ง์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

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

ํ•„์ˆ˜ ๊ถŒํ•œ

์กฐ์ง ์ •์ฑ…์„ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด ๋‹ค์Œ ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set

์ปค์Šคํ…€ ์—ญํ• ์ด๋‚˜ ๋‹ค๋ฅธ ์‚ฌ์ „ ์ •์˜๋œ ์—ญํ• ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๊ถŒํ•œ์„ ๋ถ€์—ฌ๋ฐ›์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์†Œ ํ๊ธฐ ์˜ˆ์•ฝ ๊ธฐ๊ฐ„ ํ•„์š”

ํ‚ค๋‹น ์ตœ์†Œ ํ๊ธฐ ์˜ˆ์•ฝ ๊ธฐ๊ฐ„ ์ œ์•ฝ์กฐ๊ฑด(constraints/cloudkms.minimumDestroyScheduledDuration)์€ ์ƒˆ ํ‚ค์˜ ํ๊ธฐ ์˜ˆ์•ฝ ๊ธฐ๊ฐ„์— ๋Œ€ํ•œ ์ตœ์†Œ ๊ธธ์ด๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์ œ์•ฝ์กฐ๊ฑด์€ ํ”„๋กœ์ ํŠธ, ํด๋” ๋˜๋Š” ์กฐ์ง ์ˆ˜์ค€์—์„œ ์ตœ์†Œ ํ๊ธฐ ์˜ˆ์•ฝ ๊ธฐ๊ฐ„์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ œ์•ฝ์กฐ๊ฑด์€ ์—ฌ์ „ํžˆ ํ•„์š”ํ•œ ํ‚ค๋ฅผ ์‹ค์ˆ˜๋กœ ํ๊ธฐํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ž…๋‹ˆ๋‹ค. ์ด ์ œ์•ฝ์กฐ๊ฑด์„ ๋” ๋†’์€ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์ทจ์†Œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ด์ง€๊ธฐ ์ „์— ํ‚ค ํ๊ธฐ๋ฅผ ๋ฐฉ์ง€ํ•  ์‹œ๊ฐ„์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ณด๊ด€ ์š”๊ตฌ์‚ฌํ•ญ์ด ์ ์šฉ๋˜๋Š” ํ”„๋กœ๋•์…˜ ๋ฐ์ดํ„ฐ์™€ ๊ฐ™์ด ์›์น˜ ์•Š๋Š” ํ‚ค ํ๊ธฐ๊ฐ€ ๋” ์œ ํ•ดํ•  ๊ฒฝ์šฐ ์ด ์ œ์•ฝ์กฐ๊ฑด์— ๋” ๋†’์€ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ๋˜๋Š” ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ๊ณผ ๊ฐ™์ด ์›์น˜ ์•Š๋Š” ํ‚ค ํ๊ธฐ๊ฐ€ ๋œ ์œ ํ•ดํ•  ๊ฒฝ์šฐ ์ด ์ œ์•ฝ์กฐ๊ฑด์— ๋” ๋‚ฎ์€ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋” ๋‚ฎ์€ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์˜์ ์ ˆํ•œ ์•”ํ˜ธํ™” ํŒŒ์‡„๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์ œ์•ฝ์กฐ๊ฑด์€ ์ตœ์†Ÿ๊ฐ’์œผ๋กœ ํ๊ธฐ ์˜ˆ์•ฝ ๊ธฐ๊ฐ„์ด ์งง์€ ์ƒˆ๋กœ์šด ํ‚ค๊ฐ€ ์ƒ์„ฑ๋˜๊ฒŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ตœ์†Œ ํ๊ธฐ ์˜ˆ์•ฝ ๊ธฐ๊ฐ„์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. describe ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ง ๋ฆฌ์†Œ์Šค์˜ ํ˜„์žฌ ์ •์ฑ…์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ์ด ๋ฆฌ์†Œ์Šค์— ์ง์ ‘ ์ ์šฉ๋˜๋Š” ์ •์ฑ…์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    gcloud org-policies describe \
      constraints/cloudkms.minimumDestroyScheduledDuration \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID๋ฅผ ์กฐ์ง ๋ฆฌ์†Œ์Šค์˜ ๊ณ ์œ  ์‹๋ณ„์ž๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์กฐ์ง ID๋Š” ์‹ญ์ง„์ˆ˜ ํ˜•์‹์ด๋ฉฐ ์•ž์— 0์ด ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    --folder ๋˜๋Š” --project ํ”Œ๋ž˜๊ทธ์™€ ํด๋” ID ๋˜๋Š” ํ”„๋กœ์ ํŠธ ID๋ฅผ ๊ฐ๊ฐ ์‚ฌ์šฉํ•˜์—ฌ ํด๋” ๋˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ์กฐ์ง ์ •์ฑ…์„ ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ˜„์žฌ ์กฐ์ง ์ •์ฑ…์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์ •์ฑ…์ด ์‘๋‹ต์— ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
    spec:
      etag: COTP+KYGELiCmsoB
      inheritFromParent: true
      rules:
      - values:
          allowedValues:
          - in:7d
      updateTime: '2023-08-17T14:00:04.424051Z'
    

    ์ •์ฑ…์ด ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ describe ๋ช…๋ น์–ด๋Š” NOT_FOUND ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. set-policy ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ง์— ์ •์ฑ…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ํ˜„์žฌ ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐ๋œ ์ •์ฑ…์„ ๋ฎ์–ด์”๋‹ˆ๋‹ค.

    1. ์ •์ฑ…์„ ์ €์žฅํ•  /tmp/policy.yaml ์ž„์‹œ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

      name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
      spec:
        rules:
        - values:
            allowedValues:
            - in:MINIMUM_DURATION
      

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

      • ORGANIZATION_ID: ์กฐ์ง์˜ ์ˆซ์ž ID
      • MINIMUM_DURATION: ์ด ์กฐ์ง์˜ ํ‚ค์— ๋Œ€ํ•ด ํ๊ธฐ ์˜ˆ์•ฝ๋จ ์ƒํƒœ๋กœ ์œ ์ง€๋˜๋Š” ์ตœ์†Œ ๊ธฐ๊ฐ„(์ผ)์ž…๋‹ˆ๋‹ค. 7d, 15d, 30d, 60d, 90d, 120d ์ค‘ ํ•˜๋‚˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    2. set-policy ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. describe --effective๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ์˜ ์œ ํšจ ์ •์ฑ…์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ์ƒ์†์ด ํฌํ•จ๋œ ๋ฆฌ์†Œ์Šค ๊ณ„์ธต ๊ตฌ์กฐ์—์„œ ์ด ์‹œ์ ์— ํ‰๊ฐ€๋œ ๊ฒƒ์— ํ•ด๋‹นํ•˜๋Š” ์กฐ์ง ์ •์ฑ…์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    gcloud org-policies describe \
      constraints/cloudkms.minimumDestroyScheduledDuration --effective \
      --organization=ORGANIZATION_ID
    

    ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
    spec:
      rules:
        - values:
            allowedValues:
            - 30d
            - 15d
            - 90d
            - 60d
            - 7d
            - 120d
    

    ์ด ์กฐ์ง ์ •์ฑ…์€ ์กฐ์ง ์ˆ˜์ค€์—์„œ ์„ค์ •๋˜์—ˆ์œผ๋ฏ€๋กœ ์ƒ์†์„ ํ—ˆ์šฉํ•˜๋Š” ๋ชจ๋“  ํ•˜์œ„ ๋ฆฌ์†Œ์Šค์— ์ƒ์†๋ฉ๋‹ˆ๋‹ค.

ํ๊ธฐ ์ „ ํ‚ค ์‚ฌ์šฉ ์ค‘์ง€ ํ•„์š”

ํ‚ค ํ๊ธฐ ์‚ฌ์šฉ ์ค‘์ง€ ํ‚ค ์ œํ•œ ์ œ์•ฝ์กฐ๊ฑด(constraints/cloudkms.disableBeforeDestroy)์„ ์‚ฌ์šฉํ•˜๋ฉด ํ‚ค ํ๊ธฐ๋ฅผ ์˜ˆ์•ฝํ•˜๊ธฐ ์ „์— ํ‚ค๊ฐ€ ์‚ฌ์šฉ ์ค‘์ง€๋˜๋„๋ก ์š”๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‚ค๋ฅผ ํ๊ธฐํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋Š” ๊ฒƒ์€ ํ‚ค๊ฐ€ ์‚ฌ์šฉ ์ค‘์ด ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด ์ œ์•ฝ์กฐ๊ฑด์„ ์‹ ์ค‘ํ•œ Identity and Access Management ์ •์ฑ…๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์—ญํ• ์˜ ํ˜‘๋ ฅ์ด ํ•„์š”ํ•œ ๋‹ค๋‹จ๊ณ„ ํ๊ธฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ œ์•ฝ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋‹จ๊ณ„ ํ๊ธฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด cloudkms.cryptoKeyVersions.update ๊ถŒํ•œ๊ณผ cloudkms.cryptoKeyVersions.destroy ๊ถŒํ•œ์„ ๋ชจ๋‘ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๊ฐ€ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์‚ฌ์šฉ ์‚ฌ๋ก€์—๋Š” ์ปค์Šคํ…€ ์—ญํ• ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค ํ๊ธฐ๋ฅผ ์˜ˆ์•ฝํ•˜๊ธฐ ์ „์— ํ‚ค๊ฐ€ ์‚ฌ์šฉ ์ค‘์ง€ ์ƒํƒœ๊ฐ€ ๋˜๋„๋ก ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

gcloud

  1. describe ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ง ๋ฆฌ์†Œ์Šค์˜ ํ˜„์žฌ ์ •์ฑ…์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ์ด ๋ฆฌ์†Œ์Šค์— ์ง์ ‘ ์ ์šฉ๋˜๋Š” ์ •์ฑ…์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    gcloud org-policies describe \
      constraints/cloudkms.disableBeforeDestroy \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID๋ฅผ ์กฐ์ง ๋ฆฌ์†Œ์Šค์˜ ๊ณ ์œ  ์‹๋ณ„์ž๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์กฐ์ง ID๋Š” ์‹ญ์ง„์ˆ˜ ํ˜•์‹์ด๋ฉฐ ์•ž์— 0์ด ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    --folder ๋˜๋Š” --project ํ”Œ๋ž˜๊ทธ์™€ ํด๋” ID ๋˜๋Š” ํ”„๋กœ์ ํŠธ ID๋ฅผ ๊ฐ๊ฐ ์‚ฌ์šฉํ•˜์—ฌ ํด๋” ๋˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ์กฐ์ง ์ •์ฑ…์„ ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ˜„์žฌ ์กฐ์ง ์ •์ฑ…์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์ •์ฑ…์ด ์‘๋‹ต์— ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

    name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy
    spec:
      etag: CPvY+KYGENDwgxA=
      rules:
      - enforce: true
      updateTime: '2023-08-17T14:19:39.033618Z'
    

    ์ •์ฑ…์ด ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ describe ๋ช…๋ น์–ด๋Š” NOT_FOUND ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. set-policy ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ง์— ์ •์ฑ…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ์ด๋ฏธ ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐ๋œ ์ •์ฑ…์„ ๋ฎ์–ด์”๋‹ˆ๋‹ค.

    1. ์ •์ฑ…์„ ์ €์žฅํ•  /tmp/policy.yaml ์ž„์‹œ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

      name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy
      spec:
        rules:
        - enforce: true
      

      ORGANIZATION_ID๋ฅผ ์กฐ์ง ๋ฆฌ์†Œ์Šค์˜ ๊ณ ์œ  ์‹๋ณ„์ž๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    2. set-policy ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. describe --effective๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ์˜ ์œ ํšจ ์ •์ฑ…์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ์ƒ์†์ด ํฌํ•จ๋œ ๋ฆฌ์†Œ์Šค ๊ณ„์ธต ๊ตฌ์กฐ์—์„œ ์ด ์‹œ์ ์— ํ‰๊ฐ€๋œ ๊ฒƒ์— ํ•ด๋‹นํ•˜๋Š” ์กฐ์ง ์ •์ฑ…์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    gcloud org-policies describe \
      constraints/cloudkms.disableBeforeDestroy --effective \
      --organization=ORGANIZATION_ID
    

    ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
    spec:
      rules:
      - enforce: true
    

    ์ด ์กฐ์ง ์ •์ฑ…์€ ์กฐ์ง ์ˆ˜์ค€์—์„œ ์„ค์ •๋˜์—ˆ์œผ๋ฏ€๋กœ ์ƒ์†์„ ํ—ˆ์šฉํ•˜๋Š” ๋ชจ๋“  ํ•˜์œ„ ๋ฆฌ์†Œ์Šค์— ์ƒ์†๋ฉ๋‹ˆ๋‹ค.

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