수동으로 Google Cloud 역할 및 서비스 계정 만들기

이 주제에서는 VM 마이그레이션에 필요한 권한을 수동으로 설정하는 방법을 설명합니다. 마이그레이션 프로세스 및 마이그레이션된 워크로드에 부여된 권한을 이해하거나 제어하려는 사용자를 돕는 것을 목적으로 하는 안내를 직접적으로 대체합니다.

이 페이지에서는 다음과 같은 대상으로 마이그레이션하기 위한 역할 생성 프로세스를 설명합니다.

  • 단일 Google Cloud 프로젝트
  • 여러 개의 Google Cloud 프로젝트

시작하기 전에

Migrate for Compute Engine의 마이그레이션에는 2개의 서비스 계정이 필요합니다. 이러한 각 서비스 계정과 관련 역할에 대한 자세한 내용은 Google Cloud 구성을 참조하세요. gcloud 명령어 및 해당 매개변수에 대한 자세한 내용은 gcloud CLI 문서를 참조하세요.

  1. Google Cloud SDK를 설치해야 합니다.
  2. Google Cloud에서 Migrate for Compute Engine 인프라를 호스팅할 Google Cloud 프로젝트를 만듭니다. 이 프로젝트를 인프라 프로젝트라고 합니다. project-ID에 이 프로젝트를 사용합니다.
  3. 인프라 프로젝트에서 다음 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
    

계속 진행하려면 단일 프로젝트로 마이그레이션할지 여러 프로젝트로 마이그레이션할지 선택합니다.

단일 프로젝트

이 섹션에서는 단일 독립형 프로젝트에 필요한 서비스 계정을 만들고 이 서비스 계정에 적절한 역할을 할당하는 방법을 설명합니다.

서비스 계정 만들기

  1. Google Cloud에서 migration-manager 서비스 계정을 만듭니다.

    gcloud config set project project-ID
    gcloud iam service-accounts create "migration-manager" --display-name "migration-manager"
  2. 역할을 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
    
  3. 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"
  4. 역할을 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
    

여러 프로젝트

이 섹션에서는 여러 프로젝트로 마이그레이션하는 데 필요한 역할을 만들고 이 역할을 서비스 계정에 할당하는 방법을 설명합니다.

서비스 계정 만들기 및 계정에 역할 할당

  1. Google Cloud에서 migration-manager 서비스 계정을 만듭니다. 모든 프로젝트에서 migration-manager 서비스 계정을 만들 수 있지만 호스트 프로젝트에서 이 서비스를 만들면 구성이 간단해집니다.

    gcloud config set project project-ID
    gcloud iam service-accounts create "migration-manager" \
    --display-name "migration-manager"
  2. 역할을 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
    
  3. 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"
  4. 역할을 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