프로젝트 이동

이 가이드에서는 조직 리소스 내에서 프로젝트를 이동하는 방법을 설명합니다.

프로젝트는 Google Cloud 조직 리소스의 기본 수준 구성 항목입니다. 프로젝트는 조직 리소스 아래에 생성되며 리소스 계층 구조를 형성하는 폴더 또는 조직 리소스 자체에 배치될 수 있습니다. 리소스 계층 구조 내에서 프로젝트 리소스를 이동할 수 있지만 이동하기 전에 이동의 정책적 영향을 고려해야 합니다.

프로젝트를 이동하면 직접 연결된 모든 Identity and Access Management 정책 또는 조직 정책이 함께 이동됩니다. 하지만 리소스 계층의 프로젝트도 상위 리소스로부터 상속되는 정책의 영향을 받습니다. 사용자에게 특정 서비스 사용 권한을 제공하는 IAM 역할이 프로젝트에 상속될 경우, 대상에서도 권한이 상속되지 않으면 사용자가 대상에서 해당 서비스에 액세스하지 못합니다.

예를 들어 폴더 A에서 사용자에게 연결된 스토리지 객체 생성자 역할이 있는 서비스 계정을 가정해보세요. 이 서비스 계정은 폴더 A에서 어느 프로젝트에서든 Cloud Storage에 데이터를 업로드할 수 있는 권한이 있습니다. 이러한 프로젝트 중 하나를 폴더 B로 이동했을 때, 이 폴더에 동일하게 상속되는 권한이 없으면, 해당 프로젝트에 대한 서비스 계정이 데이터 업로드 기능을 상실하여, 서비스 중단이 발생합니다.

조직 정책이 소스 및 대상 폴더에서 정의되는 경우 동일한 고려사항이 적용됩니다. IAM 정책과 마찬가지로 조직 정책도 상속됩니다. 따라서 조직 정책이 소스 폴더와 대상 폴더 간에 일관되는지 확인해야 합니다.

조직 정책에 대해 자세히 알아보려면 조직 정책 서비스 소개를 참조하세요.

프로젝트를 이동하려면 소스 폴더와 대상 폴더 모두에 대한 프로젝트 이동자 IAM 역할(roles/resourcemanager.projectMover)이 필요합니다. 리소스가 폴더에 없으면 조직 리소스에 대한 이 역할이 필요합니다.

이러한 역할은 다음과 같은 필수 권한을 부여합니다.

  • 프로젝트에 대한 resourcemanager.projects.update 권한
  • 리소스가 폴더에 있는 경우: 소스 폴더 및 대상의 resourcemanager.projects.move
  • 리소스가 폴더에 없는 경우: 조직 리소스의 resourcemanager.projects.move

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

콘솔

프로젝트를 이동하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

  2. 페이지 왼쪽 상단의 조직 드롭다운에서 조직을 선택합니다.

  3. 프로젝트 행을 클릭하여 리소스 목록에서 프로젝트를 선택합니다. 프로젝트의 IAM 페이지로 연결되는 프로젝트 이름을 클릭하지 않아야 합니다.

  4. 행에서 옵션 메뉴(세로 생략 기호)를 클릭하고 이동을 클릭합니다.

  5. 찾아보기를 클릭하고 프로젝트를 이동할 폴더를 선택합니다.

  6. 이동을 클릭합니다.

gcloud

프로젝트를 이동하려면 gcloud beta projects move 명령어를 실행합니다.

gcloud beta projects move PROJECT_ID \
--DESTINATION_TYPE DESTINATION_ID

각 항목의 의미는 다음과 같습니다.

  • PROJECT_ID는 이동하려는 프로젝트의 ID 또는 번호입니다.

  • DESTINATION_TYPEorganization 또는 folder입니다.

  • DESTINATION_ID는 프로젝트를 이동할 조직 리소스 또는 폴더의 ID입니다. 대상은 하나만 지정할 수 있습니다.

API

v3 projects.move 메서드를 사용하여 프로젝트를 이동할 수 있습니다.

요청:

POST https://cloudresourcemanager.googleapis.com/v3/{name=PROJECT_NAME}:move
{
  "destinationParent": DESTINATION_PARENT
}

각 항목의 의미는 다음과 같습니다.

  • PROJECT_NAME은 업데이트할 프로젝트의 이름입니다. 예를 들면 projects/415104041262입니다.

  • DESTINATION_PARENT는 프로젝트를 이동하려는 새 상위 조직 리소스 또는 폴더입니다. 예를 들면 organizations/12345678901입니다.

성공하면 요청에서 프로젝트 이동을 추적하는 데 사용할 수 있는 Operation을 반환합니다.