휴지통 보관 정책 구성

기본적으로 Compute Engine은 삭제된 표준 스냅샷을 휴지통에 3일간의 보관 기간 동안 보관한 후 스냅샷을 영구적으로 삭제합니다. 휴지통 보관 정책을 수정하여 더 짧은 보관 기간을 구성하거나 휴지통을 사용 중지할 수 있습니다.

이 문서에서는 휴지통 보관 정책을 보고 구성하는 방법을 설명합니다.

휴지통의 콘텐츠를 보거나 휴지통에서 스냅샷을 복구하려면 휴지통 관리를 참고하세요.

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Cloud de Confiance by S3NS 서비스 및 API에 액세스하기 위해 ID를 확인합니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Cloud de Confiance 콘솔을 사용하여 Cloud de Confiance by S3NS 서비스 및 API에 액세스하는 경우 인증을 설정할 필요가 없습니다.

    gcloud

    1. Google Cloud CLI를 설치한 후 제휴 ID로 gcloud CLI에 로그인합니다. 로그인한 후 다음 명령어를 실행하여 Google Cloud CLI를 초기화합니다.

      gcloud init
  • 기본 리전 및 영역을 설정합니다.
  • REST

    로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

      Google Cloud CLI를 설치한 후 제휴 ID로 gcloud CLI에 로그인합니다.

    자세한 내용은 Cloud de Confiance 인증 문서의 REST 사용을 위한 인증을 참조하세요.

필수 역할 및 권한

