지역 범위 스냅샷의 생성 및 복원 위치 설정


기본적으로 스냅샷은 전역 범위로 생성됩니다. 전역 범위 스냅샷은 특정 스토리지 위치에 저장되며 모든 리전 또는 영역에서 복원 (새 디스크를 만드는 데 사용)할 수 있습니다. 위치 기반 격리 제어를 추가하려면 리전 범위의 스냅샷을 만들 수 있습니다. 지역 범위 스냅샷은 모든 스냅샷 데이터와 메타데이터를 범위가 지정된 리전에 함께 저장합니다. 지역 범위 스냅샷을 사용하면 스냅샷을 만들고 복원할 수 있는 리전을 제한할 수도 있습니다.

이 문서에서는 리전 스냅샷 생성 및 복원에 허용되는 위치를 설정하는 방법을 설명합니다.

시작하기 전에

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

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

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

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

제한사항

  • 지역 범위를 설정하면 프로젝트의 모든 기본 스토리지 위치 설정이 재정의됩니다.
  • 지역 범위 설정은 새 지역 스냅샷에만 적용됩니다.
  • 전역 범위 스냅샷을 리전 범위 스냅샷으로 변환할 수는 없습니다. 적절한 범위로 새 스냅샷을 만들어야 합니다.

필수 역할 및 권한

지역 범위 스냅샷의 저장소 및 복원 위치를 설정하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 스냅샷 생성 및 복원 위치를 설정하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 확장하세요.

허용되는 스냅샷 생성 위치 설정

기본적으로 모든 리전에서 스냅샷을 만들 수 있습니다. 지역 범위 스냅샷을 만들 수 있는 위치를 제한하려면 프로젝트 수준에서 허용된 액세스 위치를 설정하세요. 액세스 위치를 설정하면 이러한 위치에서만 프로젝트에 대해 지역별로 범위가 지정된 스냅샷을 만들 수 있습니다.

gcloud

영역 A의 영역 디스크가 모든 리전에서 스냅샷을 만들 수 있도록 하려면 gcloud beta compute disk-settings update 명령어를 사용합니다.

  gcloud beta compute disk-settings update \
      --zone=ZONE_A \
      --access-location-policy=all-regions \

리전 A의 리전 디스크가 모든 리전에서 스냅샷을 만들 수 있도록 하려면 gcloud beta compute disk-settings update 명령어를 사용합니다.

  gcloud beta compute disk-settings update \
      --region=REGION_A \
      --access-location-policy=all-regions

리전 A의 디스크가 리전 B에서만 스냅샷을 만들도록 하려면 gcloud beta compute disk-settings update 명령어를 사용합니다.

  gcloud beta compute disk-settings update \
      --access-location-policy=specific-regions \
      --region=REGION_A \
      --add-access-locations=REGION_B

다음을 바꿉니다.

  • ZONE_A: 모든 리전에서 스냅샷을 만들 수 있는 디스크의 영역입니다.
  • REGION_A: 리전 범위 스냅샷 생성 제한이 필요한 프로젝트의 모든 디스크의 리전입니다.
  • REGION_B: 리전 범위 스냅샷 생성이 허용되는 리전입니다. 여러 리전을 허용된 액세스 위치로 설정할 수 있습니다. 소스 디스크가 저장된 리전을 허용되는 리전 중 하나로 포함해야 합니다.

REST

영역 A의 영역 디스크가 모든 리전에서 스냅샷을 만들 수 있도록 하려면 diskSettings.patch 메서드에 PATCH 요청을 실행합니다.

  PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE_A/diskSettings?updateMask=accessLocation

  {
    "accessLocation":
    {
      "policy":"ALL_REGIONS"
    }
  }

리전 A의 리전 디스크가 리전 B에서만 스냅샷을 만들도록 하려면 regionDiskSettings.patch 메서드에 PATCH 요청을 실행합니다.

  PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION_A/diskSettings?updateMask=accessLocation

  {
    "accessLocation":
    {
      "policy":"SPECIFIC_REGIONS",
      "locations":
      {
        "REGION_B":{"region":"REGION_B"}
      }
    }
  }

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트의 ID
  • ZONE_A: 디스크 영역
  • REGION_A: 디스크의 리전입니다.
  • REGION_B: 스냅샷 생성이 허용되는 리전입니다. 여러 리전을 허용된 액세스 위치로 설정할 수 있습니다. 소스 디스크가 저장된 리전을 허용되는 리전 중 하나로 포함해야 합니다.

