이 주제에서는 VM 마이그레이션에 필요한 권한을 수동으로 설정하는 방법을 설명합니다. 이 안내의 목적은 마이그레이션 프로세스 및 마이그레이션된 워크로드에 부여된 권한을 이해하거나 제어하려는 사용자를 돕는 것입니다.
이 페이지에서는 다음과 같은 대상으로 마이그레이션하기 위한 역할 생성 프로세스를 설명합니다.
- 단일 Google Cloud 프로젝트
- 여러 개의 Google Cloud 프로젝트
시작하기 전에
Migrate for Compute Engine의 마이그레이션에는 2개의 서비스 계정이 필요합니다.
이러한 각 서비스 계정과 관련 역할에 대한 자세한 내용은 Google Cloud 구성을 참조하세요.
gcloud
명령어 및 해당 매개변수에 대한 자세한 내용은 gcloud CLI 문서를 참조하세요.
- Google Cloud SDK를 설치해야 합니다.
- Google Cloud에서 Migrate for Compute Engine 인프라를 호스팅할 Google Cloud 프로젝트를 만듭니다.
이 프로젝트를 인프라 프로젝트라고 합니다.
project-ID
에 이 프로젝트를 사용합니다. - 인프라 프로젝트에서 다음 API를 사용 설정합니다.
gcloud services enable iam.googleapis.com --project project-ID gcloud services enable cloudresourcemanager.googleapis.com --project project-ID gcloud services enable compute.googleapis.com --project project-ID gcloud services enable storage-component.googleapis.com --project project-ID gcloud services enable logging.googleapis.com --project project-ID gcloud services enable monitoring.googleapis.com --project project-ID
계속 진행하려면 단일 프로젝트로 마이그레이션할지 여러 프로젝트로 마이그레이션할지 선택합니다.
단일 프로젝트
이 섹션에서는 단일 독립형 프로젝트에 필요한 서비스 계정을 만들고 이 서비스 계정에 적절한 역할을 할당하는 방법을 설명합니다.
서비스 계정 만들기
Google Cloud에서
migration-manager
서비스 계정을 만듭니다.gcloud config set project project-ID gcloud iam service-accounts create "migration-manager" --display-name "migration-manager"
역할을
migration-manager
서비스 계정에 할당합니다.gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/cloudmigration.inframanager" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/cloudmigration.storageaccess" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/iam.serviceAccountUser" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/logging.logWriter" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.metricWriter" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.viewer" \ --no-user-output-enabled --quiet gcloud iam service-accounts add-iam-policy-binding \ "migration-manager@project-ID.iam.gserviceaccount.com" \ --member=serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role=roles/iam.serviceAccountTokenCreator --project project-ID
Google Cloud에서
migration-cloud-extension
서비스 계정을 만듭니다. Migrate for Compute Engine Cloud Extension(CE)을 배포할 프로젝트에서 이 계정을 만듭니다.gcloud iam service-accounts create "migration-cloud-extension" \ --display-name "migration-cloud-extension"
역할을
migration-cloud-extension
서비스 계정에 할당합니다.gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/cloudmigration.storageaccess" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/logging.logWriter" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.metricWriter" \ --no-user-output-enabled --quiet
여러 프로젝트
이 섹션에서는 여러 프로젝트로 마이그레이션하는 데 필요한 역할을 만들고 이 역할을 서비스 계정에 할당하는 방법을 설명합니다.
서비스 계정 만들기 및 계정에 역할 할당
Google Cloud에서
migration-manager
서비스 계정을 만듭니다. 모든 프로젝트에서migration-manager
서비스 계정을 만들 수 있지만 호스트 프로젝트에서 이 서비스를 만들면 구성이 간단해집니다.gcloud config set project project-ID gcloud iam service-accounts create "migration-manager" \ --display-name "migration-manager"
역할을
migration-manager
서비스 계정에 할당합니다.gcloud organizations add-iam-policy-binding organization-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/cloudmigration.inframanager" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/cloudmigration.storageaccess" \ --no-user-output-enabled --quiet gcloud organizations add-iam-policy-binding organization-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/iam.serviceAccountUser" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/logging.logWriter" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.metricWriter" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID --member \ serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.viewer" \ --no-user-output-enabled --quiet gcloud iam service-accounts add-iam-policy-binding \ "migration-manager@project-ID.iam.gserviceaccount.com" \ --member=serviceAccount:"migration-manager@project-ID.iam.gserviceaccount.com" \ --role=roles/iam.serviceAccountTokenCreator --project project-ID
Google Cloud에서
migration-cloud-extension
서비스 계정을 만듭니다. Migrate for Compute Engine Cloud Extension(CE)을 배포할 프로젝트에서 이 계정을 만듭니다.gcloud iam service-accounts create "migration-cloud-extension" \ --display-name "migration-cloud-extension"
역할을
migration-cloud-extension
서비스 계정에 할당합니다.gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/cloudmigration.storageaccess" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/logging.logWriter" \ --no-user-output-enabled --quiet gcloud projects add-iam-policy-binding project-ID \ --member serviceAccount:"migration-cloud-extension@project-ID.iam.gserviceaccount.com" \ --role "roles/monitoring.metricWriter" \ --no-user-output-enabled --quiet