Neste tópico, você verá como configurar manualmente as permissões necessárias para migrar VMs. A orientação aqui tem como objetivo ajudar aqueles que querem entender ou controlar as permissões concedidas para o processo de migração e cargas de trabalho migradas.
Essa página descreve o processo de criação de papéis para migração para:
- Um único projeto do Google Cloud
- Vários projetos do Google Cloud
Antes de começar
Duas contas de serviço são necessárias para as migrações do Migrate for Compute Engine.
Para mais informações sobre cada uma dessas contas de serviço e papéis associados, consulte Com configurar o Google Cloud.
Para mais informações sobre os comandos gcloud
e os respectivos parâmetros,
consulte a
documentação da gcloud CLI.
- Você precisa instalar o SDK do Google Cloud.
- Crie um projeto do Google Cloud para hospedar a infraestrutura do Migrate for Compute Engine no Google Cloud.
Chamaremos esse projeto de projeto de infraestrutura. Use esse projeto sempre que ver
project-ID
. - Ative as seguintes APIs em seu projeto de infraestrutura.
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
Para continuar, selecione se você está migrando para um único projeto ou vários projetos.
Projeto único
Nesta seção, você verá como criar as contas de serviço necessárias para um projeto autônomo e atribuir os papéis apropriados a essas contas de serviço.
Como criar contas de serviço
Crie a conta de serviço
migration-manager
no Google Cloud.gcloud config set project project-ID gcloud iam service-accounts create "migration-manager" --display-name "migration-manager"
Atribua papéis à conta de serviço
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
Crie a conta de serviço
migration-cloud-extension
no Google Cloud. Crie essa conta no projeto em que você planeja implantar a extensão do Cloud Extensions (CE) para Migrate for Compute Engine.gcloud iam service-accounts create "migration-cloud-extension" \ --display-name "migration-cloud-extension"
Atribua papéis à conta de serviço
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
Vários projetos
Nesta seção, você verá como criar os papéis necessários para migrações em vários projetos e atribuir esses papéis às contas de serviço.
Como criar contas de serviço e atribuir papéis a elas
Crie a conta de serviço
migration-manager
no Google Cloud. Embora seja possível criar a conta de serviçomigration-manager
em qualquer um dos seus projetos, a criação desse serviço no projeto host simplificará a configuração.gcloud config set project project-ID gcloud iam service-accounts create "migration-manager" \ --display-name "migration-manager"
Atribua papéis à conta de serviço
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
Crie a conta de serviço
migration-cloud-extension
no Google Cloud. Crie essa conta no projeto em que você planeja implantar a extensão do Cloud Extensions (CE) para Migrate for Compute Engine.gcloud iam service-accounts create "migration-cloud-extension" \ --display-name "migration-cloud-extension"
Atribua papéis à conta de serviço
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