공유 VPC 프로비저닝 해제

이 페이지에서는 기존 공유 VPC 구성의 프로비저닝을 해제하고 모든 서비스 프로젝트를 공유 VPC 호스트 프로젝트에서 연결 해제하는 방법에 대해 설명합니다. 프로비저닝 해제는 단방향 프로세스입니다. 먼저 공유 VPC공유 VPC 프로비저닝 페이지에 익숙해야 합니다.

서비스 프로젝트 관리자 작업

공유 VPC 호스트 프로젝트에 연결된 각 서비스 프로젝트에서 서비스 프로젝트 관리자는 호스트 프로젝트의 모든 종속 항목을 제거해야 합니다. 종속 항목에는 인스턴스, 인스턴스 그룹, 인스턴스 템플릿, 백엔드 서비스, 전달 규칙이 포함될 수 있습니다.

영향을 받는 리소스 결정

서비스 프로젝트 관리자는 공유 VPC 호스트 프로젝트에 의존하는 리소스를 식별하기 위해 해당 공유 서브넷을 나열할 수 있습니다. 서비스 프로젝트가 호스트 프로젝트에서 분리되면 이 서브넷을 더 이상 사용할 수 없게 됩니다. 따라서 이들에 의존하는 모든 리소스가 영향을 받습니다.

리소스 삭제

서비스 프로젝트 관리자가 프로비저닝 해제 프로세스의 영향을 받을 리소스를 식별하면 해당 리소스를 삭제해야 합니다.

부하 분산기 관리자 작업

내부 애플리케이션 부하 분산기 및 리전 외부 애플리케이션 부하 분산기를 사용하면 한 호스트 또는 서비스 프로젝트의 URL 맵이 공유 VPC 환경의 여러 프로젝트에 있는 백엔드 서비스 (및 백엔드)를 참조할 수 있도록 부하 분산기를 구성할 수 있습니다.

서비스 프로젝트를 삭제하려면 먼저 서비스 프로젝트의 백엔드 서비스에 대한 프로젝트 간 참조가 삭제되었는지 확인해야 합니다. 부하 분산기 관리자의 경우 서비스 프로젝트에서 백엔드 서비스에 대한 참조를 삭제하려면 URL 맵을 수정해야 합니다.

공유 VPC 관리자 작업

이 섹션의 모든 작업은 공유 VPC 관리자가 수행해야 합니다.

서비스 프로젝트 분리

공유 VPC 호스트 프로젝트에서 분리해야 하는 각 서비스 프로젝트에 대해 이 단계를 반복합니다.

콘솔

Google Cloud Console에서 공유 VPC 페이지를 보려면 공유 VPC 관리자 역할이 있어야 합니다.

  1. Google Cloud Console의 공유 VPC 페이지로 이동합니다.
    공유 VPC로 이동
  2. 공유 VPC 관리자로 로그인합니다.
  3. 서비스 프로젝트를 삭제할 호스트 프로젝트를 선택합니다.
  4. 연결된 프로젝트 탭을 클릭합니다.
  5. 분리할 서비스 프로젝트를 선택합니다.
  6. 프로젝트 분리 버튼을 클릭합니다.
  7. 대화 상자에서 정보를 검토합니다.
  8. 분리를 클릭합니다.

gcloud

  1. 아직 인증하지 않은 경우 gcloud를 공유 VPC 관리자로 인증합니다. SHARED_VPC_ADMIN을 공유 VPC 관리자의 이름으로 바꿉니다.

    gcloud auth login SHARED_VPC_ADMIN
    
  2. 호스트 프로젝트에서 서비스 프로젝트를 분리합니다. SERVICE_PROJECT_ID를 서비스 프로젝트의 프로젝트 ID로, HOST_PROJECT_ID를 호스트 프로젝트의 프로젝트 ID로 바꿉니다.

    gcloud compute shared-vpc associated-projects remove SERVICE_PROJECT_ID
        --host-project HOST_PROJECT_ID
    
  3. 다음 명령어 중 하나를 사용하여 서비스 프로젝트가 분리되었는지 확인합니다.

    gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
    
    gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
    
  4. 서비스 프로젝트만 분리해야 하는 경우 gcloud에서 로그아웃하여 공유 VPC 관리자 계정 사용자 인증 정보를 보호합니다. 그렇지 않으면 이 단계를 건너 뛰고 호스트 프로젝트를 사용 중지를 계속 진행합니다.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. 서비스 프로젝트를 분리합니다.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnResource
    {
      "xpnResource": {
        "id": "SERVICE_PROJECT_ID"
      }
    }
    

    자리표시자를 유효한 값으로 바꿉니다.

    • HOST_PROJECT_ID는 호스트 프로젝트의 ID입니다.
    • SERVICE_PROJECT_ID는 분리할 서비스 프로젝트의 ID입니다.

    자세한 내용은 projects.disableXpnResource 메서드를 참조하세요.

  2. 서비스 프로젝트가 분리되었는지 확인합니다.

    • 서비스 프로젝트가 호스트 프로젝트에 연결되어 있지 않은지 확인합니다.

      GET https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/getXpnHost
      

      SERVICE_PROJECT_ID를 서비스 프로젝트 ID로 바꿉니다.

      자세한 내용은 projects.getXpnHost 메서드를 참조하세요.

    • 공유 VPC 호스트 프로젝트에 연결된 서비스 프로젝트를 나열하여 프로젝트가 더 이상 표시되지 않는지 확인합니다.

      GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
      

      HOST_PROJECT_ID를 호스트 프로젝트 ID로 바꿉니다.

      자세한 내용은 projects.getXpnResources 메서드를 참조하세요.

