리전 범위 스냅샷의 생성 및 복원 위치 설정

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

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

시작하기 전에

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

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

    Console

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

    gcloud

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

      gcloud init
    2. Set a default region and zone.

    REST

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

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

      gcloud init

    자세한 내용은 Trusted 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: 리전 범위 스냅샷의 복원 액세스 권한을 삭제하려는 리전입니다.