이 항목에서는 Google Cloud Migrate for Compute Engine(이전의 Velostrata)의 수동 마이그레이션을 위해 권한을 설정하는 방법을 설명합니다. 이 안내의 목적은 마이그레이션 프로세스 및 마이그레이션된 워크로드에 부여된 권한을 이해하거나 제어하려는 사용자를 돕는 것입니다.
이 페이지에서는 다음과 같은 대상으로 마이그레이션하기 위한 역할 생성 프로세스를 설명합니다.
- 단일 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
계속 진행하려면 단일 프로젝트로 마이그레이션할지 여러 프로젝트로 마이그레이션할지 선택합니다.
단일 프로젝트
이 섹션에서는 단일 독립형 프로젝트에 필요한 서비스 계정을 만들고 이 서비스 계정에 적절한 역할을 할당하는 방법을 설명합니다.
역할 만들기
프로젝트 수준에서 역할을 만듭니다.
- 명령어 프롬프트를 열고 다음 명령어를 실행합니다. 여기서 login 매개변수는 Google Cloud 계정 로그인 정보로 바꿉니다.
gcloud auth login login@google.com --no-launch-browser --brief
- 다운로드 페이지에서 Cloud Deployment Manager 파일을 다운로드합니다.
- 다운로드한 파일을 확장하여 역할을 만들 때 액세스할 수 있는 디렉터리에 저장합니다.
- 확장된 디렉터리에서
manual
디렉터리를 엽니다.cd google/migrate/gce/manual
이 디렉터리에서 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
서비스 계정 만들기
Google Cloud에서
velos-manager
서비스 계정을 만듭니다. 참고:project-ID
는 인프라 프로젝트입니다.gcloud config set project project-ID gcloud iam service-accounts create "velos-manager" --display-name "velos-manager"
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
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
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"
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
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을 위한 역할을 만듭니다.
- 조직 수준에서 Google Cloud 내에 Migrate for Compute Engine 역할을 만듭니다.
gcloud auth login orgadmin@google.com --no-launch-browser --brief
- 다운로드 페이지에서 Cloud Deployment Manager 파일을 다운로드합니다.
- 다운로드한 파일을 확장하여 역할을 만들 때 액세스할 수 있는 디렉터리에 저장합니다.
- 확장된 디렉터리에서
manual
디렉터리를 엽니다.cd google/migrate/gce/manual
이 디렉터리에서 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
서비스 계정 만들기 및 계정에 역할 할당
Google Cloud에서
velos-manager
서비스 계정을 만듭니다. 모든 프로젝트에서velos-manager
서비스 계정을 만들 수 있지만, Migrate for Compute Engine 4.5에서는 호스트 프로젝트에서 이 서비스를 만들어 구성을 단순화할 것을 권장합니다.gcloud config set project project-ID gcloud iam service-accounts create "velos-manager" \ --display-name "velos-manager"
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
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
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"
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
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