호스트 프로젝트 사용 중지

호스트 프로젝트에 대해 공유 VPC를 사용 중지하는 것은 모든 서비스 프로젝트가 분리된 후에만 가능합니다. 사용 중지하고 나면, 쉽게 삭제되지 않도록 하는 선취권이 자동으로 제거됩니다.

Console

Google Cloud Console에서 공유 VPC 페이지를 보려면 공유 VPC 관리자 역할이 있어야 합니다.

  1. Google Cloud Console의 공유 VPC 페이지로 이동합니다.
    공유 VPC로 이동
  2. 공유 VPC 관리자로 로그인합니다.
  3. 사용 중지할 호스트 프로젝트를 선택합니다.
  4. 공유 VPC 사용 중지 버튼을 클릭합니다.
  5. 대화상자에서 설명을 주의 깊게 읽어보세요.
  6. 호스트 프로젝트 ID에 호스트 프로젝트의 프로젝트 ID를 입력합니다.
  7. 사용 중지를 클릭합니다.

gcloud

  1. 아직 인증하지 않은 경우 gcloud를 공유 VPC 관리자로 인증합니다. SHARED_VPC_ADMIN을 공유 VPC 관리자의 이름으로 바꿉니다.

    gcloud auth login SHARED_VPC_ADMIN
    
  2. 호스트 프로젝트에 대해 공유 VPC를 사용 중지합니다. HOST_PROJECT_ID를 호스트 프로젝트 ID로 바꿉니다.

    gcloud compute shared-vpc disable HOST_PROJECT_ID
    
  3. 프로젝트가 더 이상 조직의 호스트 프로젝트로 나열되지 않는지 확인합니다. ORG_ID를 조직 ID로 바꿉니다(gcloud organizations list에서 결정).

    gcloud compute shared-vpc organizations list-host-projects ORG_ID
    
  4. 호스트 프로젝트만 사용 중지해야 하는 경우 gcloud에서 로그아웃하여 공유 VPC 관리자 사용자 인증 정보를 보호할 수 있습니다. 그렇지 않으면 이 단계를 건너 뛰고 프로젝트 삭제를 계속 진행합니다.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. 프로젝트에 대해 공유 VPC를 사용 중지합니다.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnHost
    

    HOST_PROJECT_ID를 호스트 프로젝트 ID로 바꿉니다.

    자세한 내용은 projects.disableXpnHost 메서드를 참조하세요.

  2. 호스트 프로젝트를 나열하여 프로젝트가 목록에 없는지 확인합니다.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
    

    HOST_PROJECT_ID를 호스트 프로젝트 ID로 바꿉니다.

    자세한 내용은 projects.listXpnHosts 메서드를 참조하세요.

프로젝트 삭제

이 섹션에서는 더 이상 사용되지 않는 프로젝트 삭제에 대해 설명합니다. 예를 들어 호스트 프로젝트에서 분리된 후에 삭제해야 하는 서비스 프로젝트가 있거나 사용이 중지되면 더 이상 호스트 프로젝트가 필요하지 않을 수 있습니다.

호스트 프로젝트 삭제

일반 프로젝트로 유지하거나 종료할 수 있습니다. 프로젝트를 종료하면 삭제됩니다.

IAM 주 구성원은 해당 주 구성원에게 조직의 resourcemanager.projectDeleter 역할이 있거나 해당 주 구성원이 호스트 프로젝트의 소유자일 때 호스트 프로젝트를 삭제할 수 있습니다. 공유 VPC 관리자는 올바른 역할 또는 소유권이 있으면 호스트 프로젝트를 삭제할 수 있습니다.

서비스 프로젝트 삭제

더 이상 필요하지 않은 경우 각 서비스 프로젝트를 종료할 수 있습니다. 그렇게 하기 전에 서비스 프로젝트가 호스트 프로젝트에서 분리되었는지 확인합니다.