허용되는 스냅샷 복원 위치 설정

기본적으로 지역 및 전 세계 범위의 스냅샷을 모든 리전으로 복원할 수 있습니다. 지역 범위 스냅샷의 복원 위치를 구성하려면 프로젝트 수준에서 허용된 액세스 위치를 설정하세요. 각 프로젝트에 허용되는 액세스 위치를 개별적으로 설정해야 합니다. 액세스 위치를 설정하면 이러한 위치에서만 프로젝트의 지역 범위 스냅샷을 복원할 수 있습니다.

gcloud

리전 A의 프로젝트 스냅샷을 모든 리전에서 복원하려면 gcloud beta compute snapshot-settings update 명령어를 사용합니다.

  gcloud beta compute snapshot-settings update \
      --project=PROJECT_ID \
      --region=REGION_A \
      --access-location-policy=all-regions

리전 A의 프로젝트 스냅샷을 리전 B에서만 복원할 수 있도록 하려면 gcloud beta compute snapshot-settings update 명령어를 사용합니다.

  gcloud beta compute snapshot-settings update \
      --project=PROJECT_ID \
      --access-location-policy=specific-regions \
      --region=REGION_A \
      --add-access-locations=REGION_B

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트의 ID
  • REGION_A: 지역 범위 스냅샷이 저장된 리전입니다.
  • REGION_B: 리전 범위 스냅샷을 복원할 수 있는 허용된 리전입니다. 복원이 허용되는 여러 리전을 설정할 수 있습니다.

REST

리전 A의 프로젝트 스냅샷을 모든 리전에서 복원할 수 있도록 하려면 regionSnapshotSettings.patch 메서드에 대해 PATCH 요청을 실행합니다.

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/snapshotSettings?updateMask=accessLocation

  {
    "accessLocation":
    {
      "policy":"ALL_REGIONS"
    }
  }

리전 A의 프로젝트 스냅샷을 리전 B에서만 복원할 수 있도록 하려면 regionSnapshotSettings.patch 메서드PATCH 요청을 실행합니다.

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/snapshotSettings?updateMask=accessLocation

  {
    "accessLocation":
    {
      "policy":"SPECIFIC_REGIONS",
      "locations":
        {"REGION_B":
          {"region":"REGION_B"}
        }
    }
  }

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트의 ID
  • REGION_A: 지역 범위 스냅샷이 저장된 리전입니다.
  • REGION_B: 리전 범위 스냅샷을 복원할 수 있는 허용된 리전입니다. 여러 리전을 허용된 복원 위치로 설정할 수 있습니다.

허용된 스냅샷 복원 위치 수정

gcloud

리전 A에 저장된 프로젝트의 스냅샷에 허용되는 복원 위치를 보려면 gcloud beta compute snapshot-settings describe 명령어를 사용합니다.

  gcloud beta compute snapshot-settings describe \
      --project=PROJECT_ID \
      --region=REGION_A

리전 A에 저장된 프로젝트의 스냅샷에 허용된 복원 위치 목록에서 리전 B를 삭제하려면 gcloud beta compute snapshot-settings update 명령어를 사용합니다.

  gcloud beta compute snapshot-settings update \
      --project=PROJECT_ID \
      --access-location-policy=specific-regions \
      --remove-access-locations=REGION_B \
      --region=REGION_A

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트의 ID
  • REGION_A: 지역 범위 스냅샷이 저장된 리전입니다.
  • REGION_B: 리전 범위 스냅샷의 복원 액세스 권한을 삭제하려는 리전입니다.

REST

리전 A에 저장된 프로젝트의 스냅샷에 허용되는 복원 위치를 보려면 regionSnapshotSettings.get 메서드GET 요청을 보냅니다.

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/snapshotSettings

리전 A에 저장된 프로젝트의 스냅샷에 허용된 복원 위치 목록에서 리전 B를 삭제하려면 regionSnapshotSettings.patch 메서드PATCH 요청을 실행합니다.

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/snapshotSettings?updateMask=accessLocation

  {
    "accessLocation":
    {
      "policy":"SPECIFIC_REGIONS",
      "locations":
        {"REGION_B":{}}
    }
  }

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트의 ID
  • REGION_A: 지역 범위 스냅샷이 저장된 리전입니다.
  • REGION_B: 리전 범위 스냅샷의 복원 액세스 권한을 삭제하려는 리전입니다.