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

이 항목에서는 Google Cloud Migrate for Compute Engine(이전의 Velostrata)의 수동 마이그레이션을 위해 권한을 설정하는 방법을 설명합니다. 이 안내의 목적은 마이그레이션 프로세스 및 마이그레이션된 워크로드에 부여된 권한을 이해하거나 제어하려는 사용자를 돕는 것입니다.

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

  • 단일 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. 명령어 프롬프트를 열고 다음 명령어를 실행합니다. 여기서 login 매개변수는 Google Cloud 계정 로그인 정보로 바꿉니다.
    gcloud auth login login@google.com --no-launch-browser --brief
    
  2. 다운로드 페이지에서 Cloud Deployment Manager 파일을 다운로드합니다.
  3. 다운로드한 파일을 확장하여 역할을 만들 때 액세스할 수 있는 디렉터리에 저장합니다.
  4. 확장된 디렉터리에서 manual 디렉터리를 엽니다.
    cd google/migrate/gce/manual
    
  5. 이 디렉터리에서 YAML 파일을 사용하여 역할에 권한을 할당합니다.

    gcloud iam roles create "velos_manager" --project project-ID \
    --file velos_gcp_mgmt_role.yaml --no-user-output-enabled --quiet
    gcloud iam roles create "velos_ce" --project project-ID \
    --file velos_gcp_ce_role.yaml.yaml --no-user-output-enabled --quiet
    

서비스 계정 만들기

  1. Google Cloud에서 velos-manager 서비스 계정을 만듭니다. 참고: project-ID는 인프라 프로젝트입니다.

    gcloud config set project project-ID
    gcloud iam service-accounts create "velos-manager" --display-name "velos-manager"

  2. velos_manager 역할을 velos-manager 서비스 계정에 할당합니다.

    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "projects/project-ID/roles/velos_manager" \
     --no-user-output-enabled --quiet
    
  3. velos_manager 역할에 추가 필수 역할을 추가합니다.

    gcloud projects add-iam-policy-binding project-ID --member \
     serviceAccount:"velos-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:"velos-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:"velos-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:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/monitoring.viewer"
     --no-user-output-enabled --quiet
    
    gcloud iam service-accounts add-iam-policy-binding \
    "velos-manager@project-ID.iam.gserviceaccount.com" \
    --member=serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
    --role=roles/iam.serviceAccountTokenCreator --project project-ID
    
  4. Google Cloud에서 velos-cloud-extension 서비스 계정을 만듭니다. Migrate for Compute Engine Cloud Extension(CE)을 배포할 프로젝트에서 이 계정을 만듭니다.

    gcloud iam service-accounts create "velos-cloud-extension" \
    --display-name "velos-cloud-extension"
  5. velos_ce 역할을 velos-cloud-extension 서비스 계정에 할당합니다.

    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "projects/project-ID/roles/velos_ce" \
    --no-user-output-enabled --quiet
    
  6. velos-cloud-extension 서비스 계정에 추가 필수 역할을 할당합니다.

    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-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:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "roles/monitoring.metricWriter" \
    --no-user-output-enabled --quiet
    

여러 프로젝트

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

역할 만들기

다음 단계에서는 Google Cloud에 Migrate for Compute Engine을 위한 역할을 만듭니다.

  1. 조직 수준에서 Google Cloud 내에 Migrate for Compute Engine 역할을 만듭니다.
    gcloud auth login orgadmin@google.com --no-launch-browser --brief
  2. 다운로드 페이지에서 Cloud Deployment Manager 파일을 다운로드합니다.
  3. 다운로드한 파일을 확장하여 역할을 만들 때 액세스할 수 있는 디렉터리에 저장합니다.
  4. 확장된 디렉터리에서 manual 디렉터리를 엽니다.
    cd google/migrate/gce/manual
    
  5. 이 디렉터리에서 YAML 파일을 사용하여 역할에 권한을 할당합니다.

    gcloud iam roles create "velos_manager" --organization organization-ID \
    --file velos_gcp_mgmt_role.yaml --no-user-output-enabled --quiet
    gcloud iam roles create "velos_ce" --project project-ID \
    --file velos_gcp_ce_role.yaml.yaml --no-user-output-enabled --quiet
    

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

  1. Google Cloud에서 velos-manager 서비스 계정을 만듭니다. 모든 프로젝트에 velos-manager 서비스 계정을 만들 수 있지만, Migrate for Compute Engine 4.8에서는 호스트 프로젝트에 이 서비스를 만들어 구성을 단순화하는 것이 좋습니다.

    gcloud config set project project-ID
    gcloud iam service-accounts create "velos-manager" \
    --display-name "velos-manager"
  2. velos_manager 역할을 velos-manager 서비스 계정에 할당합니다.

    gcloud organizations add-iam-policy-binding organization-ID \
    --member serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com"\
    --role organizations/organization-ID/roles/"velos_manager"\
    --no-user-output-enabled --quiet
    
    gcloud iam service-accounts add-iam-policy-binding \
    "velos-manager@project-ID.iam.gserviceaccount.com" \
    --member=serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
    --role=roles/iam.serviceAccountTokenCreator --project project-ID
    
  3. velos_manager 역할에 추가 필수 역할을 추가합니다.

    gcloud organizations add-iam-policy-binding organization-ID --member \
     serviceAccount:"velos-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:"velos-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:"velos-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:"velos-manager@project-ID.iam.gserviceaccount.com" \
     --role "roles/monitoring.viewer"
     --no-user-output-enabled --quiet
    
    gcloud iam service-accounts add-iam-policy-binding \
    "velos-manager@project-ID.iam.gserviceaccount.com" \
    --member=serviceAccount:"velos-manager@project-ID.iam.gserviceaccount.com" \
    --role=roles/iam.serviceAccountTokenCreator --project project-ID
    
    
  4. Google Cloud에서 velos-cloud-extension 서비스 계정을 만듭니다. Migrate for Compute Engine Cloud Extension(CE)을 배포할 프로젝트에서 이 계정을 만듭니다.

    gcloud iam service-accounts create "velos-cloud-extension" \
    --display-name "velos-cloud-extension"
  5. velos_ce 역할을 velos-cloud-extension 서비스 계정에 할당합니다.

    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "projects/project-ID/roles/velos_ce" \
    --no-user-output-enabled --quiet
    
  6. velos-cloud-extension 서비스 계정에 추가 필수 역할을 할당합니다.

    gcloud projects add-iam-policy-binding project-ID \
    --member serviceAccount:"velos-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:"velos-cloud-extension@project-ID.iam.gserviceaccount.com" \
    --role "roles/monitoring.metricWriter" \
    --no-user-output-enabled --quiet