주 구성원에게 조직의 resourcemanager.projectDeleter 역할이 있거나 주 구성원이 호스트 프로젝트의 소유자인 경우 IAM 주 구성원은 호스트 프로젝트를 삭제할 수 있습니다. 서비스 프로젝트 관리자는 올바른 역할이나 소유권이 있는 서비스 프로젝트를 삭제할 수 있습니다.

강제로 호스트 프로젝트 삭제

공유 VPC가 호스트 프로젝트에 대해 활성 상태인 동안 실수로 삭제되지 않도록 프로젝트에 선취권이 적용됩니다. 이 유치권은 프로젝트 소유자가 제거 할 수 있으므로 공유 VPC를 프로비저닝하는 가이드라인에는 프로젝트 선취권을 제거할 수 있는 IAM 주 구성원을 제한하는 조직 정책을 정의하는 단계가 포함됩니다.

일반적으로 호스트 프로젝트는 다음 작업이 이 순서대로 완료된 후에 삭제해야 합니다.

  • 호스트 프로젝트에서 모든 서비스 프로젝트가 분리되었으며
  • 공유 VPC가 사용 중지되었습니다.

공유 VPC가 사용 중지되면 호스트 프로젝트를 보호하는 선취권이 자동으로 제거됩니다.

이 섹션에서는 호스트 프로젝트를 강제로 종료하는 방법을 자세히 설명합니다. 다음과 같은 경우에만 이 옵션을 고려해야 합니다.

  • 서비스 프로젝트를 분리하고 공유 VPC를 사용 중지하는 일반적인 단계를 수행할 수 없는 경우
  • 호스트 프로젝트가 자동으로 추가되는 것 이외에 호스트 프로젝트를 보호하는 추가 선취권이 있는 경우

호스트 프로젝트를 강제 종료하고 공유 VPC 네트워크를 사용하는 서비스 프로젝트에 리소스가 있는 경우 다음과 같은 이벤트가 발생합니다.

  • 모든 공유 VPC 네트워크, 해당 서브넷, 경로, 방화벽 규칙, 호스트 프로젝트의 모든 네트워킹 리소스가 삭제됩니다.
  • 호스트 프로젝트에 연결된 서비스 프로젝트에서 인스턴스 실행과 같은 리소스는 중지됩니다.
  • 전달 규칙이 공유 VPC 네트워크에 종속되는 경우 내부 TCP/UDP 부하 분산기는 사용 중지됩니다.

gcloud

  1. 프로젝트 선취권을 제거할 수 있는 IAM 주 구성원으로 gcloud를 인증합니다. 선취권을 제거할 수 있는 구성원을 제한하는 조직 정책이 있다면, 조직의 resourcemanager.lienModifier 역할이 있는 IAM 주 구성원으로 인증해야 합니다. 이와 같은 정책이 마련되지 않으면 호스트 프로젝트의 프로젝트 소유자가 선취권을 제거할 수 있습니다.

    ACCOUNT를 적절한 IAM 주 구성원의 이름으로 바꿉니다.

    gcloud auth login ACCOUNT
    
  2. 호스트 프로젝트에 연결된 선취권을 나열합니다. HOST_PROJECT_ID를 호스트 프로젝트 ID로 바꿉니다.

    gcloud alpha resource-manager liens list \
    --project HOST_PROJECT_ID
    
  3. 선취권이 없을 때까지 한 번에 하나씩 이름별로 선취권을 제거합니다. LIEN_NAME을(를) 제거할 선취권의 이름으로 바꿉니다.

    gcloud alpha resource-manager liens delete LIEN_NAME \
    --project HOST_PROJECT_ID
    
  4. 모든 선취권이 제거되었는지 확인합니다.

    gcloud alpha resource-manager liens list \
    --project HOST_PROJECT_ID
    
  5. 선취권을 제거한 후 gcloud에서 로그아웃하면 선취권을 제거할 권한이 있는 IAM 주 구성원의 사용자 인증 정보를 보호할 수 있습니다.

    gcloud auth revoke ACCOUNT
    
  6. 이제 호스트 프로젝트를 종료할 수 있습니다.

API

  1. 호스트 프로젝트에 연결된 선취권을 나열합니다.

    GET https://cloudresourcemanager.googleapis.com/v1/liens?parent=projects:HOST_PROJECT_ID
    

    HOST_PROJECT_ID를 호스트 프로젝트 ID로 바꿉니다.

    자세한 내용은 liens.list 메서드를 참조하세요.

  2. 선취권이 없을 때까지 이름별로 각 선취권을 제거합니다.

    DELETE https://cloudresourcemanager.googleapis.com/v1/liens/LIEN_NAME
    

    LIEN_NAME을 삭제할 선취권의 이름으로 바꿉니다.

    자세한 내용은 liens.delete 메서드를 참조하세요.

  3. 선취권을 다시 나열하여 선취권이 삭제되었음을 확인합니다.

다음 단계