휴지통 보관 정책을 보고 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Compute 관리자 (roles/compute.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 휴지통 보관 정책을 보고 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

휴지통 보관 정책을 보고 관리하려면 다음 권한이 필요합니다.

  • 휴지통 보관 정책에서 규칙을 설정, 수정, 삭제하려면 다음 권한이 필요합니다. compute.snapshotRecycleBinPolicy.patch
  • 휴지통 보관 정책을 보려면 다음 단계를 따르세요. compute.snapshotRecycleBinPolicy.get
  • 표준 스냅샷의 휴지통 보관 정책을 보려면 스냅샷에 대한 compute.snapshots.getEffectiveRecycleBinRule 권한이 있어야 합니다.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

휴지통 보관 정책 작동 방식

휴지통 보관 정책은 모든 프로젝트와 조직에서 표준 스냅샷의 보관 기간을 정의하는 전역 규칙 모음입니다.

휴지통 보관 정책에는 다음과 같은 기능이 있습니다.

  • 3일의 기본 보관 기간을 시스템 기본 규칙이라고 합니다. 시스템 기본 규칙은 삭제할 수 없지만 재정의할 수는 있습니다.

  • 시스템 기본 규칙을 재정의하려면 각각 프로젝트 또는 조직에 적용되는 프로젝트 또는 조직 기본 규칙을 추가하면 됩니다. 휴지통 보관 정책에 태그 기반 규칙을 추가할 수도 있습니다.

  • 보관 정책의 규칙 충돌은 다음과 같이 해결됩니다.

    1. 태그 기반 규칙은 프로젝트 및 조직 기본 규칙을 모두 재정의합니다.
    2. 여러 태그 기반 규칙이 표준 스냅샷에 적용되는 경우 보관 기간이 가장 긴 규칙이 적용됩니다. 하지만 프로젝트 기본 규칙은 보관 기간이 더 긴 경우에도 태그 기반 규칙보다 우선 적용되지 않습니다.
    3. 프로젝트 기본 규칙은 조직 기본 규칙을 재정의합니다.
    4. 표준 스냅샷에 적용되는 규칙이 없으면 시스템 기본 규칙이 적용됩니다.

    자세한 내용은 휴지통 보관 정책 내 규칙 계층 구조를 참고하세요.

  • Google에서는 휴지통을 사용 중지하지 않는 것이 좋지만, 보관 기간이 0일인 규칙을 만들어 프로젝트, 조직 또는 태그에 대해 사용 중지할 수 있습니다. 규칙이 적용되는 모든 표준 스냅샷은 삭제 시 즉시 지워집니다.

  • 휴지통 보관 정책의 변경사항은 복구 가능한 기존 스냅샷(즉, 휴지통에 있는 기존 삭제된 표준 스냅샷)에는 적용되지 않습니다.

제한사항

  • 표준 스냅샷만 지원됩니다. 보관처리 스냅샷, 인스턴트 스냅샷, 디스크, 이미지는 삭제 시 즉시 영구 삭제됩니다.
  • 휴지통 보관 정책의 변경사항은 복구 가능한 기존 스냅샷(즉, 휴지통에 있는 기존 삭제된 표준 스냅샷)에는 적용되지 않습니다.
  • 태그의 보관 정책 규칙을 지정하려면 태그가 이미 존재해야 합니다.
  • 프로젝트, 조직 또는 태그에 대해서만 보관 정책 규칙을 설정할 수 있습니다.
  • 태그에 대한 보관 정책 규칙을 설정하면 해당 태그가 있는 표준 스냅샷에만 보관 정책이 적용됩니다. 보관처리 스냅샷, 인스턴트 스냅샷, 디스크, 해당 태그가 있는 기타 리소스는 휴지통과 호환되지 않으며 삭제하면 영구적으로 삭제됩니다.

프로젝트 또는 조직의 기본 보관 기간 설정 또는 삭제

프로젝트 또는 조직 내에서 3일 시스템 기본 규칙을 재정의하거나 휴지통을 사용 중지하려면 프로젝트 또는 조직의 기본 보관 정책 규칙을 설정하세요.

gcloud CLI 또는 REST를 사용할 수 있습니다.

gcloud CLI

gcloud beta compute snapshot-recycle-bin-policy update 명령어를 사용합니다. --set-rule=default 플래그를 사용하여 기본 보관 정책 규칙을 설정하고 --standard-snapshots-retention-duration-days 플래그를 사용하여 규칙의 보관 기간을 지정합니다.

  • 조직의 기본 보관 정책을 설정하려면 다음 명령어를 사용합니다.

    gcloud beta compute snapshot-recycle-bin-policy update \
      --set-rule=default \
      --standard-snapshots-retention-duration-days=DEFAULT_RETENTION_PERIOD_DAYS \
      --organization=ORGANIZATION_ID
    

    다음을 해당 값으로 바꿉니다.

    • DEFAULT_RETENTION_PERIOD_DAYS: 프로젝트 또는 조직의 보관 기간(일)입니다. 0~7 사이의 값을 지정합니다. 휴지통을 사용 중지하려면 0을 지정합니다.
    • ORGANIZATION_ID: 선택사항입니다. 기본 보관 규칙을 설정할 조직의 ID입니다. 예를 들면 123456789012입니다. 조직 ID 또는 프로젝트 ID를 지정해야 하며 둘 다 지정할 수는 없습니다.

    프로젝트의 기본 보관 정책을 설정하려면 이전 명령어에서 --organization 플래그를 --project=<var>PROJECT_ID</var>로 바꿉니다. 여기서 PROJECT_ID는 프로젝트의 ID입니다.

  • 프로젝트 또는 조직의 기본 보관 규칙을 삭제하려면 동일한 명령어를 사용하되 --set-rule=default 대신 --remove-rule=default를 지정합니다.

    예를 들어 조직의 기본 보관 정책 규칙을 삭제하려면 다음을 실행합니다.

    gcloud beta compute snapshot-recycle-bin-policy update \
      --organization=ORGANIZATION_ID \
      --remove-rule=default
    

    ORGANIZATION_ID를 조직의 ID로 바꿉니다.

REST

snapshotRecycleBinPolicy 메서드에 대한 PATCH 요청을 생성합니다.

요청 본문에 기본 휴지통 기간(일)을 지정하는 rules 객체를 포함합니다.

  • 프로젝트의 보관 정책을 추가하거나 수정하려면 다음 단계를 따르세요.

    PATCH  https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshotRecycleBinPolicy
    {
    "rules": {
      "default": {
        "standardSnapshots": {
          "retentionDurationDays": DEFAULT_RETENTION_PERIOD_DAYS
        }
      }
    }
    }
    

    다음을 해당 값으로 바꿉니다.

    • PROJECT_ID: 프로젝트 ID입니다(예: dev-project).
    • DEFAULT_RETENTION_PERIOD_DAYS: 기본 보관 기간(일)입니다. 0~7 사이의 값을 지정합니다. 휴지통을 사용 중지하려면 0을 지정합니다.
  • 조직의 보관 정책을 추가하거나 수정하려면 앞의 예와 같이 PATCH 요청을 만들되 다음 URL을 사용합니다.

    PATCH https://compute.s3nsapis.fr/compute/beta/organizations/ORGANIZATION_ID/global/snapshotRecycleBinPolicy/

    요청 본문은 앞의 예와 동일합니다.

    ORGANIZATION_ID를 조직의 ID로 바꿉니다. 예를 들면 123456789012입니다.

  • 프로젝트 또는 조직의 기본 보관 규칙을 삭제하려면 유사한 PATCH 요청을 실행하되 default 규칙에 null을 지정합니다.

    예를 들어 조직의 기본 보관 규칙을 삭제하려면 다음 단계를 따르세요.

    PATCH https://compute.s3nsapis.fr/compute/beta/organizations/ORGANIZATION_ID/global/snapshotRecycleBinPolicy/
    {
    "rules": {
       "default": null
     }
    }
    

    ORGANIZATION_ID를 조직의 ID로 바꿉니다.

태그의 보관 정책 설정 또는 삭제

특정 태그가 있는 표준 스냅샷의 특정 보관 기간을 설정하려면 프로젝트 또는 조직 수준에서 태그 기반 규칙을 설정하세요. 태그 기반 규칙은 프로젝트 또는 조직의 기본 규칙을 재정의하며 다음과 같은 특징이 있습니다.

  • 조직 또는 프로젝트 수준의 태그 기반 규칙은 각각 조직 또는 프로젝트 내에 태그가 있는 모든 표준 스냅샷에 적용됩니다.
  • 프로젝트 수준 태그 규칙은 프로젝트 수준 규칙의 보관 기간이 더 긴 경우에만 조직 수준 태그 규칙을 재정의합니다.

    예를 들어 보관 기간이 2일인 조직 수준 태그 규칙은 1일인 프로젝트 수준 태그 규칙보다 우선합니다.

자세한 내용은 휴지통 보관 정책 내 규칙 계층 구조를 참고하세요.

gcloud CLI 또는 REST를 사용할 수 있습니다.

gcloud CLI

태그의 보관 정책 규칙을 설정하려면 gcloud beta compute snapshot-recycle-bin-policy update 명령어를 사용합니다. --set-rule 플래그를 사용하여 태그의 이름을 지정하고 --standard-snapshots-retention-duration-days 플래그를 사용하여 태그의 휴지통 보관 기간(일)을 지정합니다.

gcloud beta compute snapshot-recycle-bin-policy update \
  --set-rule=TAG_NAMESPACED_NAME \
  --standard-snapshots-retention-duration-days=RETENTION_PERIOD_DAYS \
  --organization=ORGANIZATION_ID

다음을 해당 값으로 바꿉니다.

  • TAG_NAMESPACED_NAME: 값을 포함한 태그의 네임스페이스화된 이름입니다. 예를 들면 my-project-id/tag-key/tag-value 또는 my-organization-id/tag-key/tag-value입니다.
  • RETENTION_PERIOD_DAYS: 보관 기간(일)입니다(0~7). 이 태그가 있는 스냅샷의 휴지통을 사용 중지하려면 0를 지정합니다.
  • ORGANIZATION_ID: 선택사항입니다. 규칙이 적용되는 조직의 ID입니다. 예를 들면 123456789012입니다. 조직 ID 또는 프로젝트 ID 중 하나를 지정해야 하며, 둘 다 지정할 수는 없습니다.

프로젝트의 기본 보관 정책을 설정하려면 이전 명령어에서 --organization 플래그를 --project=<var>PROJECT_ID</var>로 바꿉니다. 여기서 PROJECT_ID는 프로젝트의 ID입니다.

태그의 보관 기간 정책 규칙을 삭제하려면 동일한 명령어를 사용하되 --set-rule 대신 --remove-rule=TAG_NAMESPACED_NAME를 지정합니다. 예를 들어 조직의 태그 기반 규칙을 삭제하려면 다음을 실행합니다.

gcloud beta compute snapshot-recycle-bin-policy update \
  --organization=ORGANIZATION_ID \
  --remove-rule=TAG_NAMESPACED_NAME

REST

태그의 보관 정책 규칙을 설정하려면 snapshotRecycleBinPolicy 메서드에 대해 PATCH 요청을 생성합니다. 요청 본문에 태그 이름과 보관 기간(일)을 지정하는 rules 객체를 포함합니다.

  • 프로젝트에서 태그의 보관 정책 규칙을 설정하거나 업데이트하려면 다음 단계를 따르세요.
PATCH https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshotRecycleBinPolicy/
{
  "rules": {
    "TAG_NAMESPACED_NAME_1": {
      "standardSnapshots": { 
        "retentionDurationDays": RETENTION_PERIOD_DAYS
      }
    }
  }
}

다음을 해당 값으로 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • TAG_NAMESPACED_NAME: 값을 포함한 태그의 네임스페이스화된 이름입니다. 예를 들면 my-project-id/env/prod 또는 my-organization-id/env/build입니다.
  • RETENTION_PERIOD_DAYS: 보관 기간(일)입니다(0~7). 이 태그가 있는 스냅샷의 휴지통을 사용 중지하려면 0를 지정합니다.

  • 조직에서 태그의 보관 정책 규칙을 설정하거나 업데이트하려면 앞의 예와 같이 PATCH 요청을 하지만 다음 URL을 사용합니다.

PATCH https://compute.s3nsapis.fr/compute/beta/organizations/ORGANIZATION_ID/global/snapshotRecycleBinPolicy/

ORGANIZATION_ID를 조직의 ID로 바꿉니다. 요청 본문은 이전 예에 설명된 대로입니다.

  • 태그의 보관 정책 규칙을 삭제하려면 앞의 예와 같이 PATCH 요청을 구성하되 태그 기반 규칙에 null를 지정합니다. 예를 들어 프로젝트에서 태그 기반 규칙의 보관 정책 규칙을 삭제하려면 다음을 실행합니다.
PATCH https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshotRecycleBinPolicy
{
  "rules": {
    "TAG_NAMESPACED_NAME_1": null
  }
}

프로젝트 또는 조직의 휴지통 보관 정책 보기

프로젝트 또는 조직에 휴지통에 대한 맞춤 규칙이 있는지 확인하거나, 태그 기반 규칙을 확인하거나, 휴지통이 사용 중지되어 있는지 확인하려면 프로젝트 또는 조직의 휴지통 보관 정책에서 규칙을 확인하세요.

프로젝트 또는 조직의 휴지통 보관 정책에 있는 규칙을 보려면 gcloud CLI 또는 REST를 사용하세요.

gcloud CLI

태그 기반 규칙을 포함하여 프로젝트 또는 조직의 휴지통 보관 정책을 보려면 gcloud beta compute snapshot-recycle-bin-policy describe 명령어를 사용합니다.

  • 조직의 휴지통 보관 정책을 보려면 다음 단계를 따르세요.

    gcloud beta compute snapshot-recycle-bin-policy describe \
      --organization=ORGANIZATION_ID
    

    ORGANIZATION_ID를 조직 ID로 바꿉니다.

  • 프로젝트의 휴지통 보관 정책을 보려면 다음 단계를 따르세요.

    gcloud beta compute snapshot-recycle-bin-policy describe \
    --project=PROJECT_ID
    

    PROJECT_ID를 해당 프로젝트의 ID로 바꿉니다.

출력은 다음과 유사한 규칙 객체 목록입니다. 3일 시스템 기본 규칙이 출력에 포함됩니다.

  rules:
    default:
      standardSnapshots:
        retentionDurationDays: '2'
    database-project/Testing-tag-key/build:
      standardSnapshots:
        retentionDurationDays: '0'
    database-project/Testing-tag-key/critical:
      standardSnapshots:
        retentionDurationDays: '5'
    systemRules:
      default:
        standardSnapshots:
          retentionDurationDays: '3'

각 규칙의 retentionDurationDays 필드는 규칙의 보관 기간(일)을 나타냅니다. 이 예에서 database-project 프로젝트에는 다음 세 가지 규칙이 있습니다.

  • Testing-tag-key/critical 태그가 있는 모든 스냅샷에 5일 규칙
  • Testing-tag-key/build 태그가 있는 모든 스냅샷의 즉시 삭제
  • 프로젝트의 다른 모든 스냅샷에 대한 2일 기본 보관 기간

REST

태그 기반 규칙을 비롯하여 프로젝트 또는 조직의 모든 보관 정책 규칙을 보려면 snapshotRecycleBinPolicy.get 메서드에 GET 요청을 생성합니다.

  • 조직의 보관 정책을 보려면 다음 단계를 따르세요.

    GET https://compute.s3nsapis.fr/compute/beta/organizations/ORGANIZATION_ID/global/snapshotRecycleBinPolicy
    

    ORGANIZATION_ID를 조직의 ID로 바꿉니다.

  • 프로젝트의 보관 정책을 보려면 다음 단계를 따르세요.

    GET https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshotRecycleBinPolicy
    

    PROJECT_ID를 프로젝트의 ID로 바꿉니다.

응답은 다음과 유사합니다. 3일 시스템 기본 규칙이 출력에 포함됩니다.

  {
    "rules": {
     "default": {
      "standardSnapshots": {
        "retentionDurationDays": "2"
      }
    },
    "database-project/Testing-tag-key/build": {
      "standardSnapshots": {
        "retentionDurationDays": "0"
      }
    },
    "database-project/Testing-tag-key/critical": {
      "standardSnapshots": {
        "retentionDurationDays": "5"
      }
    },
     "systemRules": {
      "default": {
       "standardSnapshots": {
         "retentionDurationDays": "3"
      }
     }
    }
  }
 }

각 규칙의 retentionDurationDays 필드에는 규칙의 보관 기간이 일수로 표시됩니다. 이 예시에서 database-project 프로젝트에는 다음 세 가지 규칙이 있습니다.

  • Testing-tag-key/critical 태그가 있는 모든 스냅샷에 5일 규칙
  • Testing-tag-key/build 태그가 있는 모든 스냅샷의 즉시 삭제
  • 프로젝트의 다른 모든 스냅샷에 대한 2일 기본 보관 기간

보관 기간이 0이면 Compute Engine에서 삭제된 후 즉시 스냅샷을 영구적으로 삭제합니다. 그렇지 않으면 보관 기간은 Compute Engine이 스냅샷을 휴지통에 보관한 후 영구적으로 삭제하는 기간을 나타냅니다.

태그의 휴지통 보관 기간 보기

태그의 보관 정책을 보려면 태그가 정의된 프로젝트 또는 조직의 보관 정책을 가져옵니다.

특정 스냅샷의 휴지통 보관 기간 확인

삭제된 표준 스냅샷이 휴지통에 보관되는지 여부와 보관 기간을 확인하려면 보관 기간을 확인하세요. 보관 기간이 0이면 스냅샷이 삭제된 직후에 영구적으로 삭제됩니다. 그렇지 않으면 보관 기간은 스냅샷이 삭제될 경우 휴지통에 보관되는 기간을 나타냅니다.

Cloud de Confiance 콘솔, gcloud CLI 또는 REST를 사용하여 특정 스냅샷의 보관 기간을 확인할 수 있습니다.

Cloud de Confiance 콘솔

  1. Cloud de Confiance 콘솔에서 스냅샷 페이지로 이동합니다.

스냅샷 페이지로 이동

  1. 스냅샷 탭에서 프로젝트의 스냅샷 목록을 봅니다.

  2. 이름 열에서 표준 스냅샷 이름을 클릭합니다. 선택한 스냅샷의 스냅샷 세부정보 페이지가 표시됩니다.

  3. 휴지통 보관 속성은 스냅샷의 휴지통 보관 기간 스냅샷을 보여줍니다.

gcloud CLI

특정 스냅샷의 보관 기간을 보려면 gcloud beta compute snapshots get-effective-recycle-bin-rule 명령어를 사용합니다.

gcloud beta compute snapshots get-effective-recycle-bin-rule \
  SNAPSHOT_NAME \
  --project=PROJECT_ID

다음을 해당 값으로 바꿉니다.

  • PROJECT_ID: 스냅샷이 포함된 프로젝트의 ID
  • SNAPSHOT_NAME: 스냅샷 이름

출력은 다음과 비슷합니다.

retentionDurationDays: '5'

retentionDurationDays 필드는 스냅샷의 휴지통 보관 기간을 일 단위로 나타냅니다.

REST

특정 스냅샷의 보관 기간을 보려면 getEffectiveRecycleBinRule 메서드에 대한 GET 요청을 생성합니다.

GET https://compute.s3nsapis.fr/compute/beta/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME/getEffectiveRecycleBinRule

다음을 해당 값으로 바꿉니다.

  • PROJECT_ID: 스냅샷이 포함된 프로젝트의 ID
  • SNAPSHOT_NAME: 스냅샷 이름

응답은 다음 예시와 유사합니다.

{
  "retentionDurationDays": "5"
}

retentionDurationDays 필드는 스냅샷의 휴지통 보관 기간을 일 단위로 나타냅니다.

보관 기간이 0이면 Compute Engine에서 삭제된 후 즉시 스냅샷을 영구적으로 삭제합니다. 그렇지 않으면 보관 기간은 Compute Engine이 스냅샷을 휴지통에 보관한 후 영구적으로 삭제하는 기간을 나타냅니다.

스냅샷에 적용되는 보관 정책의 규칙을 확인하려면 스냅샷의 태그를 프로젝트 및 조직의 보관 정책의 태그 및 기본 규칙과 비교합니다.

표준 스냅샷의 보관 기간을 변경하려면 다음 옵션 중 하나를 선택하세요.

다음 단계